Excel 文本转换函数 #

函数概览 #

文本转换函数用于改变文本的大小写、清除多余空格和不可见字符,是数据清洗的重要工具。

text
┌─────────────────────────────────────────────────────────────┐
│                    文本转换函数一览                          │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  UPPER     转大写      =UPPER("hello")        → "HELLO"     │
│  LOWER     转小写      =LOWER("HELLO")        → "hello"     │
│  PROPER    首字母大写  =PROPER("hello world") → "Hello World"│
│  TRIM      清除空格    =TRIM("  hello  ")     → "hello"     │
│  CLEAN     清除不可见  =CLEAN(A1)                           │
│  VALUE     文本转数字  =VALUE("123")          → 123         │
│  TEXT      数字转文本  =TEXT(123, "00000")    → "00123"     │
│                                                             │
└─────────────────────────────────────────────────────────────┘

UPPER 函数 #

语法 #

excel
=UPPER(text)

将文本转换为大写

基本用法 #

excel
=UPPER("hello")          → "HELLO"
=UPPER("Hello")          → "HELLO"
=UPPER("HELLO")          → "HELLO"
=UPPER("Hello World")    → "HELLO WORLD"
=UPPER("中文")           → "中文"(中文不受影响)

实际应用 #

excel
统一产品编码格式:
=UPPER(A1)

比较时忽略大小写:
=UPPER(A1)=UPPER(B1)

验证码转换:
=UPPER(输入的验证码)

实际示例 #

text
产品编码标准化:
    A          B
1   原编码     标准编码
2   abc123     =UPPER(A2)  → "ABC123"
3   XYZ789     =UPPER(A3)  → "XYZ789"
4   dEf456     =UPPER(A4)  → "DEF456"

LOWER 函数 #

语法 #

excel
=LOWER(text)

将文本转换为小写

基本用法 #

excel
=LOWER("HELLO")          → "hello"
=LOWER("Hello")          → "hello"
=LOWER("hello")          → "hello"
=LOWER("Hello World")    → "hello world"

实际应用 #

excel
邮箱地址标准化:
=LOWER(A1)

用户名标准化:
=LOWER(A1)

URL标准化:
=LOWER(A1)

实际示例 #

text
邮箱地址标准化:
    A                    B
1   原邮箱               标准邮箱
2   ZhangSan@Example.COM =LOWER(A2)  → "zhangsan@example.com"
3   LI_SI@GMAIL.COM      =LOWER(A3)  → "li_si@gmail.com"

PROPER 函数 #

语法 #

excel
=PROPER(text)

将每个单词的首字母转换为大写

基本用法 #

excel
=PROPER("hello")           → "Hello"
=PROPER("HELLO")           → "Hello"
=PROPER("hello world")     → "Hello World"
=PROPER("HELLO WORLD")     → "Hello World"
=PROPER("john smith")      → "John Smith"

实际应用 #

excel
姓名格式化:
=PROPER(A1)

地址格式化:
=PROPER(A1)

标题格式化:
=PROPER(A1)

注意事项 #

excel
PROPER 可能不适用于某些情况:
=PROPER("iPhone")        → "Iphone"(错误)
=PROPER("McDonald")      → "Mcdonald"(错误)
=PROPER("O'Brien")       → "O'Brien"(正确)

对于特殊名称,需要手动调整

实际示例 #

text
姓名格式化:
    A            B
1   原姓名       格式化
2   zhang san    =PROPER(A2)  → "Zhang San"
3   LI SI        =PROPER(A3)  → "Li Si"
4   wang wu      =PROPER(A4)  → "Wang Wu"

TRIM 函数 #

语法 #

excel
=TRIM(text)

清除文本中的多余空格:
- 清除开头和结尾的空格
- 将多个连续空格变为单个空格

基本用法 #

excel
=TRIM("  hello  ")         → "hello"
=TRIM("hello   world")     → "hello world"
=TRIM("  hello   world  ") → "hello world"
=TRIM("hello")             → "hello"

实际应用 #

excel
清除输入数据中的多余空格:
=TRIM(A1)

比较时忽略空格差异:
=TRIM(A1)=TRIM(B1)

配合其他函数使用:
=TRIM(UPPER(A1))

实际示例 #

text
数据清洗:
    A              B
1   原数据         清洗后
2   "  张三  "     =TRIM(A2)  → "张三"
3   "李  四"       =TRIM(A3)  → "李 四"
4   "王五   "      =TRIM(A4)  → "王五"

