跳过正文

WPS表格Power Query数据清洗与合并建模进阶教程

目录

在当今数据驱动的办公环境中,高效处理和分析数据已成为一项核心技能。WPS表格内置的Power Query功能(在WPS中通常以“数据获取与转换”或类似名称集成),为普通用户提供了堪比专业数据分析工具的强大数据处理能力。如果你已了解基础的导入和简单清洗操作,那么本进阶教程将带你深入探索Power Query在数据清洗、多源合并以及数据建模方面的精妙应用,让你能游刃有余地应对复杂的真实业务数据场景,显著提升办公自动化水平。

wps下载 WPS表格Power Query数据清洗与合并建模进阶教程

一、Power Query进阶应用核心价值与准备
#

在深入技巧之前,我们有必要重新审视在WPS表格中使用Power Query进行进阶数据处理的独特优势。

核心价值

  1. 可重复性与自动化:所有清洗步骤均被记录,一键刷新即可对新的原始数据执行完全相同的数据处理流程,彻底告别重复劳动。
  2. 处理海量数据:Power Query的查询引擎能够高效处理远超普通工作表函数舒适范围的数据量(数十万行),且对系统内存更友好。
  3. 应对复杂、不规则数据源:无论是网页表格、JSON文件、文件夹内多个结构相似的文件,还是数据库,Power Query都能提供统一的接入和转换界面。
  4. 为数据建模与分析铺路:清洗合并后的规范数据,可直接加载为WPS表格的数据模型(如果版本支持)或智能表格,无缝衔接数据透视表、图表进行深度分析。

环境准备: 请确保你使用的是支持完整Power Query功能的WPS表格版本(通常是WPS专业版或企业版,或特定更新的个人版)。你可以通过点击「数据」选项卡,查找「获取数据」、「新建查询」或「数据获取与转换」等功能入口。建议在处理重要数据前,先对原始数据文件进行备份。

二、深度数据清洗:化“混乱”为“规整”
#

wps下载 二、深度数据清洗:化“混乱”为“规整”

基础清洗包括删除空行、更改类型等。进阶清洗则需要解决那些更棘手、更常见的数据“顽疾”。

1. 处理不规范的文本与数字
#

  • 场景:数字存储为文本,混有单位(如“100元”、“1,200”)、多余空格、不可见字符。
  • 进阶操作
    • 使用“拆分列”功能:对于“100元”,可按非数字字符(从数字到非数字转换处)拆分为“100”和“元”两列,然后删除“元”列,并将“100”转换为数字。
    • 使用“替换值”功能:对于“1,200”,可以批量替换掉逗号“,”。注意在替换前,该列需为文本格式。
    • 使用“提取”功能:利用“提取-长度”、“提取-首字符”等,可以移除尾部空格或特定字符。更强大的方式是使用“提取-文本之前/之后分隔符”。
    • 自定义列(使用M函数):对于更复杂的清理,如Text.Remove([金额], {"元", ",", " "})可以一次性移除指定字符。

2. 透视与逆透视:行列结构转换
#

这是改变数据形状以适配分析需求的杀手锏。

  • 逆透视(列转行):当你有多个月份的数据作为多列(一月、二月、三月…)时,为了按时间序列分析,需要将其转换为“月份”和“销售额”两列。选中需要转换的月份列,点击「转换」-「逆透视列」即可。
  • 透视(行转列):将“产品”和“月份”两列的值,转换为以产品为行、月份为列的交叉表。选择“值”列(如销售额),然后点击「转换」-「透视列」,选择“月份”列作为透视列,并指定值聚合方式(如求和、平均值)。

3. 基于条件的分列与合并
#

  • 条件列:根据已有列的值,生成新的分类列。例如,根据“销售额”列,新增“业绩等级”列,规则为:>10000为“优秀”,>5000为“良好”,其他为“一般”。这可以通过「添加列」-「条件列」功能图形化完成。
  • 合并列(带分隔符):将“姓”和“名”两列合并为“全名”列,中间用空格隔开。也可以将地址的省市区合并。

三、多表合并与追加:构建统一数据视图
#

wps下载 三、多表合并与追加:构建统一数据视图

当数据分散在多个工作表、文件或数据库中时,合并是必经之路。

1. 追加查询:纵向堆叠数据
#

用于合并多个结构完全相同(列名、顺序、数据类型一致)的表。例如,将1月、2月、3月的销售记录表合并成一个全年总表。

  • 操作:先为每个月的数据创建独立的查询,然后新建一个空白查询,使用Table.Combine({查询1, 查询2, 查询3})M函数,或在图形界面使用「追加查询」功能,选择“三个或更多表”进行合并。

