Power Query批量合并Excel,列名不一致怎么办?
教育
2024-09-12 12:04
河南
关于用PowerQuery批量合并Excel工作簿,前面分享过几种做法:有伙伴问到如果每个Excel文件的数据结构一样,但是列名不相同,如何合并到一起呢?这三个表每一列的数据位置是相同的,但是第一行列名不同,如果表不是很多,我们可以先手动修改列名再合并,但是如果表非常多,这样做效率就太低了,其实即使不修改列名我们也可以实现批量合并。对于上面情况,基本处理思路是:合并时不要将第一行的列名视同标题,当成正常的数据简单合并起来,然后把标题行筛选出去,就实现了批量合并,下面来看看操作步骤。仍然是先把这些表放到一个文件夹中,然后开始PowerBI的操作:↑ 点击“转换数据”进入PowerQuery编辑器↑ 自定义列公式:Excel.Workbook([Content])这里的Excel.Workbook无需加第二个参数,由于第一行虽然是标题,但是都不相同,无法使用,所以第二参数省略。Tips:利用PowerQuery进行数据处理时,可以先把其他无关列都删掉,看起来更加清爽,包括之后的步骤,如果展开后,发现有无用的列,可以随时删除。展开以后,点击Data列的某个Table,可以看出每个表的列名都是Column1、Column2……,这种默认的列名每个表肯定是相同的,直接展开这一列,即可得到简单合并的效果。
然后将第一行用作标题,这个合并后的表就有了标题,实际是第一个表的标题。这样做好之后,数据行中还有其他表的标题,只需要把他们筛选出去就可以了。
如果表比较少,筛选起来还比较简单,如果表特别多,列名也不固定,那么也并不容易批量将其他表的标题全部筛选掉,这种情况下也有个筛选技巧。
列名一般都是文本,那么我们可以找一个日期列或者数值列,调整数据类型,比如第一列,应该是日期,我们把它调整为日期型,调整以后,这一列中含有文本列名的值将会报错。我们只需要右键订单日期,删除错误,即可将其他表的列名行全部删掉。通过上面的操作,就实现了列名不一致的多表格批量合并。
你可能还会问到,如果多个表格不仅是列名不一致,并且列的顺序也不一致怎么合并?这种情况下如果列名有一定的规律,可以先将列名批量修改为同一的列名,然后再合并,参考:如果列名不相同也没有规律,列顺序还不一致,这种情况下不仅用工具难以识别,即使用人工,都未必能识别出不同的表哪些算是同一列,最好还是先去规范你的数据吧~
PowerBI星球的最新版内容合辑,值得你收藏学习: