💡 文末有福利:关注「慕慕进化论」,在公众号聊天框回复「Excel」领取《Excel全攻略》60期合集PDF,系统自动发送,随用随查。
每周一从系统导出一份销售数据,需要做一堆整理工作:删掉多余的列、合并几个表格、把日期格式统一、去掉空行……同样的操作每周重复一次,每次都花半小时到一小时。这种痛苦我太熟悉了。
后来发现了Power Query,第一次整理的时候花点时间建好流程,之后每周只需要把新文件放进去,点一下"刷新",所有整理步骤自动完成。那种感觉就像找到了一个免费的助手。
Excel全攻略到了第73期,今天聊聊这个被严重低估的功能。
01 Power Query是什么
Power Query是Excel内置的数据处理工具,专门用来"获取数据、清洗数据、转换数据"。它的核心思路是把数据处理的每一步操作记录下来,形成一个可重复执行的"查询"。下次数据更新了,只要点一下刷新,所有步骤自动重新执行一遍。
跟宏的区别在于:宏录制的是鼠标和键盘的操作,而Power Query记录的是数据处理的逻辑。宏处理的是"操作过程",Power Query处理的是"数据本身"。对于数据清洗这个场景,Power Query要直观得多。
在Excel里找到Power Query很简单。点击"数据"选项卡,就能看到"获取数据"、"查询和连接"等按钮,这些都是Power Query的入口。在较新版本的Excel里,它已经深度集成在"数据"选项卡中了。
02 导入数据:从哪里获取
Power Query支持很多种数据来源。最常用的几种:Excel表格(当前工作簿或其他文件)、CSV文件、网页(直接抓取网页上的表格)、文件夹(批量导入文件夹里的所有文件)。
最实用的场景之一是"从文件夹导入"。假设每个月都会把报表保存在同一个文件夹里,文件夹里有1月到12月的Excel文件。用Power Query可以从这个文件夹一次性导入所有文件,自动合并成一个总表。以后每个月新文件放进文件夹,刷新一下就能自动更新总表。
操作步骤:点击"数据"→"获取数据"→"来自文件"→"从文件夹",选择文件夹路径,Power Query会列出文件夹里的所有文件。点击"合并和转换",它会自动把所有文件的结构对齐,合并成一张表。
如果是从其他Excel文件导入,点击"数据"→"获取数据"→"来自文件"→"从工作簿",选择文件后可以看到工作簿里所有的表和区域,选择需要的数据导入即可。
03 清洗数据:Power Query编辑器
数据导入后会进入Power Query编辑器,这是一个独立的操作界面。左侧是"查询"列表,中间是数据预览,右侧是"查询设置"面板,会记录每一步操作。
常用的清洗操作都很直观:
删除列:右键点击列标题,选择"删除列"。或者按住Ctrl多选列,一次性删除不需要的列。
筛选行:点击列标题旁边的下拉箭头,可以按条件筛选。比如只保留"部门=销售部"的行,或者只保留"金额>1000"的行。
更改数据类型:点击列标题左侧的图标,可以切换数据类型(文本、数字、日期等)。这一步很重要,数据类型不对的话后续计算会出错。
拆分列:比如"姓名-部门"这样的列,可以按分隔符拆成两列。点击"转换"→"拆分列"→"按分隔符",选择分隔符类型就好。
替换值:跟Excel的查找替换类似,点击"转换"→"替换值",输入要替换的内容和替换后的内容。
最关键的一点:每一步操作都会记录在右侧的"应用步骤"里。这些步骤就是自动化的核心——刷新时Power Query会按顺序重新执行所有步骤。
04 输出数据:加载到工作表
数据处理完成后,点击"关闭并加载",Power Query会把结果输出到Excel工作表。输出的数据是一个"连接",不是一个静态的表格。数据源更新后,右键点击表格选择"刷新",Power Query会重新执行所有步骤,输出最新的结果。
也可以选择"关闭并加载到",指定输出位置(新工作表或现有工作表的指定位置),或者只创建连接而不加载到工作表(如果只需要把数据给Power Pivot或其他查询用的话)。
输出的数据表自带筛选器,格式上是一个超级表(Table),支持自动扩展。如果数据量增加了,表格范围会自动更新。
05 进阶技巧:让效率翻倍
掌握了基础操作之后,有几个进阶技巧值得关注:
多步查询串联:一个Power Query查询的输出可以作为另一个查询的输入。比如先把原始数据清洗成"基础表",然后基于基础表创建多个查询,分别做不同的汇总和透视。这样基础清洗逻辑只需要维护一份。
条件列:根据条件生成新列。点击"添加列"→"条件列",设置条件逻辑。比如"如果金额>10000则'大额',否则'小额'"。这比在Excel里写IF公式要直观得多。
分组依据:类似数据透视表的分组汇总功能。点击"转换"→"分组依据",选择分组字段和聚合方式。可以按部门汇总销售额、按月份计算平均值等。
合并查询:类似VLOOKUP的功能,但更强大。把两个查询通过共同的列关联起来,支持左连接、内连接等多种连接方式。点击"主页"→"合并查询"就能操作。
06 注意事项和踩坑提醒
使用Power Query有几个容易踩的坑,提前说一下:
数据结构要稳定:Power Query是按步骤记录操作的,如果数据源的列名变了或者列的顺序变了,刷新时可能会报错。所以在设计数据源格式时,尽量保持表头稳定。
刷新速度:数据量很大(几十万行以上)时,刷新可能需要一些时间。可以在Power Query编辑器里删除不必要的步骤,或者把数据源提前做一些预处理,减少Power Query的计算量。
文件路径问题:如果数据源是外部文件,路径是固定的。把文件发给别人或者换台电脑,路径可能对不上。这种情况下,可以使用参数化路径或者把数据源放在相对路径下。
Power Query的公式语言是M语言,跟VBA完全不同。大部分场景下用界面操作就够了,不需要学M语言。但如果想做一些高级操作,了解一些M语言的基础会有帮助。
Power Query是Excel里性价比最高的功能之一。学会它之后,很多以前需要手动花半小时做的数据整理工作,现在只需要点一下刷新。建议大家从自己最头疼的重复性数据整理任务开始尝试,建一个Power Query查询,体验一下"一次设置、永久自动"的快感。
关注「慕慕进化论」,每周一个实用思维工具,把学过的东西变成自己的。