excel字符串操作

在 Excel 中,字符串操作是数据清洗、拆分重组和文本分析的核心能力。下面从基础函数、查找定位、替换清理、转换合并,到 Excel 365 新函数和高级实战技巧,进行系统详解。


一、字符串提取与长度计算

函数作用语法
LEN返回字符个数=LEN(text)
LENB返回字节数(汉字2字节)=LENB(text)
LEFT从左截取N个字符=LEFT(text, [num_chars])
RIGHT从右截取N个字符=RIGHT(text, [num_chars])
MID从指定位置截取N个字符=MID(text, start_num, num_chars)

经典实例

假设 A1 为 "Excel 2021 函数指南"

  • =LEFT(A1, 5) → "Excel"
  • =RIGHT(A1, 4) → "函数指南"
  • =MID(A1, 7, 4) → "2021"
  • =LEN(A1) → 13(含空格)

提取身份证出生日期(18位,第7-14位为日期)
=TEXT(MID(A2,7,8),"0000-00-00")*1 并设为日期格式,返回 1990-12-25 这类真实日期。


二、字符串查找与定位

函数作用区别
FIND查找子串位置(区分大小写)=FIND(find_text, within_text, [start_num])
SEARCH查找子串位置(不区分大小写,支持通配符 ? *)=SEARCH(find_text, within_text, [start_num])
  • 找到时返回数字(从1开始),未找到返回 #VALUE!。
  • 常与 IFERROR 或 ISNUMBER 配合判断包含关系。

实例:提取邮箱域名(@ 后面的部分)
=RIGHT(A1, LEN(A1)-FIND("@", A1))

实例:判断 A1 是否包含“利润”一词(不区分大小写)
=IF(ISNUMBER(SEARCH("利润", A1)), "包含", "不包含")

查找第二个分隔符位置
=FIND("-", A1, FIND("-", A1)+1) 跳过第一个分隔符继续找。


三、字符串替换与清理

函数作用说明
SUBSTITUTE将指定字符替换为新字符=SUBSTITUTE(text, old_text, new_text, [instance_num]),可指定替换第几次出现
REPLACE从指定位置开始替换固定长度=REPLACE(old_text, start_num, num_chars, new_text) 按位置替换,非按内容
TRIM删除多余空格只保留单词间单个空格,去掉首尾和中间多余空格
CLEAN删除所有不可打印字符常用于从网页、系统导出的数据(换行、制表符等)

实例:隐藏手机号中间四位
=REPLACE(A1, 4, 4, "****") 例如 13812345678 → 138****5678

实例:删除文本中所有空格
=SUBSTITUTE(A1, " ", "")

实例:只替换第二个“-”为“/”
=SUBSTITUTE(A1, "-", "/", 2)

配合使用:删除换行符(CHAR(10) 是换行,CHAR(13) 是回车)
=SUBSTITUTE(SUBSTITUTE(A1, CHAR(10), " "), CHAR(13), " ")


四、文本转换与格式化

函数作用
UPPER全部大写
LOWER全部小写
PROPER首字母大写
VALUE / NUMBERVALUE文本型数字转数值(VALUE简单转换,NUMBERVALUE可指定分隔符)
TEXT数值/日期按指定格式转为文本
T若参数为文本返回其本身,否则返回空文本(常用于公式中过滤非文本)
CHAR / CODECHAR(数字)返回对应字符,CODE(字符)返回ASCII/Unicode码
UNICHAR/UNICODE处理Unicode字符(如 emoji)

实例:数字金额加千分位并保留两位小数转为文本
=TEXT(B2, "#,##0.00")

实例:将文本日期 20231215 转为标准日期
=DATE(LEFT(B2,4), MID(B2,5,2), RIGHT(B2,2))

实例:强制将字符串转换为数字并容错
=IFERROR(VALUE(A1), 0)


五、字符串合并(功能强大)

1. 传统合并:& 和 CONCATENATE(不推荐)

=A2 & " - " & B2

2. CONCAT(Excel 2019/365)

连接区域或文本列表,可忽略空单元格。
=CONCAT(A1:A10) 将区域所有文本连在一起。

3. TEXTJOIN(Excel 2019/365,强烈推荐)

指定分隔符,并可选择是否忽略空单元格。
=TEXTJOIN(", ", TRUE, A1:A10)

  • 第一参数:分隔符
  • 第二参数:TRUE 忽略空单元格
  • 后续:要连接的一个或多个区域/文本