2. 合并查询:横向关联数据
#

相当于SQL中的JOIN操作,用于根据一个或多个匹配列,将两个表的信息关联起来。这是数据建模的基础。

  • 类型选择至关重要
    • 左外部(保留第一个表的所有行,匹配第二个表):最常用。例如,用“订单表”左连接“客户信息表”,获取每个订单对应的客户详情。
    • 内部(仅保留两个表都能匹配的行):用于筛选出有对应关系的记录。
    • 完全外部(保留两个表的所有行):用于合并和查看所有数据,无匹配处显示null。
    • 反连接(仅保留第一个表中无法匹配的行):用于查找差异,如在“订单表”中找没有对应“客户信息”的异常订单。
  • 操作与扩展:在“订单表”查询中,点击「合并查询」,选择“客户信息表”查询,选中两表都有的“客户ID”列,选择连接类型(如左外部)。合并后,新生成的列是一个“表”对象,点击列右侧的扩展按钮,可以选择展开你需要的具体列(如客户姓名、电话),而无需导入整个表的所有列,这保持了数据的整洁。

3. 合并文件夹下的多个文件
#

这是批量处理的神器。当你有一个文件夹,里面存放了结构相同的每日/每月报表(Excel或CSV文件),可以一次性合并。

  • 操作:「获取数据」-「来自文件」-「从文件夹」,选择目标文件夹。Power Query会列出所有文件并创建一个包含内容二进制数据的查询。你只需要处理其中一个文件的转换步骤(如提升标题、删除无关列),然后将这些步骤应用到一个名为“示例文件”的查询上,最后将此查询的转换步骤“引用”到整个文件夹的查询中,即可实现批量处理。

四、M函数入门:解锁自定义转换能力
#

wps下载 四、M函数入门:解锁自定义转换能力

虽然图形界面强大,但掌握一些核心M函数能让你的查询如虎添翼。M是Power Query底层的函数式语言。

1. 常用函数类别
#

  • 文本处理Text.Trim(去空格),Text.Replace(替换),Text.Split(拆分),Text.Combine(合并)。
  • 数值与日期Number.From(转换),Date.AddDays(日期加减),Date.Year(提取年份)。
  • 列表与表格List.SumTable.SelectRows(行筛选), Table.AddColumn(添加列)。
  • 逻辑判断if...then...else

2. 在“自定义列”中的应用
#

这是使用M函数最常见的地方。例如,创建一个“折扣后价格”列,规则是:如果“原价”大于100,则打9折,否则不打折。

if [原价] > 100 then [原价] * 0.9 else [原价]

将此代码输入到自定义列的公式框中即可。

3. 高级示例:动态提取文件名中的日期
#

当合并文件夹文件时,原始数据可能没有日期列,但日期信息包含在文件名中(如“销售数据_20240315.csv”)。可以在合并后,添加自定义列:

Date.FromText(Text.Middle([Name], Text.Length("销售数据_")+1, 8), "yyyyMMdd")

这个公式从文件名([Name])中,从“销售数据_”之后开始,提取8位字符,并按“年月日”格式转换为日期类型。

五、数据建模与加载策略
#

清洗合并后的数据,需要加载回WPS表格以供分析。加载策略影响性能和后续操作的灵活性。

1. 加载至数据模型 vs. 加载至工作表
#

  • 加载至数据模型(推荐用于大数据集或多表关联):数据存储在压缩的引擎中,不占用工作表单元格。这是构建复杂多表关系、使用DAX度量值进行高级分析的基石。如果你的分析涉及多个事实表和维度表的关联,务必选择此选项。
  • 仅创建连接:数据保留在Power Query中,不立即加载。适合作为中间查询,为最终输出查询提供数据源。
  • 加载至工作表:将结果以静态表格形式放入一个新工作表。适合最终需要人工查看或简单操作的小型数据集。

2. 管理查询依赖与刷新
#

复杂的处理流程可能包含多个相互引用的查询。在查询编辑器的右侧“查询设置”窗格中,可以清晰地看到所有查询及其依赖关系。确保“数据源”路径正确(对于文件源,建议使用相对路径或通过参数管理),并可以设置所有查询的刷新策略(如打开工作簿时刷新、定时刷新)。

3. 性能优化建议
#

  • 尽早筛选:在查询的第一步或尽可能早的步骤中,使用“筛选行”功能减少后续步骤处理的数据量。
  • 选择必要的列:使用「选择列」或「删除列」功能,尽早移除分析不需要的列,减少内存占用。
  • 避免中间加载:对于仅为最终查询服务的中间查询,将其“加载”属性设置为“仅连接”。
  • 合并步骤优化:有时Power Query会自动记录一些细碎的步骤,可以手动检查并合并一些连续的同类型操作。

