Power Query批量合并Excel,列名不一致怎么办?

教育   2024-09-12 12:04   河南  
关于用PowerQuery批量合并Excel工作簿,前面分享过几种做法:
PowerQuery批量合并多个Excel的指定列
Power Query批量合并,数据不是从第一行开始怎么办
Power Query批量合并Excel,还有这个好用的方法

有伙伴问到如果每个Excel文件的数据结构一样,但是列名不相同,如何合并到一起呢?
以下面这三个表的数据为例:

这三个表每一列的数据位置是相同的,但是第一行列名不同,如果表不是很多,我们可以先手动修改列名再合并,但是如果表非常多,这样做效率就太低了,其实即使不修改列名我们也可以实现批量合并。
对于上面情况,基本处理思路是:合并时不要将第一行的列名视同标题,当成正常的数据简单合并起来,然后把标题行筛选出去,就实现了批量合并,下面来看看操作步骤。
仍然是先把这些表放到一个文件夹中,然后开始PowerBI的操作:
↑ 获取数据>文件夹

↑ 点击“转换数据”进入PowerQuery编辑器

↑ 添加列>自定义列

↑ 自定义列公式:Excel.Workbook([Content])

这里的Excel.Workbook无需加第二个参数,由于第一行虽然是标题,但是都不相同,无法使用,所以第二参数省略。

Tips:利用PowerQuery进行数据处理时,可以先把其他无关列都删掉,看起来更加清爽,包括之后的步骤,如果展开后,发现有无用的列,可以随时删除。

↑ 展开自定义列


展开以后,点击Data列的某个Table,可以看出每个表的列名都是Column1、Column2……,这种默认的列名每个表肯定是相同的,直接展开这一列,即可得到简单合并的效果。


然后将第一行用作标题,这个合并后的表就有了标题,实际是第一个表的标题。

这样做好之后,数据行中还有其他表的标题,只需要把他们筛选出去就可以了。

如果表比较少,筛选起来还比较简单,如果表特别多,列名也不固定,那么也并不容易批量将其他表的标题全部筛选掉,这种情况下也有个筛选技巧。
列名一般都是文本,那么我们可以找一个日期列或者数值列,调整数据类型,比如第一列,应该是日期,我们把它调整为日期型,调整以后,这一列中含有文本列名的值将会报错。
我们只需要右键订单日期,删除错误,即可将其他表的列名行全部删掉。

通过上面的操作,就实现了列名不一致的多表格批量合并。

你可能还会问到,如果多个表格不仅是列名不一致,并且列的顺序也不一致怎么合并?这种情况下如果列名有一定的规律,可以先将列名批量修改为同一的列名,然后再合并,参考:
Power Query批量合并Excel,列顺序/列名都不一致怎么办?
如果列名不相同也没有规律,列顺序还不一致,这种情况下不仅用工具难以识别,即使用人工,都未必能识别出不同的表哪些算是同一列,最好还是先去规范你的数据吧~




PowerBI星球的最新版内容合辑,值得你收藏学习:
「PowerBI星球」内容合集


如果你想深入学习Power BI,欢迎加入PowerBI星球学习社群,获取更多学习资源,和6k+ 深度学习者一起精进~

PowerBI星球
海量干货,帮你轻松上手 Power BI
 最新文章