Power Query批量导入Excel文件,和导入文本有一点儿不同

2021-08-30 16:22:42 浏览数 (1)

小勤:大海,你上次说PowerQuery可以批量导入Excel文件,我参考你那个批量导入文本文件的方法试了一下,不行啊。

大海:呵呵。我就知道你会有问题。

小勤:知道会有问题还不早说!你看,我的文件也是一样很规范的啊!

大海:你记得你昨天做文本文件导入的时候,点击展开数据那里写着什么吗?

小勤:你说的是这个?Binary?二进制?

大海:对的。问题就在这里。一般你的Excel文件不会保存成二进制文件,虽然Excel里支持你将文件保存成二进制的,即另存为的时候选择“Excel二进制工作簿(.xlsb)”,但很少人这么干,你了解一下就行。

小勤:啊。又学到个新知识。那批量导入Excel文件怎么办?

大海:其实也不复杂,就是要多写个公式。我们还是从头开始吧,这样可以再熟悉一下全部过程,并且可以和批量导入文本文件的方法进行比较,慢慢体会其中的过程和原理。

第一步:【数据】-【从文件】-【从文件夹】

第二步:【浏览】选择数据所在的文件夹,【确定】

第三步:数据都在“Content”列中,但是被识别为二进制的内容。右键-【删除其他列】(当然,你也可以不删,或只删掉其他部分列)

第四步:【添加列】-【添加自定义列】-【输入公式:Excel.Workbook([Content])】-【确定】,注意大小写哦,括号里面的内容双击一下右边小窗口里的Content字段就可以了,和Excel里选单元格类似。

如果表标题都在第一行,还可以直接加上参数直接识别出来,公式为:Excel.WorkBook([Content],true)。

第五步:展开数据列表

这将列出你所有工作簿里的所有表,如果某些工作簿里有多张表的话,都会显示在这里:

第六步:继续展开表数据

数据都出来啦!

小勤:是啊!真牛!不过,好像比文本那个还乱呢。

大海:是的,因为多了好多相关的列,但整理数据是Power Query的强项!这个例子也只要3步就搞定了。

第一步:删掉一些没用的列:选择要保留的列,【开始】-【删除列】-【删除其他列】

第二步:借用一下你第一张表里的标题【将第一行用作标题】

第三步:选择删掉其他表里重复的标题行和汇总行(其实跟Excel里的筛选是一摸一样的)

最后,【关闭并上载】数据。

小勤:嗯。我知道了,其实跟文本文件导入的差别就是要将二进制的内容用Excel.Workbook函数解析出来,然后在解析出来的内容里展开数据。对吗?

大海:真聪明。这样理解就行了。

0 人点赞