TRIM 不能清除的空格 #

excel
TRIM 只能清除普通空格(ASCII 32)
不能清除:
- 不间断空格(ASCII 160)
- 其他特殊空格字符

解决方法:
=TRIM(CLEAN(SUBSTITUTE(A1, CHAR(160), " ")))

CLEAN 函数 #

语法 #

excel
=CLEAN(text)

删除文本中的不可打印字符(ASCII 0-31)

基本用法 #

excel
=CLEAN(A1)              清除不可打印字符
=CLEAN("hello"&CHAR(10)&"world")  → "helloworld"

实际应用 #

excel
从网页或系统导入的数据清洗:
=CLEAN(A1)

配合 TRIM 使用:
=TRIM(CLEAN(A1))

完整清洗:
=TRIM(CLEAN(SUBSTITUTE(A1, CHAR(160), " ")))

实际示例 #

text
从系统导入的数据:
    A              B
1   原数据         清洗后
2   "张三"         =CLEAN(TRIM(A2))  → "张三"
                   (清除了不可见字符)

VALUE 函数 #

语法 #

excel
=VALUE(text)

将文本格式的数字转换为数值

基本用法 #

excel
=VALUE("123")           → 123
=VALUE("123.45")        → 123.45
=VALUE("-123")          → -123
=VALUE("1,234")         → 1234
=VALUE("2024-01-01")    → 45292(日期序列号)
=VALUE("abc")           → #VALUE!(错误)

实际应用 #

excel
文本数字转数值:
=VALUE(A1)

提取的数字转换:
=VALUE(MID(A1, 2, 3))

配合 IFERROR 使用:
=IFERROR(VALUE(A1), 0)

实际示例 #

text
数据转换:
    A          B
1   文本数字   数值
2   "123"      =VALUE(A2)  → 123
3   "456.78"   =VALUE(A3)  → 456.78
4   "1,000"    =VALUE(A4)  → 1000

TEXT 函数 #

语法 #

excel
=TEXT(value, format_text)

参数:
- value: 要格式化的数值
- format_text: 格式代码

常用格式代码 #

excel
数字格式:
=TEXT(123, "00000")         → "00123"    补零
=TEXT(1234.5, "#,##0.00")   → "1,234.50" 千分位
=TEXT(0.5, "0%")            → "50%"      百分比

日期格式:
=TEXT(TODAY(), "yyyy-mm-dd")     → "2024-01-15"
=TEXT(TODAY(), "yyyy年mm月dd日")  → "2024年01月15日"
=TEXT(TODAY(), "dddd")           → "Monday"
=TEXT(TODAY(), "aaa")            → "一"(星期几中文)

时间格式:
=TEXT(NOW(), "hh:mm:ss")    → "14:30:25"
=TEXT(NOW(), "上午/下午 hh:mm") → "下午 02:30"

实际应用 #

excel
格式化金额:
=TEXT(A1, "¥#,##0.00")

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

格式化电话号码:
=TEXT(A1, "000-0000-0000")

拼接带格式的文本:
="销售额:" & TEXT(A1, "¥#,##0.00")

实际示例 #

text
金额格式化:
    A          B
1   数值       格式化
2   1234.5     =TEXT(A2, "¥#,##0.00")  → "¥1,234.50"
3   10000      =TEXT(A3, "¥#,##0.00")  → "¥10,000.00"

日期格式化:
    A            B
1   日期         格式化
2   2024-01-15   =TEXT(A2, "yyyy年mm月dd日")  → "2024年01月15日"
3   2024-01-15   =TEXT(A3, "aaaa")            → "星期一"

SUBSTITUTE 函数 #

语法 #

excel
=SUBSTITUTE(text, old_text, new_text, [instance_num])

参数:
- text: 原文本
- old_text: 要替换的文本
- new_text: 替换为的文本
- instance_num: 替换第几个(可选,默认全部替换)

基本用法 #

excel
=SUBSTITUTE("hello world", "world", "Excel")  → "hello Excel"
=SUBSTITUTE("aaa", "a", "b")                  → "bbb"(全部替换)
=SUBSTITUTE("aaa", "a", "b", 1)               → "baa"(只替换第1个)
=SUBSTITUTE("aaa", "a", "b", 2)               → "aba"(只替换第2个)

实际应用 #

