【问题标题】:Excel: find and order matches by columnExcel:按列查找和排序匹配项
【发布时间】:2020-07-07 06:04:44
【问题描述】:

我目前正在处理一个包含多个 Excel 文件的庞大流行病学数据集。这些文件包含近 3 万名患者的病理学和临床报告。每个患者可以有几个病理和临床报告。患者被分配了一个唯一的 ID。

我想将所有文件合并为一个,以便患者 X001 的 ID 包含所有文件的所有信息。我不能只是复制/粘贴,因为文件中的行数 (ID) 各不相同。

这是我想要完成的一个示例。

我想组合两个列表如下。

如您所见,List1 和 List 2 的行号不同。 list1 中还有一些 ID 在 list2 中找不到,反之亦然。

我想合并它们以使它们对齐和匹配,请参见下图。有人可以为此提供代码吗?我无法手动执行此操作,因为我在 list1 中有 100k 行,在 list2 中有 30k 行...这需要几周时间才能完成,有出错的风险。

【问题讨论】:

  • 定义“组合”。你的意思是没有任何重复?如果是这种情况,只需将一个复制到另一个下方,然后使用数据选项卡中的“删除重复项”工具。
  • 嗨斯宾塞!允许重复。如果您可以从示例图像中看到我想对齐和匹配两个列表中的 ID。
  • 您可以使用 Power Query 并将表转换为查询,然后使用完全外连接将它们合并为一个。
  • 好吧,不熟悉那个功能。您能否提供代码并以图像为例?我将永远感激不尽:)
  • 重新打开问题后,我可以在下面发布详细答案。目前,您可以在 Data 选项卡下找到 Power Query,不需要自定义编码,但是您必须在此过程中进行一些更改/决定才能达到所需的输出。

标签: excel powerquery


【解决方案1】:

您可以使用 Power Query 中内置的 Excel 合并表格,可以在 数据 选项卡下找到。

注意:照片取自 Excel 2016

第一步是创建查询:

  • Data 下的 Get & Transform 部分中,单击 New Query -> From File -> From Workbook 并选择包含该表的相应工作簿你想合并
  • 选择您的表格所在的相应工作表,并确认它们显示正确
    • 如果您发现表格不正确,您可以通过下面的Edit 按钮对其进行更改。
      • 例如,如果您注意到您的列标题被视为正常值,您可以单击 Power Query 编辑器下的Use First Row as HeadersHome -> Transform
      • 我还建议更改查询的名称,这样更有意义
  • 对查询的外观感到满意后,单击 Power Query 编辑器 主页 下的 Close and Load 下拉菜单并选择 Close and Load To...
    • 选择Only Create Connection 将其添加到您的工作簿查询中,而不复制表格。
  • 对要合并的每个表重复上述步骤。

通过查询链接所有表格后,您现在可以继续合并它们:

  • New Query的同一部分下选择Combine Queries -> Merge
  • 在各个框中选择您要合并的两个查询
    • 通过预览窗口确认它们是正确的(如果不是所有行都显示,请不要担心
    • 经验法则也是先选择最大的查询,然后选择较小的查询
  • 接下来,突出显示您希望合并的列。对于您的示例,它将是 ID。只需单击预览中的列即可完成此操作
  • 最后把Join Kind改成Full Outer,点击OK

从这里你应该回到 Power Query 编辑器

  • 最后一步是将此合并查询修改为您想要的输出
  • 您应该注意到在您的第一个原始表旁边添加了一个新列,查询的名称位于顶部,名称旁边是一个按钮这使您可以扩展此查询。
  • 选择合适的columns你想合并到另一个表并点击OK
  • 如果您在任何时候犯了错误,您可以在查询设置窗格中的应用步骤下追溯您的更改
  • 一旦您对新合并查询的外观感到满意,请继续点击Close and Load
  • 您现在应该可以访问新的合并查询,该查询将根据对原始连接文件所做的更改进行更新
  • 如果您想从现在开始进行任何其他更改,只需单击表格内的任意位置,您应该会同时看到 表格工具查询工具 选项卡在顶部

【讨论】:

  • 感谢 Steven 抽出宝贵时间!实际上,在您推荐电源查询之后,我今天早些时候设法做到了这一点,Excel 真的很棒……有时 :) 我非常感谢您,这为我节省了 3-4 周和很多头痛。我现在正在努力解决另一个问题...如果您有时间请检查我的下一个问题(这将是最后一个问题,解决后我终于可以开始分析数据了)
猜你喜欢
  • 2020-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-26
  • 2011-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多