合并 2 个 Excel 文件 - 函数合并

合并 2 个 Excel 文件 - 函数合并

我无法合并两个 Excel 文件的数据...

文件1.xlsx

在此处输入图片描述

文件2.xlsx

在此处输入图片描述

我想要得到这样的东西……

在此处输入图片描述

我该如何使用合并函数来实现这一点。我尝试遵循本教程但它似乎没有更新。

答案1

您想要做的是合并来自不同文件的数据,而不是整合来自不同工作表的数据。功能区中的“合并”命令将始终汇总数字数据,而不仅仅是将其插入。

没有内置的简单一键功能可以完成您描述的操作。以下是手动合并的一种可能方法:

从一个文件中复制“新建”列并将其粘贴到另一个文件中现有的“新建”列旁边。然后在下一列中使用公式,例如

=IF(ISNUMBER(D2),D2,IF(ISNUMBER(E2),E2,""))

将公式一直复制下去,表格如下所示:

在此处输入图片描述

现在将数据从 F 列复制到 D 列并删除 E 列和 F 列。

答案2

您可以使用Microsoft 插件 Power Query以便将多个文件合并在一起。合并来自多个数据源的数据是 Power Query 的核心功能。更多信息请访问 MS 网站这里

在您的示例中,我假设前三列中有相同的值,而“新”列中只有两个文件中的一个有值。

您在 Power Query 中有两个查询。这是您可以使用的 M 代码。

在第一个查询中读取 file2(仅作为连接):

let
    Source = Excel.Workbook(File.Contents("C:\tmp\example\file2.xlsx"), null, true),
    Sheet1_Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
    #"Define Header" = Table.PromoteHeaders(Sheet1_Sheet),
    #"Change Type" = Table.TransformColumnTypes(#"Define Header",{{"First", type text}, {"Last", type text}, {"Old", Int64.Type}, {"New", Int64.Type}})
in
    #"Change Type"

读取 file1 并将其与第一个查询合并:

let
    Source = Excel.Workbook(File.Contents("C:\tmp\example\file1.xlsx"), null, true),
    Sheet1_Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
    #"Define Header" = Table.PromoteHeaders(Sheet1_Sheet),
    #"Change Type" = Table.TransformColumnTypes(#"Define Header",{{"First", type text}, {"Last", type text}, {"Old", Int64.Type}, {"New", Int64.Type}}),
    #"Merge tables" = Table.NestedJoin(#"Change Type",{"First", "Last", "Old"},File2,{"First", "Last", "Old"},"NewColumn",JoinKind.FullOuter),
    #"Expand new column" = Table.ExpandTableColumn(#"Merge tables", "NewColumn", {"New"}, {"NewColumn.New"}),
    #"Merge columns ""New""" = Table.CombineColumns(Table.TransformColumnTypes(#"Expand new column", {{"New", type text}, {"NewColumn.New", type text}}, "de-CH"),{"New", "NewColumn.New"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"New merged")
in
    #"Merge columns ""New"""

输出如下: 在此处输入图片描述

相关内容