excel
删除特定字符:
=SUBSTITUTE(A1, "-", "")        删除所有横线
=SUBSTITUTE(A1, " ", "")        删除所有空格

替换分隔符:
=SUBSTITUTE(A1, ",", "-")       逗号改为横线

计算某字符出现次数:
=LEN(A1)-LEN(SUBSTITUTE(A1, "a", ""))

实际示例 #

text
电话号码格式化:
    A              B
1   原号码         格式化
2   13812345678    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, 
                   MID(A2,4,4), "****"), 
                   MID(A2,1,3), LEFT(A2,3)), 
                   MID(A2,8,4), RIGHT(A2,4))
                   → "138****5678"

简化版隐藏:
=LEFT(A2,3) & "****" & RIGHT(A2,4)  → "138****5678"

REPLACE 函数 #

语法 #

excel
=REPLACE(old_text, start_num, num_chars, new_text)

参数:
- old_text: 原文本
- start_num: 开始位置
- num_chars: 替换的字符数
- new_text: 替换为的文本

基本用法 #

excel
=REPLACE("hello", 1, 2, "HI")     → "HIllo"
=REPLACE("hello", 2, 3, "abc")    → "habco"
=REPLACE("hello", 6, 0, " world") → "hello world"(插入)

SUBSTITUTE vs REPLACE #

excel
SUBSTITUTE:按内容替换
=SUBSTITUTE("hello world", "world", "Excel")  → "hello Excel"

REPLACE:按位置替换
=REPLACE("hello world", 7, 5, "Excel")        → "hello Excel"

实际应用 #

excel
隐藏身份证中间部分:
=REPLACE(A1, 7, 8, "********")

隐藏手机号中间部分:
=REPLACE(A1, 4, 4, "****")

插入分隔符:
=REPLACE(A1, 4, 0, "-")  在第4位插入横线

函数组合应用 #

完整数据清洗 #

excel
=TRIM(CLEAN(UPPER(A1)))
清除不可见字符、多余空格、转大写

=TRIM(CLEAN(PROPER(A1)))
清除不可见字符、多余空格、首字母大写

标准化邮箱 #

excel
=LOWER(TRIM(A1))
清除空格并转小写

格式化电话号码 #

excel
原始:13812345678

方法1:
=TEXT(A1, "000-0000-0000")  → "138-1234-5678"

方法2:
=REPLACE(REPLACE(A1,4,0,"-"),9,0,"-")  → "138-1234-5678"

提取并格式化 #

excel
从"订单号:ORD-2024-001"中提取订单号:
=TRIM(RIGHT(A1, LEN(A1)-FIND(":", A1)))
→ "ORD-2024-001"

实战案例 #

案例1:姓名数据清洗 #

text
数据:
    A              B
1   原姓名         清洗后
2   "  张三  "     =PROPER(TRIM(A2))  → "张三"
3   "LI SI"        =PROPER(TRIM(A3))  → "Li Si"
4   "  wang wu  "  =PROPER(TRIM(A4))  → "Wang Wu"

案例2:产品编码标准化 #

text
数据:
    A              B
1   原编码         标准编码
2   "  abc-123  "  =UPPER(TRIM(A3))  → "ABC-123"
3   "XYZ-456"      =UPPER(TRIM(A4))  → "XYZ-456"
4   "  dEf-789  "  =UPPER(TRIM(A5))  → "DEF-789"

案例3:金额格式化显示 #

text
数据:
    A          B
1   金额       显示
2   1234.5     ="金额:" & TEXT(A2, "¥#,##0.00")  → "金额:¥1,234.50"
3   10000      ="金额:" & TEXT(A3, "¥#,##0.00")  → "金额:¥10,000.00"

小结 #

文本转换函数是数据清洗和格式化的重要工具:

函数 用途 示例
UPPER 转大写 =UPPER("hello")
LOWER 转小写 =LOWER("HELLO")
PROPER 首字母大写 =PROPER("hello world")
TRIM 清除空格 =TRIM(" hello ")
CLEAN 清除不可见字符 =CLEAN(A1)
VALUE 文本转数字 =VALUE("123")
TEXT 数字转文本 =TEXT(123, "00000")
SUBSTITUTE 替换文本 =SUBSTITUTE(A1, "a", "b")
REPLACE 按位置替换 =REPLACE(A1, 1, 2, "HI")

接下来,让我们学习 文本查找与替换,掌握高级文本处理技巧。

最后更新:2026-04-11