4、数据清洗核心概念:行、列、表、数据类型、值、缺失值、重复值、异常值等术语解析
在Power Query中处理财务数据,首先需要建立一套统一的“数据语言”。财务人员熟悉科目、凭证、借贷,但Power Query的底层逻辑是表格模型——一切操作都围绕行、列、表、值展开。如果对这些核心概念的理解存在偏差,后续的清洗步骤就会像在沙地上盖楼。本章将逐一拆解这些基础术语,并结合财务场景说明它们如何影响数据质量与清洗策略。
4.1 表、行、列:财务数据的“三维骨架”
核心原理
Power Query中的“表”是一个二维数据结构,由行和列交叉构成。每一行代表一条完整的财务记录,每一列代表一个特定的字段属性。例如,一张费用报销明细表,每一行是一笔报销单,列则包含“报销单号”“报销人”“部门”“费用类型”“金额”“报销日期”等字段。理解表、行、列的层级关系,是后续所有清洗操作的基础——无论是筛选行、拆分列,还是合并表,本质上都是在操作这三个维度。
判断方法与操作流程
- 识别行与列的角色:在Power Query编辑器中,左侧“查询设置”窗格显示每一步操作,右侧数据预览区上方是列标题,下方是数据行。财务人员应首先确认每一列的数据类型是否与业务含义匹配(如“金额”列应为小数,“日期”列应为日期类型)。
- 行列的增删操作:删除行(如筛选掉已作废的凭证)、删除列(如移除“备注”列)、添加列(如根据“金额”和“税率”计算“税额”)。这些操作在“添加列”和“删除列”菜单中完成。
- 表的合并与追加:当财务数据分散在多个工作表或工作簿时,需要将结构相同的表“追加查询”(纵向堆叠),将有关联字段的表“合并查询”(横向关联)。
| 操作对象 | 财务场景示例 | Power Query操作 | 注意事项 |
|---|---|---|---|
| 行 | 筛选出“凭证状态=已审核”的记录 | “筛选行”按条件过滤 | 注意筛选后行数变化,避免误删 |
| 列 | 保留“科目编码”“科目名称”“借方金额”“贷方金额” | “选择列”或“删除列” | 删除前确认列是否被后续步骤引用 |
| 表 | 合并1月、2月、3月的费用明细表 | “追加查询” | 确保各表列名和数据类型一致 |
4.2 数据类型与值:财务数据的“基因密码”
核心原理
数据类型决定了Power Query如何解释和计算单元格中的值。财务数据中常见的数据类型包括:文本(如科目名称)、整数(如凭证号)、小数(如金额)、日期(如记账日期)、时间(如制单时间)、逻辑值(TRUE/FALSE,如是否已审核)。如果数据类型设置错误,会导致排序混乱、求和失败、日期无法参与计算等问题。
判断方法与操作流程
- 检查列数据类型:在Power Query中,列标题左侧的图标表示数据类型(如“123”表示数字,“ABC”表示文本,“日历”表示日期)。如果图标与业务含义不符,点击图标手动修改。
- 处理“值”的格式问题:财务数据中常见的值问题包括:金额带千分位逗号(如“1,234.56”)、日期显示为文本(如“2024/01/15”被识别为文本)、数字前有空格或货币符号。使用“替换值”“格式”或“拆分列”功能清洗。
- 使用“检测数据类型”功能:Power Query的“自动检测”功能可以识别列中的大部分数据类型,但财务数据常因混合格式(如“1,234”和“1234”并存)导致检测失败,需手动干预。
4.3 缺失值、重复值、异常值:数据质量的“三大杀手”
核心原理
缺失值指单元格为空或为Null,在财务数据中可能表示“未填写”“不适用”或“数据丢失”。重复值指完全相同的行或关键字段重复出现,如重复录入的凭证号。异常值指明显偏离正常范围的值,如金额为负数(在费用表中)、日期为未来时间、科目编码不存在于科目表中。这三类问题会直接影响财务分析的准确性,必须系统处理。
判断方法与操作流程
- 缺失值处理:使用“转换”菜单下的“替换值”将Null替换为0或特定文本;或使用“筛选行”排除空值行。对于关键字段(如凭证号)缺失,应标记为“待补录”并反馈业务部门。
- 重复值处理:使用“删除重复项”功能,可选择基于所有列或指定列去重。财务场景中,通常基于“凭证号+行号”组合去重,避免误删合法记录。
- 异常值识别:通过“筛选行”设置条件(如金额>0且<1000000),或使用“分组依据”统计各科目金额的分布,发现极端值。也可用“列统计”查看最小值、最大值、平均值,辅助判断。
| 问题类型 | 财务示例 | 清洗方法 | 风险提示 |
|---|---|---|---|
| 缺失值 | “供应商名称”为空 | 替换为“未知供应商”或删除该行 | 删除前确认该行是否影响总额 |
| 重复值 | 同一张凭证被导入两次 | 按“凭证号+行号”删除重复项 | 不要仅按“凭证号”去重,否则会误删多行凭证 |
| 异常值 | “借方金额”为负数 | 筛选出负数行,检查是否为红字冲销 | 红字冲销是合法业务,不能直接删除 |
4.4 案例拆解:某公司费用报销表的清洗实战
背景与约束:某中型企业每月有约3000条费用报销记录,原始数据从OA系统导出为Excel,包含字段:报销单号、报销人、部门、费用类型、报销金额(文本格式,带千分位逗号)、报销日期(部分为文本)、备注(大量空值)。财务部需要将数据导入Power BI进行月度费用分析,但直接导入后出现金额无法求和、日期排序错误、重复单号等问题。
初始现象与目标:数据预览中,“报销金额”列显示为文本(左对齐),无法求和;“报销日期”列混合了“2024/1/5”和“2024-01-05”两种格式;存在3笔重复的报销单号。目标是将数据清洗为规范表格,确保金额为小数、日期为日期类型、无重复单号。
关键输入数据与操作步骤:
- 处理金额列:选中“报销金额”列,使用“替换值”将逗号(,)替换为空,再将列类型改为“小数”。此时金额列可正常求和。
- 处理日期列:使用“替换值”将“/”替换为“-”,再将列类型改为“日期”。Power Query会自动识别标准日期格式。
- 删除重复单号:选中“报销单号”列,点击“删除重复项”,保留第一条记录。检查删除的行数(本例为3行),确认均为重复录入。
- 处理缺失备注:将“备注”列的空值替换为“无”,避免后续透视时出现Null。
- 验证结果:使用“列统计”查看金额总和、日期范围,确认无误后加载到Power BI。
结果对比与复盘:清洗前,金额列无法求和,日期排序错乱;清洗后,金额汇总正确,日期按时间顺序排列,重复单号消除。复盘经验:先处理数据类型,再去重,最后处理缺失值——因为类型转换可能影响后续筛选和去重逻辑。此外,建议将清洗步骤保存为Power Query模板,供下月复用。