批量模糊查询_Power Query批量合并Excel文件,这些技巧你应该掌握

PowerQuery的一大经典且高频应用,就是批量汇总多个Excel工作簿,很多人刚开始认识Power Query也是通过这个功能,如果你还不熟悉,也可以先看看这篇文章:​

采悟:财务人员必学,使用Powerquery是一种什么体验?​zhuanlan.zhihu.com
ac04e77e98f5bb612b81b847fbaaa367.png

虽然比较简单,但遇到不少人会在批量合并的过程中,出现各种问题,不知道怎么解决,其实PowerQuery这个简单的操作步骤中,也有不少技巧,掌握之后可以帮你更灵活高效的汇总数据。

以批量汇总文件夹的Excel工作簿为例,

7d8b371eafc6b840d55caaa35bd7056f.png

在这个文件夹中,有北京、广州、杭州三个Excel工作簿,其中每个工作簿又包含1月、2月、3月三个sheet。

先按常规步骤操作一遍,

1f8b6a8be0f0c26fa9d69d9dcac4e999.png

↑ 获取数据>文件夹

99d2e613b1284648fae0b7eec1b3b879.png

↑ 合并并转换数据

这是大家最常用的操作方式,来看看这样做的结果是什么。

02d51e7af4fb4b405d6d47aab91e877f.png

虽然完成了一键批量合并,非常快捷,但是左边查询栏多出很多不需要的查询,看着很乱,可是如果你想删除,是不是怎么也删除不掉?

这些查询PowerQuery执行合并操作时,默认操作过程留下的中间文件,当你点击"合并并转换数据"时,PowerQuery先根据其中一个文件作为示例,生成一个自定义函数,然后调用自定义函数,完成合并。

自动合并,除了会留下一堆杂乱的查询无法删除,还有个问题是,如果合并结果出错(出错的概率很高),需要修改示例文件或者自定义函数的代码,但是对于初学者是比较困难的,很多人不知道如何修改。

所以不建议使用默认的合并操作,在导入之后的预览窗口,推荐你使用“转换数据”,如下图所示:

f2bb46e1377bb96e7f0900645c8b4847.png

之后的操作步骤如下:

a0568212cb6303087d806d4b16c45d9f.png

↑ 选中[Content],删除其他列

你也可以根据需要保留部分列。

1d4f723ead3917d05489f976b4bcd15b.png

↑ 新建自定义列

导入到PowerQuery中的数据默认都是类型为binary类型,需要用函数将它解析出来,对于Excel工作簿文件,输入:

=Excel.Workbook([Content],true)

a7d7307169c62d5a3ea89a6d735971ff.png

↑ 展开自定义列

9aa2d9de1e4549a0d744486dd51ec84e.png

↑ 展开Data列

044c7214c517ab2e2dbcb3b472453fdd.png

↑ 完成合并

你再看左边的查询栏,是不是非常干净,只有一个查询。

这种算是手工合并数据,但相比自动合并,也就是输入一个简短的M函数,多点了几次鼠标而已,熟练操作后,整个过程不会超过一分钟。

通过上面的描述和操作过程,涉及到两个常用的PowerQuery合并技巧:

1, 为了避免出现杂乱的查询文件,使用“转换数据”,手动合并;

2. 新建自定义列时,Excel.Workbook的第二个参数不要省略,当参数为true时,会自动将Excel的第一行用作标题,可以省去一个步骤。

并且在手动合并的过程中,灵活运用,可以方便的进行各种形式的数据合并:

3. 合并文件夹中的部分工作簿

放入文件夹中的工作簿,可以按需要合并,而并不是必须全部合并。

在导入后的第一步【源】中,可以筛选需要合并的工作簿,假如只需要合并北京和杭州,直接勾选就可以了

cad47dbe178f777baab073e771b1eaab.png

之后的步骤不变。

4. 合并文件夹中的部分工作表。

工作簿中的sheet,同样可以按需合并。

比如只合并每个工作簿中名称为“3月”的sheet,在添加并展开自定义列以后,在Name列筛选3月,

54c4fc1a161adedc0021ad54e1cb86bf.png

之后的步骤不变。

5. 合并文件夹中的某一类型数据。

如果文件夹中的文件类型,不止一种,还可以选择按文件类型合并。

假如文件夹中既有Excel格式,还有csv、txt格式的数据文件,如果直接全部合并会报错,那么可以按类型分别单独合并。

dd036bf4f39317d52ff40afc2058a557.png

依然在【源】这个步骤中,可以按数据格式来筛选。

6. csv、txt格式的数据合并技巧。

上面添加自定义列时用的是Excel.Workbook,是专门用来解析Excel格式的,当数据格式为csv或txt时,需要换个解析函数。

csv、txt格式本质上属于同一种类型,都可以使用这个函数Csv.Document,为了避免中文出错,一般情况下自定义列可以直接这样写:

=Csv.Document([Content],[Delimiter=",", Encoding=936])

其中Delimiter=","是对逗号分割的数据,如果你的源数据是其他符号分割,这里就改为相应的符号;中文编码一般为936,所以上面代码中用了Encoding=936来避免中文乱码的问题。

以上就是关于PowerQuery文件夹批量汇总数据时,经常会用到的各种技巧,以及遇到问题时的解决办法,熟练掌握并灵活运用,PQ批量汇总的相关问题,基本都可以处理。

-精彩推荐-

采悟:模糊匹配,Power Query的这个功能太实用了,可惜Excel还没有​zhuanlan.zhihu.com
e4a32e9fc6e0f8fc436b6e66f3dbd6f3.png
采悟:二维表转一维表,看这篇文章就够了​zhuanlan.zhihu.com
a7006e3bd3c141f6e6bbe99139151747.png
采悟:PowerQuery文本处理技巧:移除和提取​zhuanlan.zhihu.com
a3e2db015cd5669a0e7e00d93587b9f1.png

喜欢了别忘了点赞哦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值