合并两个 excel 文件中的数据

合并两个 excel 文件中的数据

我有两个包含 AD 用户信息的 Excel 文档,我需要合并它们以收集所有信息。

其中一个文档包含有关 AD 组及其成员名称的信息。另一个文档包含有关用户的信息 - 如果启用了用户,则包含用户名、姓名和电子邮件地址。

文档中的公共值是名称。我想要在 Excel 文档中将用户名和电子邮件地址的值与组一起显示。

示例文档组

示例文档用户

我在组文档中有超过 3400 行,在用户文档中列出了 271 个用户。在组文档中,用户将被列出多次,因为用户可以并且将成为多个组的成员。

有没有办法使用两个文档中的公共值(用户名)合并我想要的数据(电子邮件地址和用户名)?用户被列出多次会有什么问题吗?

解决方案

我通过在 Excel 中安装插件 Ablebits Data 来实现这一点。

https://www.ablebits.com/

它使我能够合并 Excel 文档并根据相同的数据将一个文档的数据添加到另一个文档中。

答案1

我会使用完全集成的获取并转换Excel 功能,因为你有 Excel 2016。对于以前的版本,你可以使用免费的MS Power Query 插件

无需编程/vba 知识,即可轻松合并来自多个数据源的数据。MS 支持对此进行了描述这里一步步。

您需要这些主要步骤。

  1. 导入第一个源在此处输入图片描述
  2. 导入第二个源在此处输入图片描述
  3. 通过定义公共列/字段将第一个源与第二个源结合起来。在此处输入图片描述

这里是 M 代码(当您使用获取和转换的用户界面时,实际上不必编写它):

  • 第一来源(例如用户的信息)

    let
        Source = Excel.Workbook(File.Contents("C:\yourPath\example\Input2.xlsx"), null, true),
        Table13_Table = Source{[Item="Table13",Kind="Table"]}[Data],
        #"Changed Type" = Table.TransformColumnTypes(Table13_Table,{{"Name", type text}, {"Enabled", type logical}, {"email", type text}})
    in
        #"Changed Type"     
    
  • 第二来源(例如 AD 组),其中第一来源与

    let
        Source = Excel.Workbook(File.Contents("C:\Users\EDubosson\Documents\Privat\OneDrive\Öffentlich\example\Input1.xlsx"), null, true),
        Table1_Table = Source{[Item="Table1",Kind="Table"]}[Data],
        #"Changed Type" = Table.TransformColumnTypes(Table1_Table,{{"GroupName", type text}, {"Member", type text}}),
        #"Merged Queries" = Table.NestedJoin(#"Changed Type",{"Member"},Table13,{"Name"},"Table13",JoinKind.Inner),
        #"Expanded {0}" = Table.ExpandTableColumn(#"Merged Queries", "Table13", {"Enabled", "email"}, {"Enabled", "email"})
    in
        #"Expanded {0}"
    

相关内容