六、实战案例:构建月度销售分析数据平台
#

让我们通过一个综合案例,串联上述所有进阶技巧。

场景:你每月收到多个CSV文件:销售订单.csv(含订单ID、产品ID、数量、金额)、产品信息.csv(含产品ID、产品名称、类别、成本价)、销售员.csv(含销售员ID、姓名、区域)。你需要创建一个一键刷新的分析平台。

步骤

  1. 获取数据:分别创建三个查询,连接到这三个CSV文件。
  2. 深度清洗
    • 销售订单中,检查“金额”列是否为数字,清理可能的文本字符。
    • 产品信息中,为“类别”列创建规范(如将“电脑”、“计算机”统一为“计算机”)。
  3. 合并建模
    • 销售订单查询中,使用“合并查询”(左外部),关联产品信息查询,通过“产品ID”匹配,并展开“产品名称”、“类别”、“成本价”。
    • 再次使用“合并查询”(左外部),将上一步的结果与销售员查询关联,通过“销售员ID”匹配,并展开“姓名”、“区域”。
    • 添加“自定义列”,计算“毛利”:[金额] - [数量] * [成本价]
  4. 加载与发布
    • 将最终查询“加载至数据模型”。
    • 回到WPS表格,插入数据透视表,选择“使用此工作簿的数据模型”。现在,你可以在数据透视表中自由拖拽“区域”、“销售员”、“产品类别”作为行/列,分析“金额”、“毛利”的求和、平均值等。
  5. 自动化:下个月,只需用新的CSV文件替换旧文件(保持同名同路径),在WPS表格中右键点击数据透视表,选择“刷新”,所有清洗、合并、计算将自动重演,分析报表即刻更新。

常见问题解答 (FAQ)
#

Q1: 我的WPS表格里找不到Power Query功能,怎么办? A1: 请确认你的WPS表格版本。完整功能通常集成在WPS专业版或企业版中。个人最新版也可能逐步加入。你可以访问 WPS官网的下载中心,查看版本说明或下载最新版尝试。也可以参考我们的 《WPS Office 免费版与专业版功能区别详解》一文了解更多版本差异。

Q2: Power Query处理的数据量有上限吗? A2: Power Query本身处理能力很强,但最终受限于你的电脑内存和WPS表格的承载能力。如果加载到数据模型,可以处理百万行级别的数据;如果加载到工作表,则受限于Excel工作表的最大行数(约104万行)。对于超大数据集,建议始终加载到数据模型,并利用筛选减少加载量。

Q3: 学习M函数很难,有必要吗? A3: 对于80%的日常需求,图形化界面已足够。但掌握基础的M函数(如if、文本处理、日期函数)能解决另外15%的特定问题,让你在遇到复杂逻辑时拥有“终极解决方案”。建议从“自定义列”中的简单公式开始,逐步积累。我们的 《WPS表格高级函数实战》文章虽然主要讲工作表函数,但其逻辑思维对学习M函数同样有帮助。

Q4: 为什么刷新查询时很慢? A4: 可能的原因包括:数据源文件过大或位于网络慢速路径;查询步骤过多或存在性能瓶颈(如对未筛选的全文进行文本替换);电脑内存不足。请参考本文“性能优化建议”部分进行排查,特别是“尽早筛选”和“选择必要的列”。

Q5: Power Query处理后的数据,如何与他人共享并保证他们也能刷新? A5: 确保共享的WPS表格文件中包含了所有查询步骤(它们内嵌在文件中)。同时,数据源文件的路径需要是共享者可访问的。最佳实践是将原始数据文件和WPS表格工作簿放在同一个共享文件夹(如WPS云文档、公司网盘)的相对路径下,这样刷新时路径引用不易出错。你可以结合 《WPS云文档同步全攻略》来实现便捷的协作与共享。

结语
#

掌握WPS表格Power Query的进阶数据清洗与合并建模技能,意味着你已将数据处理从被动、繁琐的手工操作,转变为主动、自动化的智能流程。这不仅能将你从重复劳动中解放出来,更能确保数据分析结果的准确性与一致性,为决策提供可靠依据。本教程所涵盖的不规则数据处理、多表关联、M函数应用及建模优化,正是构建这一能力体系的关键环节。建议你打开WPS表格,找一个实际工作中的复杂数据集,按照本文的步骤大胆尝试,从实践中深化理解。随着经验的积累,你将发现,无论数据多么杂乱无章,你都有信心将其驯服,转化为清晰的业务洞察。

本文由 WPS下载入口 站点提供,欢迎访问 WPS客户端 页面了解更多办公软件资讯。