实战:将筛选后的数据合并为一句话
=TEXTJOIN("、", TRUE, FILTER(B2:B100, C2:C100="销售部"))


六、Excel 365 专属字符串函数(颠覆传统)

如果使用 Microsoft 365 或 Excel 2021,以下新函数极大简化拆分提取操作。

函数作用示例
TEXTSPLIT按分隔符将文本拆分为多行或多列=TEXTSPLIT(A1, ",")
TEXTBEFORE返回分隔符之前的文本=TEXTBEFORE(A1, "@")
TEXTAFTER返回分隔符之后的文本=TEXTAFTER(A1, "@")

TEXTSPLIT 详细语法
=TEXTSPLIT(text, col_delimiter, [row_delimiter], [ignore_empty], [pad_with])
支持按行、按列同时拆分,复杂分割一步到位。

实例:将“北京,上海;广州,深圳”拆分为2行2列
=TEXTSPLIT(A1, ",", ";") 产生一个2×2数组。

实例:提取文件名不含扩展名
=TEXTBEFORE(A1, ".") 例如 report.xlsx → report

实例:提取URL中最后一个斜杠后的部分
=TEXTAFTER(A1, "/", -1) 负号代表从末尾开始找。


七、高级组合技巧(不分版本通用)

1. 提取第N个分隔符之间的内容

比如数据 A-B-C-D,提取第三个字段(C):

旧版通用:

=TRIM(MID(SUBSTITUTE(A1, "-", REPT(" ", 99)), (3-1)*99+1, 99))

原理:将分隔符替换为大量空格,然后截取对应“块”,最后去空格。

新版:
=INDEX(TEXTSPLIT(A1, "-"), , 3)

2. 提取字符串中连续数字

假设 A1 为 "合同金额5800元",提取5800:

=TEXTJOIN("", TRUE, IF(ISNUMBER(--MID(A1, ROW(INDIRECT("1:"&LEN(A1))), 1)), MID(A1, ROW(INDIRECT("1:"&LEN(A1))), 1), ""))

(数组公式,旧版需按 Ctrl+Shift+Enter)
或简化成基于 SEQUENCE 的公式(365):

=CONCAT(IF(ISNUMBER(--MID(A1, SEQUENCE(LEN(A1)), 1)), MID(A1, SEQUENCE(LEN(A1)), 1), ""))

3. 提取括号内的文字

=MID(A1, FIND("(", A1)+1, FIND(")", A1)-FIND("(", A1)-1)
若括号可能缺失,外套 IFERROR。

4. 条件组合文本(多条件合并)

用 TEXTJOIN + IF 实现类 FILTER 的文本连接:
=TEXTJOIN(", ", TRUE, IF(B2:B100="优秀", A2:A100, ""))
在365中直接回车,旧版按 Ctrl+Shift+Enter。

5. 生成重复字符

=REPT("★", 5) → "★★★★★"
常用于进度条、评分显示。


八、常见问题与注意事项

  • 文本型数字的坑:用 ISTEXT/ISNUMBER 检测,用 VALUE 或 *1 转换。
  • FIND 大小写敏感,SEARCH 不敏感且支持通配符,按需选用。
  • TRIM 无法删除不间断空格(CHAR(160)),可用 =SUBSTITUTE(A1, CHAR(160), " ") 预处理。
  • TEXTJOIN/CONCAT 数组用法 在旧版中需要三键,365 自动溢出。
  • 长公式性能:避免整列引用(如 A:A),尽量用明确范围。
  • 旧版拆分文本(无 TEXTSPLIT)仍可用分列功能或 MID+SUBSTITUTE 组合。

九、函数速查表

目的推荐函数
取左右子串LEFT, RIGHT, MID
测量长度LEN (字符), LENB (字节)
查找位置FIND (大小写), SEARCH (忽略大小写, 通配)
替换内容SUBSTITUTE (按字符), REPLACE (按位置)
去空格/清洗TRIM, CLEAN
大小写转换UPPER, LOWER, PROPER
数值 ↔ 文本TEXT, VALUE, NUMBERVALUE
合并文本TEXTJOIN (推荐), CONCAT, &
拆分文本TEXTSPLIT, TEXTBEFORE, TEXTAFTER (365);或分列功能
生成重复字符REPT
字符与代码CHAR, CODE, UNICHAR, UNICODE

掌握上述函数和组合逻辑,你就能在 Excel 中应对绝大部分字符串处理需求,从简单的姓名提取到复杂的不规则地址解析,都能找到高效解法。