Excel 基础文本函数 #
函数概览 #
文本函数用于处理和操作文本字符串,是数据清洗和格式化的重要工具。
text
┌─────────────────────────────────────────────────────────────┐
│ 基础文本函数一览 │
├─────────────────────────────────────────────────────────────┤
│ │
│ LEFT 左侧提取 =LEFT("Excel", 2) → "Ex" │
│ RIGHT 右侧提取 =RIGHT("Excel", 2) → "el" │
│ MID 中间提取 =MID("Excel", 2, 3) → "xce" │
│ LEN 文本长度 =LEN("Excel") → 5 │
│ LENB 字节长度 =LENB("中文") → 4 │
│ CONCAT 文本连接 =CONCAT("A","B") → "AB" │
│ CONCATENATE 文本连接 =CONCATENATE("A","B") → "AB" │
│ REPT 重复文本 =REPT("*", 3) → "***" │
│ │
└─────────────────────────────────────────────────────────────┘
LEFT 函数 #
语法 #
excel
=LEFT(text, [num_chars])
参数:
- text: 要提取的文本
- num_chars: 要提取的字符数(可选,默认为1)
基本用法 #
excel
=LEFT("Excel") → "E" 默认提取1个字符
=LEFT("Excel", 2) → "Ex" 提取左侧2个字符
=LEFT("Excel", 3) → "Exc" 提取左侧3个字符
=LEFT("Excel", 100) → "Excel" 超过长度返回全部
=LEFT("中文测试", 2) → "中文" 支持中文
实际示例 #
text
提取姓氏:
A B
1 姓名 姓氏
2 张三 =LEFT(A2, 1) → "张"
3 李四 =LEFT(A3, 1) → "李"
4 欧阳锋 =LEFT(A4, 2) → "欧阳"(复姓)
提取区号:
A B
1 电话号码 区号
2 010-12345678 =LEFT(A2, 3) → "010"
3 021-87654321 =LEFT(A3, 3) → "021"
结合其他函数 #
excel
提取@前的用户名:
=LEFT(A1, FIND("@", A1)-1)
提取第一个词:
=LEFT(A1, FIND(" ", A1)-1)
RIGHT 函数 #
语法 #
excel
=RIGHT(text, [num_chars])
参数:
- text: 要提取的文本
- num_chars: 要提取的字符数(可选,默认为1)
基本用法 #
excel
=RIGHT("Excel") → "l" 默认提取1个字符
=RIGHT("Excel", 2) → "el" 提取右侧2个字符
=RIGHT("Excel", 3) → "cel" 提取右侧3个字符
=RIGHT("Excel", 100) → "Excel" 超过长度返回全部
实际示例 #
text
提取文件扩展名:
A B
1 文件名 扩展名
2 report.xlsx =RIGHT(A2, 4) → "xlsx"
3 data.csv =RIGHT(A3, 3) → "csv"
提取手机尾号:
A B
1 手机号 尾号
2 13812345678 =RIGHT(A2, 4) → "5678"
3 13987654321 =RIGHT(A3, 4) → "4321"
动态提取扩展名 #
excel
=RIGHT(A1, LEN(A1)-FIND(".", A1))
或使用更安全的方式:
=MID(A1, FIND(".", A1)+1, LEN(A1))
MID 函数 #
语法 #
excel
=MID(text, start_num, num_chars)
参数:
- text: 要提取的文本
- start_num: 开始位置(从1开始)
- num_chars: 要提取的字符数
基本用法 #
excel
=MID("Excel", 1, 2) → "Ex" 从第1个开始提取2个
=MID("Excel", 2, 3) → "xce" 从第2个开始提取3个
=MID("Excel", 3, 2) → "ce" 从第3个开始提取2个
=MID("Excel", 2, 100) → "xcel" 超过长度返回剩余全部
=MID("中文测试", 2, 2) → "文测" 支持中文
实际示例 #
text
提取身份证出生日期:
A B
1 身份证号 出生日期
2 110101199001011234 =MID(A2, 7, 8) → "19900101"
提取身份证地区码:
=MID(A2, 1, 6) → "110101"
提取身份证顺序码:
=MID(A2, 15, 3) → "123"
结合 FIND 使用 #
excel
提取两个分隔符之间的内容:
文本:A1 = "姓名:张三;年龄:25"
提取姓名:
=MID(A1, FIND(":", A1)+1, FIND(";", A1)-FIND(":", A1)-1)
→ "张三"
LEN 函数 #
语法 #
excel
=LEN(text)
返回文本字符串的字符数
基本用法 #
excel
=LEN("Excel") → 5
=LEN("中文测试") → 4
=LEN("") → 0
=LEN(" ") → 1(空格也算一个字符)
=LEN(A1) 返回A1单元格的字符数
LEN vs LENB #
excel
LEN:返回字符数
LENB:返回字节数
=LEN("Excel") → 5
=LENB("Excel") → 5
=LEN("中文") → 2
=LENB("中文") → 4(中文每个字符2字节)
=LEN("Excel中文") → 7
=LENB("Excel中文") → 9
实际应用 #
excel
检查是否为空:
=IF(LEN(A1)=0, "空", "非空")
检查文本长度:
=IF(LEN(A1)>10, "过长", "正常")
计算中文字符数:
=LENB(A1)-LEN(A1)
计算英文单词数(近似):
=LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))+1
CONCAT 和 CONCATENATE 函数 #
CONCAT 函数 #
excel
=CONCAT(text1, [text2], ...)
连接多个文本(Excel 2019/365)
excel
=CONCAT("Hello", " ", "World") → "Hello World"
=CONCAT(A1, B1, C1) 连接多个单元格
=CONCAT(A1:A10) 连接范围内的所有文本
CONCATENATE 函数 #
excel
=CONCATENATE(text1, [text2], ...)
连接多个文本(兼容旧版本)
excel
=CONCATENATE("Hello", " ", "World") → "Hello World"
=CONCATENATE(A1, "-", B1) 连接并添加分隔符
使用 & 运算符 #
excel
="Hello" & " " & "World" → "Hello World"
=A1 & "-" & B1 连接并添加分隔符
=A1 & B1 & C1 连接多个单元格
实际示例 #
text
拼接完整地址:
A B C D
1 省 市 区 完整地址
2 北京市 北京市 朝阳区 =CONCAT(A2, B2, C2)
→ "北京市北京市朝阳区"
添加分隔符:
=A2 & "-" & B2 & "-" & C2 → "北京市-北京市-朝阳区"
拼接姓名:
A B C
1 姓 名 全名
2 张 三 =A2 & B2 → "张三"
TEXTJOIN 函数 #
语法 #
excel
=TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)
参数:
- delimiter: 分隔符
- ignore_empty: 是否忽略空单元格(TRUE/FALSE)
- text1, text2...: 要连接的文本
基本用法 #
excel
=TEXTJOIN(",", TRUE, "A", "B", "C") → "A,B,C"
=TEXTJOIN("-", FALSE, "A", "", "C") → "A--C"
=TEXTJOIN("-", TRUE, "A", "", "C") → "A-C"(忽略空值)
=TEXTJOIN(", ", TRUE, A1:A10) 用逗号连接范围
实际示例 #
text
合并标签:
A B C D
1 标签1 标签2 标签3 合并
2 销售 市场 =TEXTJOIN(",", TRUE, A2:C2)
→ "销售,市场"
合并非空值:
=TEXTJOIN(";", TRUE, A1:A10)
自动跳过空单元格
REPT 函数 #
语法 #
excel
=REPT(text, number_times)
重复文本指定次数
基本用法 #
excel
=REPT("*", 5) → "*****"
=REPT("AB", 3) → "ABABAB"
=REPT("-", 10) → "----------"
=REPT(" ", 5) → " "(5个空格)
实际应用 #
excel
简单的进度条:
=REPT("█", ROUND(A1*10, 0)) & REPT("░", 10-ROUND(A1*10, 0))
评分显示:
=REPT("★", A1) & REPT("☆", 5-A1)
分隔线:
=REPT("-", 50)
补齐位数:
=REPT("0", 5-LEN(A1)) & A1 将数字补齐到5位
实际示例 #
text
星级评分:
A B
1 评分 显示
2 3 =REPT("★", A2) & REPT("☆", 5-A2)
→ "★★★☆☆"
3 5 → "★★★★★"
4 1 → "★☆☆☆☆"
函数组合应用 #
提取姓名中的姓和名 #
excel
姓名:张三
姓:=LEFT(A1, 1) → "张"
名:=RIGHT(A1, LEN(A1)-1) → "三"
提取邮箱用户名和域名 #
excel
邮箱:zhangsan@example.com
用户名:=LEFT(A1, FIND("@", A1)-1) → "zhangsan"
域名:=RIGHT(A1, LEN(A1)-FIND("@", A1)) → "example.com"
分割文本 #
excel
文本:A1 = "张三,男,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))
→ "25岁"
格式化电话号码 #
excel
原始:13812345678
格式化:
=LEFT(A1, 3) & "-" & MID(A1, 4, 4) & "-" & RIGHT(A1, 4)
→ "138-1234-5678"
隐藏敏感信息 #
excel
手机号:13812345678
隐藏中间4位:
=LEFT(A1, 3) & "****" & RIGHT(A1, 4)
→ "138****5678"
身份证号隐藏:
=LEFT(A1, 6) & "********" & RIGHT(A1, 4)
实战案例 #
案例1:处理姓名数据 #
text
数据:
A B C
1 姓名 姓 名
2 张三 =LEFT(A2, 1) =RIGHT(A2, LEN(A2)-1)
3 欧阳锋 =LEFT(A3, 2) =RIGHT(A3, LEN(A3)-2)
4 司马相如 =LEFT(A4, 2) =RIGHT(A4, LEN(A4)-2)
注意:复姓需要特殊处理
案例2:提取身份证信息 #
text
身份证号:110101199001011234
地区码:=LEFT(A1, 6) → "110101"
出生日期:=MID(A1, 7, 8) → "19900101"
年份:=MID(A1, 7, 4) → "1990"
月份:=MID(A1, 11, 2) → "01"
日期:=MID(A1, 13, 2) → "01"
顺序码:=MID(A1, 15, 3) → "123"
校验码:=RIGHT(A1, 1) → "4"
性别判断(顺序码奇数为男):
=IF(MOD(MID(A1, 15, 3), 2)=1, "男", "女")
案例3:处理文件路径 #
text
路径:C:\Users\Documents\report.xlsx
提取文件名:
=MID(A1, FIND("*", SUBSTITUTE(A1, "\", "*", LEN(A1)-LEN(SUBSTITUTE(A1, "\", ""))))+1, LEN(A1))
→ "report.xlsx"
提取扩展名:
=MID(A1, FIND(".", A1)+1, LEN(A1))
→ "xlsx"
小结 #
基础文本函数是文本处理的核心工具:
| 函数 | 用途 | 示例 |
|---|---|---|
| LEFT | 左侧提取 | =LEFT("Excel", 2) |
| RIGHT | 右侧提取 | =RIGHT("Excel", 2) |
| MID | 中间提取 | =MID("Excel", 2, 3) |
| LEN | 文本长度 | =LEN("Excel") |
| CONCAT | 文本连接 | =CONCAT("A", "B") |
| TEXTJOIN | 带分隔符连接 | =TEXTJOIN(",", TRUE, A1:A10) |
| REPT | 重复文本 | =REPT("*", 5) |
接下来,让我们学习 文本转换函数,掌握文本格式转换技巧。
最后更新:2026-04-11