PowerQuery批量合并Excel,列顺序/列名都不一致怎么办?

关于批量合并Excel,以前分别介绍过各种情况下的不同处理方式 , 比如:

  • 利用PowerQuery,批量合并多个Excel的指定列
  • 批量合并Excel,数据不是从第一行开始
  • 批量合并Excel,前面有空行且不相等的解决办法
最近星友又问到一种情况,如果多个表的内容相似,但是列顺序不一致、并且列的名称也不一致 , 就像下面这三个表格,如何批量合并呢?
PowerQuery批量合并Excel,列顺序/列名都不一致怎么办?

列顺序不一致很容易解决,前面已经介绍过,但是列名也不一致就比较麻烦 , 系统无法识别两个不同名称的列是否应该合并到一起 。
对于这种情况,基本思路是先整理一个列名映射表,将每个表修改为统一的列名 , 然后再进行合并 。批量修改列名的方法之前也介绍过,请参考:
PowerQuery技巧:批量更改列名
对于上述示例数据的列名映射表如下:
PowerQuery批量合并Excel,列顺序/列名都不一致怎么办?

然后就是将批量修改列名和批量合并两种技巧结合起来就可以了,操作步骤如下 。
1. 导入列名映射表并转为List 。
参考批量更改列名的操作步骤,将列名映射表转换为List列表 , 如下 。
PowerQuery批量合并Excel,列顺序/列名都不一致怎么办?



2. 导入Excel工作簿所在的文件夹
参考批量合并Excel指定列的步骤,将文件夹的工作簿导入,并利用Excel.Workbook([Content],true)解析出数据,到达下面这个步骤 。
PowerQuery批量合并Excel,列顺序/列名都不一致怎么办?

如果在这里直接展开[Data]列的数据,由于列名不一致 , 合并的结果将是错乱的,因此这里先不要展开 。


3. 批量修改[Data]列中Table的列名
这个是最关键的一步,在第2步的基础上添加自定义列来修改未展开的Table的列名:
Table.RenameColumns(
[Data],
列名映射表,
MissingField.Ignore
)


PowerQuery批量合并Excel,列顺序/列名都不一致怎么办?


至此每个Table中列名就是统一的了,点击展开,选择需要的列就可以得到合并后的数据 。
PowerQuery批量合并Excel,列顺序/列名都不一致怎么办?

批量合并数据的关键是要先熟悉自己的数据,如果数据很规范,合并起来就非常轻松,但是碰到如本文的情况,列名都不统一,那就需要先花点时间,动手整理好列名映射表,然后再进行合并 。


更多PowerBI教程



【PowerQuery批量合并Excel,列顺序/列名都不一致怎么办?】采悟 PowerBI星球

相关经验推荐