Excel 数据清洗

为什么干净的数据是不可妥协的

脏数据是 Excel 生产力的隐形杀手。多余的空格、不一致的格式、重复记录和缺失值会破坏你的公式、扰乱你的数据透视表、并导致基于错误数据的决策。研究一致表明,数据专业人员 60-80% 的时间花在清洗数据上——而不是分析数据。

好消息是:Excel 有专门为数据清洗设计的强大内置工具。你不需要手动扫描成千上万行数据。本指南涵盖能将你的数据准备时间减半的核心技巧。

分屏对比:左侧显示混乱数据——日期格式不一致(MM/DD/YYYY 与 DD-MM-YYYY 混用)、姓名字段有多余空格、城市/省份/邮编挤在一个单元格、重复行以黄色高亮。右侧显示清洗后的数据:统一日期格式、修剪后的文本、拆分后的地址列、已删除重复项。
图 1. — 清洗前后对比:同一个数据集,经过转换。右侧的干净数据支持可靠的公式、准确的数据透视表和可信赖的分析。

分步操作:清洗一个真实数据集

场景:你从旧系统导出 CSV 文件。A 列姓名有多余空格,B 列"城市, 省份 邮编"挤在一个单元格中,C 列日期格式混乱,且数据中存在重复行。

第一步——始终在副本上操作

  1. 右键工作表标签 > 移动或复制 > 建立副本。将副本命名为"已清洗"。
  2. 永远不要在唯一版本上清洗数据。如果清洗步骤出错,你随时可以回到原始数据。

第二步——删除重复行

  1. 点击数据中任意单元格,按 Ctrl+A 全选。
  2. 点击 数据 > 删除重复项。
  3. 取消勾选不应定义唯一性的列(如同一记录因时间戳不同而被保留)。只勾选关键列:例如姓名和日期。
  4. 点击确定。Excel 会报告删除了多少重复项,剩余多少唯一条目。
删除重复项对话框,每列均有复选框:姓名、地址、日期、金额。仅姓名和日期被勾选。对话框下方,工作表中即将被删除的重复行以黄色高亮显示。
图 2. — 删除重复项对话框。谨慎选择定义重复的列——勾选全部列几乎找不到重复项。

第三步——用 TRIM 和 CLEAN 清洗文本

  1. 在姓名列旁边插入新列(右键 B 列 > 插入)。标注为"姓名_清洗"。
  2. 在第一个数据行输入:=TRIM(CLEAN(A2))
  3. 双击填充柄向下复制。TRIM 去除前后和多余的空格。CLEAN 去除不可打印字符(系统导出文件中很常见)。
  4. 复制清洗后的列,右键原始列 > 选择性粘贴 > 数值,将公式替换为清洗后的文本。删除辅助列。

第四步——用分列拆分"城市, 省份 邮编"

  1. 选中合并的地址列。数据 > 分列。
  2. 选择分隔符号,点击下一步。勾选逗号作为分隔符。
  3. 预览显示拆分结果。点击下一步。
  4. 为每个目标列设置数据格式:"城市"为文本,"省份 邮编"为文本。点击完成。
  5. 现在再拆分"省份 邮编":选中该列,分列 > 分隔符号 > 空格。你现在有了三个干净的列:城市、省份、邮编。
分列向导第二步:分隔符部分已勾选逗号。下方数据预览显示列被拆分为两部分:'上海市'和'上海 200000'。背景中可见原始合并列。
图 3. — 分列功能实战。预览会在你确认之前准确显示数据如何拆分。

第五步——统一日期格式

  1. 选中日期列。数据 > 分列 > 分隔符号 > 取消所有分隔符 > 下一步。
  2. 在"列数据格式"下,选择日期并选择与数据匹配的格式(YMD、MDY 等)。
  3. 点击完成。Excel 将所有日期转换为一致的、可排序的格式。
  4. 对仍然不对的日期,应用统一格式:Ctrl+1 > 数字 > 日期 > 选择你想要的显示格式。

关键技巧

技巧一——快速填充识别模式

快速填充(Ctrl+E)会观察你的手动编辑,并根据检测到的模式自动补全其余内容。

  1. 在包含全名的列旁边,从第一个单元格中手动输入名字。按 Enter。
  2. 开始输入第二个名字。Excel 会显示灰色预览建议。
  3. 按 Ctrl+E 接受。快速填充会即刻提取所有行的名字。适用于拆分、合并、格式化和提取文本片段。

技巧二——使用通配符的查找和替换

  1. 按 Ctrl+H 打开查找和替换对话框。
  2. 要删除产品代码中连字符后的所有内容:查找 -*,替换为空。
  3. * 匹配任意数量字符。? 匹配恰好一个字符。
  4. 始终先点击查找全部预览匹配项,再确认替换。

常见错误

  1. 在原始文件上清洗。始终在副本上操作。清洗往往是不可逆的——TRIM 和分列会破坏原始数据格式。
  2. 未经分析就删除缺失数据的行。空白单元格可能表示数据收集问题,而非无用记录。检查缺失数据是随机的还是系统性的再决定删除。
  3. TRIM 无法删除不间断空格(char 160)。网页数据常包含这种字符。在 TRIM 之前使用 =SUBSTITUTE(A2, CHAR(160), " ") 彻底清除空白。
  4. Excel 会自动去掉数字前导零。对邮政编码、产品编号或员工工号,在导入前将列格式设为文本,或使用 =TEXT(A2, "00000") 恢复前导零。

进阶技巧

下载练习模板
对本文内容有疑问或发现了错误?