Excel 数据清洗与转换 #

概述 #

数据清洗是数据分析的重要步骤,本章节介绍使用 Excel 函数进行数据清洗和转换的技巧。

text
┌─────────────────────────────────────────────────────────────┐
│                    数据清洗流程                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. 识别问题:空值、重复、格式不一致                         │
│  2. 清理数据:删除、填充、修正                               │
│  3. 转换格式:文本、数字、日期                               │
│  4. 验证数据:检查、确认                                     │
│                                                             │
└─────────────────────────────────────────────────────────────┘

常见数据问题 #

空值处理 #

excel
检查空值:
=ISBLANK(A1)
=COUNTBLANK(A:A)

填充空值:
=IF(A1="", "默认值", A1)
=IFERROR(A1, "默认值")

删除空行:
筛选 → 空白 → 删除

重复值处理 #

excel
检查重复:
=COUNTIF(A:A, A1)>1

标记重复:
=IF(COUNTIF($A$1:A1, A1)>1, "重复", "")

删除重复:
数据 → 删除重复值

提取唯一值(Excel 365):
=UNIQUE(A:A)

格式不一致 #

excel
大小写统一:
=UPPER(A1)    转大写
=LOWER(A1)    转小写
=PROPER(A1)   首字母大写

空格处理:
=TRIM(A1)     清除多余空格

不可见字符:
=CLEAN(A1)    清除不可打印字符

文本清洗 #

提取信息 #

excel
从身份证提取出生日期:
=TEXT(MID(A1, 7, 8), "0000-00-00")

从邮箱提取用户名:
=LEFT(A1, FIND("@", A1)-1)

从电话提取区号:
=LEFT(A1, FIND("-", A1)-1)

从地址提取省市:
=LEFT(A1, FIND("省", A1))

分列处理 #

excel
按分隔符拆分:

原始数据:张三,男,25岁

姓名:=LEFT(A1, FIND(",", A1)-1)  → "张三"
性别:=MID(A1, FIND(",", A1)+1, FIND(",", A1, FIND(",", A1)+1)-FIND(",", A1)-1)
年龄:=RIGHT(A1, LEN(A1)-FIND(",", A1, FIND(",", A1)+1))

合并文本 #

excel
合并多个单元格:
=A1 & B1 & C1
=CONCAT(A1, B1, C1)
=TEXTJOIN("-", TRUE, A1:C1)

格式转换 #

文本转数字 #

excel
=VALUE(A1)
=A1*1
=A1+0
=--A1

批量转换:
数据 → 分列 → 完成

数字转文本 #

excel
=A1&""
=TEXT(A1, "0")
=TEXT(A1, "00000")  补零

日期转换 #

excel
文本转日期:
=DATEVALUE(A1)
=TEXT(A1, "yyyy-mm-dd")

数字转日期:
=TEXT(A1, "yyyy-mm-dd")

日期格式化:
=TEXT(A1, "yyyy年mm月dd日")

数据验证 #

检查数据类型 #

excel
是否为数字:=ISNUMBER(A1)
是否为文本:=ISTEXT(A1)
是否为日期:=ISNUMBER(A1)  (日期存储为数字)
是否为空:=ISBLANK(A1)

检查数据范围 #

excel
是否在范围内:
=AND(A1>=最小值, A1<=最大值)

是否为有效日期:
=AND(ISNUMBER(A1), A1>=DATE(1900,1,1), A1<=DATE(2100,12,31))

是否为有效手机号:
=AND(LEN(A1)=11, LEFT(A1,1)="1", ISNUMBER(VALUE(A1)))

检查格式 #

excel
是否为邮箱格式:
=ISNUMBER(FIND("@", A1))*ISNUMBER(FIND(".", A1, FIND("@", A1)))

是否为身份证格式:
=AND(LEN(A1)=18, ISNUMBER(VALUE(LEFT(A1,17))))

实战案例 #

案例1:清洗客户数据 #

text
原始数据:
    A              B          C
1   姓名           电话       邮箱
2   "  张三  "     13812345678  ZHANG@EXAMPLE.COM
3   李四           139-1234-5678  li_si@test.com

清洗后:
    A              B          C
1   姓名           电话       邮箱
2   张三           13812345678  zhang@example.com
3   李四           13912345678  li_si@test.com

清洗公式:
姓名:=PROPER(TRIM(A2))
电话:=SUBSTITUTE(B2, "-", "")
邮箱:=LOWER(TRIM(C2))

案例2:地址标准化 #

text
原始数据:
    A
1   北京市朝阳区xxx路xxx号
2   上海浦东新区xxx路xxx号
3   广州天河区xxx路xxx号

提取省份:
=IF(LEFT(A1, 2)="北京", "北京市",
   IF(LEFT(A1, 2)="上海", "上海市",
      IF(LEFT(A1, 2)="广州", "广东省", "")))

提取城市:
=IF(LEFT(A1, 2)="北京", "北京",
   IF(LEFT(A1, 2)="上海", "上海",
      IF(LEFT(A1, 2)="广州", "广州", "")))

案例3:数据分列 #

text
原始数据:
    A
1   张三|男|25|北京
2   李四|女|30|上海

分列:
    A          B          C          D
1   姓名       性别       年龄       城市
2   张三       男         25         北京
3   李四       女         30         上海

公式:
姓名:=LEFT(A1, FIND("|", A1)-1)
性别:=MID(A1, FIND("|", A1)+1, FIND("|", A1, FIND("|", A1)+1)-FIND("|", A1)-1)
年龄:=MID(A1, FIND("|", A1, FIND("|", A1)+1)+1, 
            FIND("|", A1, FIND("|", A1, FIND("|", A1)+1)+1)-
            FIND("|", A1, FIND("|", A1)+1)-1)
城市:=RIGHT(A1, LEN(A1)-FIND("|", A1, FIND("|", A1, FIND("|", A1)+1)+1))

案例4:批量格式化 #

text
原始数据:
    A
1   13812345678
2   13987654321

格式化为:
    A
1   138-1234-5678
2   139-8765-4321

公式:
=LEFT(A1, 3) & "-" & MID(A1, 4, 4) & "-" & RIGHT(A1, 4)

案例5:数据去重合并 #

text
原始数据:
    A          B
1   产品       销量
2   产品A      100
3   产品B      200
4   产品A      150

合并相同产品:
    A          B
1   产品       总销量
2   产品A      250
3   产品B      200

公式(Excel 365):
=UNIQUE(A2:A4)  产品列表
=SUMIF(A:A, D2, B:B)  各产品总销量

小结 #

数据清洗是数据分析的基础:

问题类型 解决方法
空值 ISBLANK、IF、IFERROR
重复 COUNTIF、UNIQUE
格式不一致 TRIM、UPPER、LOWER、PROPER
文本提取 LEFT、RIGHT、MID、FIND
格式转换 VALUE、TEXT、DATEVALUE

接下来,让我们学习 自动化报表,掌握报表自动化技巧。

最后更新:2026-04-11