在Power Query之前,要实现多个同类表(即列都一样,因各种原因分开存储的表)的追加往往要使用SQL或VBA来实现(喜欢简单粗暴复制粘贴的朋友在此略过),SQL的情况下,如果出现新表,还得改SQL语句,而VBA要做到很灵活的处理,难度也不小,因此,在目前Power Query可用的情况下,建议以Power Query为首选。
欢迎关注微信公众号【Excel到PowerBI】,下载数据文件同步练习。
小勤:大海,你昨天说Power Query可以批量导入Excel文件,我参考你那个批量导入文本文件的方法试了一下,不行啊。
大海:呵呵。我就知道你会有问题。
小勤:知道会有问题还不早说!你看,我的文件也是一样很规范的啊!
大海:你记得你昨天做文本文件导入的时候,点击展开数据那里写着什么吗?
小勤:你说的是这个?Binary?二进制?
大海:对的。问题就在这里。一般你的Excel文件不会保存成二进制文件,虽然Excel里支持你将文件保存成二进制的,即另存为的时候选择“Excel二进制工作簿(.xlsb)”,但很少人这么干,你了解一下就行。
小勤:啊。又学到个新知识。那批量导入Excel文件怎么办?
大海:其实也不复杂,就是要多写个公式。我们还是从头开始吧,这样可以再熟悉一下全部过程,并且可以和批量导入文本文件的方法进行比较,慢慢体会其中的过程和原理。
第一步:【数据】-【从文件】-【从文件夹】
第二步:【浏览】选择数据所在的文件夹,【确定】
第三步:数据都在“Content”列中,但是被识别为二进制的内容。右键-【删除其他列】(当然,你也可以不删,或只删掉其他部分列)
第四步:【添加列】-【添加自定义列】-【输入公式:Excel.Workbook([Content])】-【确定】,注意大小写哦。
第五步:展开数据列表
这将列出你所有工作簿里的所有表,如果某些工作簿里有多张表的话,都会显示在这里:
第六步:继续展开表数据
数据都出来啦!
小勤:是啊!真牛!不过,好像比文本那个还乱呢。
大海:是的,因为多了好多相关的列,但整理数据是Power Query的强项!这个例子也只要3步就搞定了。
第一步:删掉一些没用的列:选择要保留的列,【开始】-【删除列】-【删除其他列】
第二步:借用一下你第一张表里的标题【将第一行用作标题】
第三步:选择删掉其他表里重复的标题行和汇总行(其实跟Excel里的筛选是一摸一样的)
最后,【关闭并上载】数据。
小勤:嗯。我知道了,其实跟文本文件导入的差别就是要将二进制的内容用Excel.Workbook函数解析出来,然后在解析出来的内容里展开数据。对吗?
大海:真聪明。这样理解就行了。