Lazy loaded imageEP016:筛选表、删除重复项、行列数计算

type
status
date
slug
summary
tags
category
icon
password
notion image

作为财务BP,数据清洗往往占据了工作的80%时间,尤其是处理从SAP、Oracle或金蝶/用友导出的原始数据时。
这一节课讲的筛选、去重、行列数计算,正是财务数据清洗中最基础也最高频的操作。我为你设计了以下三个典型的财务业务场景。

一、 筛选表 (Table.SelectRows)

业务场景:大额未付款项风险排查

月末关账前,你需要梳理应付账款(AP),找出所有状态为“待支付”且金额超过 50,000 元的大额单据,优先安排资金计划或催促业务部门补齐发票。

示例数据:付款申请表

单据编号
申请部门
供应商
申请金额
状态
PAY001
市场部
广告公司A
12000
已支付
PAY002
研发部
设备公司B
85000
待支付
PAY003
行政部
装修公司C
45000
待支付
PAY004
供应链
原料厂D
120000
待支付
PAY005
市场部
印刷厂E
6000
待支付

界面操作筛选列(请看视频演示)

 
关键函数

完整步骤M函数:

知识点讲解

  • 技术层面
    • 这里使用了 Table.SelectRows 函数。
    • 核心逻辑是 each ... and ...。注意 Power Query 区分大小写,金额是数值型直接比较,状态是文本型需要加双引号。
  • 财务BP视角
    • 业务价值资金流管控风险管理。BP 不需要看成千上万条小额支付,通过筛选聚焦“重点关注对象”,确保大额资金流出的合规性和计划性。

二、 删除重复项 (Table.Distinct)

业务场景:员工报销重复申报稽核

在处理员工差旅报销时,系统可能会因为网络延迟导致同一笔单据提交了两次,或者员工误操作重复提交了同一张发票。你需要找出并剔除这些重复数据。

示例数据:差旅报销明细

员工姓名
费用日期
费用类型
金额
备注
张三
2023/10/1
住宿费
500
汉庭
李四
2023/10/2
餐饮费
200
客户招待
李四
2023/10/2
餐饮费
200
客户招待
张三
2023/10/1
交通费
500
打车
李四
2023/10/5
餐饮费
200
部门聚餐
(注意:李四有三笔200元的餐饮费,前两笔日期、金额、类型完全一样,属于重复申报;第三笔虽然也是李四200元,但日期不同,是合理的)
注意:这个操作使用函数很有,如果是在UI界面操作,只能针对某列操作。

M函数应用

情况1:整行去重(完全重复的行)
结果:会删掉第3行,保留第2行和第5行。因为第2行和第3行所有信息完全一致。
情况2:多字段去重(关键信息重复即视为重复) 假设你不看备注,只要是 “同一个人、同一天、同样的金额” 就认为是重复申报。

知识点讲解

  • 技术层面
    • Table.Distinct(表) 是最安全的,只有完全一模一样的行才会被删。
    • Table.Distinct(表, {"列1", "列2"}) 是更激进的去重。注意这里使用了大括号 {} 来包裹多个列名,这对应了课件中讲的只要“指定的多个字段重复就要去重”——谨慎使用!。
  • 财务BP视角
    • 业务价值内控稽核。重复付款是企业费控的一大红线。通过多字段组合去重(例如:发票号+供应商),可以快速清洗掉脏数据,防止资金流失。

三、 行列数的计算 (Table.RowCount / Table.ColumnCount)

业务场景:数据完整性校验 (Control Total)

你从IT部门拿到了这个月的“销售明细表”,据称有 50 万行数据。在开始复杂的分析之前,你必须先做一个“完整性测试”,确认数据没有在传输过程中丢失。

示例数据:参见上例

M函数应用

知识点讲解

  • 技术层面
    • 这两个函数非常简单,返回的是一个数字 (Number),而不是表。通常我们会把这个结果用来做后续的判断(比如 if 行数 = 0 then "无数据" else ...)。
  • 财务BP视角
    • 业务价值数据质量校验
    • 行数校验:如果你知道系统里有 500,000 条记录,但 PQ 读出来只有 499,990 条,说明数据抽取有问题,必须停止分析,先找 IT 排查。
    • 列数校验:比如每月的标准模板应该是 20 列,如果某个月突然变成了 19 列,说明模板变了,后续的模型可能会报错。这是一个非常重要的防御性步骤。
 
 

 
【扫码识别下发二维码,获取本文使用到的及历史以来提及、发布的相关精选和原创资料,和我们一起充电,加入后可享受每月6次免费咨询提问,帮助解决您的特定问题!】

如果本篇文章对您有帮助或启发,请帮我们点赞、转发、推荐、关注,让更多想转型财务BP、锻造数据分析和可视化洞察能力的财务同行们看到,关注【老汪洞察】,不迷路!
notion image
notion image
 
温馨提示
🙏🏻
如果您不想错过【老汪洞察】的文章,请将我们设为"星标",这样每次最新文章推送才会第一时间出现在您的订阅列表里。 方法:点击文章页面左上角蓝色文字“老汪洞察”进入主页,点击关注后,再点主页右上角"...",然后选择"设为星标",即可完成,感谢您的支持。
 
上一篇
EP017:列表(List)函数族的统计运算
下一篇
EP015:学习M函数两个非常核心的逻辑控制功能:条件判断和错误处理及相关表操作函数
Loading...
文章列表
让财税成为经营的力量
管理报表
从Power Query到Power BI,入门到精通
699课程讲义
VBA小工具
电脑与网络
知识运用