
本文来源于一个星友的问题,他有上百个Excel表格,格式并不完全一样,列的位置顺序也不同,但每个表都有几个共同列,这种情况下,能不能通过PowerQuery把这些表格共同的列批量合并呢?
当然是可以的!
我模拟了三个表,源数据的情况大致是这样的,

这三个表之间的特征如下:
有共同列
列的位置顺序是不同的
列的数量不同,表三比其他表少了一列
假设我们需要提取其中四列并合并:订单日期、商品名称、客户编号和销售额,这四列在三个表都存在。
如果使用PowerQuery简单的合并汇总功能,是无法满足要求的,不过通过简单的M代码就可以实现。
下面是操作步骤。
/01/
将需要合并的表放入到一个文件夹中,然后使用获取数据>从文件夹,

/02/
点击编辑,进入PowerQuery编辑器,删除无关列,只保留Content列,

/03/
添加自定义列,

结果如下,

上面这三个步骤都是常规的合并操作,下面这一步是重点。
/04/
添加步骤,输入以下M代码,
合并指定列= Table.Combine( List.Transform( Table.Combine(已添加自定义[数据])[Data], each Table.SelectColumns(_, {"订单日期