Excel 文本函数怎么用:LEFT、RIGHT、MID、LEN 和 CONCAT 完整教程 | WPS

wps小编 443 2026-07-15 14:42:53 编辑

一、文本函数的应用场景与核心逻辑

文本函数是数据清洗的核心工具,掌握 LEFT、RIGHT、MID、LEN 和 CONCAT,可以从杂乱的文本中精准提取信息,将分散的数据合并为规范格式,极大提升数据整理效率。无论是从身份证号中提取出生日期、从地址中分离省市、还是将姓和名合并为全名,文本函数都是必不可少的。

在实际工作中,我们从系统导出的数据往往格式混乱:姓名前后有多余空格、手机号和备注混在一个单元格、金额需要补齐位数。这些问题都可以通过文本函数批量处理。WPS 表格与 Excel 在文本函数上完全兼容,本文所有公式均可直接套用。

1.1 文本函数的分类

按功能可以分为四类:截取类(LEFT、RIGHT、MID)、统计类(LEN、LENB)、合并类(CONCAT、TEXTJOIN、&)、转换类(TEXT、TRIM、SUBSTITUTE、UPPER、LOWER)。掌握这些函数的组合使用,能解决 90% 以上的文本处理需求。

二、LEFT 与 RIGHT:从头尾截取字符

LEFT 从文本左侧开始截取指定数量的字符,RIGHT 从右侧截取,二者是对称的截取函数,适合处理固定长度的文本如手机号、编码、日期戳。

LEFT 语法:=LEFT(text, [num_chars]) RIGHT 语法:=RIGHT(text, [num_chars])

第一个参数是要截取的文本或单元格引用,第二个参数是截取的字符数。如果省略 num_chars,默认截取 1 个字符。

2.1 实际应用示例

原文本(A2)公式结果说明
13812345678=LEFT(A2,3)138提取手机号前三位
13812345678=RIGHT(A2,4)5678提取末四位
ORD-2024-0315=RIGHT(A2,4)0315提取订单日期部分
张三丰=LEFT(A2,1)提取姓氏

三、MID:从任意位置截取字符

MID 是最灵活的截取函数,可以从文本的任意指定位置开始提取任意数量的字符,是从身份证号、长编码中提取中间信息的首选工具。

语法:=MID(text, start_num, num_chars)

三个参数分别为:源文本、起始位置(从 1 开始计数)、截取长度。如果 start_num 大于文本总长度,返回空字符串。

3.1 从身份证号提取出生日期

18 位身份证号的第 7 到 14 位是出生日期(YYYYMMDD):

=MID(A2,7,8) 返回 "20000315" 格式的出生日期

进一步用 DATE 函数转为标准日期:

=DATE(MID(A2,7,4),MID(A2,11,2),MID(A2,13,2))

3.2 从身份证号提取性别

第 17 位奇数为男,偶数为女:

=IF(MOD(MID(A2,17,1),2)=1,"男","女")

四、LEN 与 LENB:统计字符长度

LEN 返回文本中的字符数,LENB 返回字节数,二者在判断中英文混合文本时有关键差异,常用于数据校验和格式判断。

语法:=LEN(text) / =LENB(text)

文本LENLENB
ABC33
张三24
张San45

中文字符在 LEN 中计为 1,在 LENB 中计为 2。利用这个差异可以统计中文字符数:=(LENB(A2)-LEN(A2)) 返回中文个数。

数据校验示例——检查身份证号是否为 18 位:=IF(LEN(A2)=18,"正确","错误")

五、CONCAT 与 TEXTJOIN:合并文本

CONCAT 是 CONCATENATE 的升级版,可以一次性合并多个区域的文本;TEXTJOIN 更强大,支持自定义分隔符和忽略空单元格,是合并地址、拼接列表的最佳选择。

5.1 CONCAT 函数

语法:=CONCAT(text1, [text2], ...)

合并省市地址:=CONCAT(A2,B2,C2),将 A 列省、B 列市、C 列详细地址合并。也可使用 & 运算符:=A2&B2&C2,效果相同。

5.2 TEXTJOIN 函数

语法:=TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)

  • delimiter:分隔符,如 "," 或 "、"
  • ignore_empty:TRUE 忽略空单元格,FALSE 保留空

拼接多个姓名为逗号分隔:=TEXTJOIN(",",TRUE,A2:A10),自动跳过空白单元格,结果如"张三,李四,王五"。

合并带分隔符的地址:=TEXTJOIN("-",TRUE,A2:C2),结果如"广东省-深圳市-南山区"。

六、TEXT 函数:格式化文本

TEXT 函数可以将数值、日期按指定格式转换为文本,是生成报表标题、格式化编号、统一显示格式的核心函数。

语法:=TEXT(value, format_text)

原值公式结果
1234.56=TEXT(A2,"#,##0.00")1,234.56
2024/3/15=TEXT(A2,"yyyy年m月d日")2024年3月15日
5=TEXT(A2,"000")005
0.85=TEXT(A2,"0%")85%
12345=TEXT(A2,"¥#,##0")¥12,345

生成带日期的报表标题:="销售日报-"&TEXT(TODAY(),"mm月dd日")

补齐编号位数也是 TEXT 的常见用途。当工号不足 6 位时自动补零:=TEXT(A2,"000000"),数字 123 会显示为 000123。这在生成订单编号、员工编号时非常实用,确保所有编号位数统一。配合 ROW 函数还可以自动生成序号:="NO-"&TEXT(ROW()-1,"000"),向下拖动即可生成 NO-001、NO-002、NO-003 等连续编号。

七、大小写转换:UPPER、LOWER、PROPER

UPPER 将英文字母全部转大写,LOWER 全部转小写,PROPER 首字母大写其余小写,这三个函数在处理英文姓名、产品编码、邮箱地址时是规范格式的利器。

语法简单,只需一个文本参数:

原文本(A2)公式结果适用场景
hello world=UPPER(A2)HELLO WORLD产品编码全大写
JOHN SMITH=LOWER(A2)john smith邮箱转小写
john smith=PROPER(A2)John Smith英文姓名首字母大写
BEIJING office=PROPER(A2)Beijing Office地址规范格式

实际应用中,邮箱地址统一小写是最常见的操作:=LOWER(TRIM(A2)),先去空格再转小写,一步到位。英文人名录入后规范首字母:=PROPER(TRIM(A2)),无论用户输入"JOHN"还是"john",都会自动转为"John"。

需要注意的是,这三个函数只对英文字母生效,中文字符不受影响。因此处理中英混合文本时可以放心使用,不会破坏中文内容。

八、数据清洗实战:TRIM、SUBSTITUTE 与 FIND

数据清洗是文本函数的高频场景,TRIM 去除多余空格、SUBSTITUTE 替换指定文本、FIND 定位字符位置,三者配合可以清理几乎所有的脏数据。

7.1 TRIM 去除空格

=TRIM(A2) 删除文本前后的所有空格,并将中间连续空格压缩为一个。注意:TRIM 只能去除普通空格(ASCII 32),不能去除不间断空格(CHAR(160)),后者需要配合 SUBSTITUTE 处理。

7.2 SUBSTITUTE 替换文本

语法:=SUBSTITUTE(text, old_text, new_text, [instance_num])

删除文本中所有横线:=SUBSTITUTE(A2,"-","")

删除不间断空格:=SUBSTITUTE(A2,CHAR(160),"")

替换第 N 次出现:只替换第二个逗号 =SUBSTITUTE(A2,",","、",2)

7.3 FIND 与 SEARCH 定位字符

语法:=FIND(find_text, within_text, [start_num])

FIND 区分大小写,SEARCH 不区分。提取 @ 符号前的邮箱用户名:

=LEFT(A2,FIND("@",A2)-1)

提取括号内的内容:

=MID(A2,FIND("(",A2)+1,FIND(")",A2)-FIND("(",A2)-1)

八、综合实战:清洗一组不规范数据

将理论组合应用,是检验文本函数掌握程度的最佳方式。以下是一个完整的客户数据清洗案例。

假设原始数据:A 列姓名带空格,B 列手机号格式混乱(带横线、空格),C 列邮箱大小写不一。

清洗步骤

步骤一:姓名去空格并提取姓氏 =TRIM(A2) 清理,再用 =LEFT(TRIM(A2),1) 取姓

步骤二:手机号标准化 =SUBSTITUTE(SUBSTITUTE(B2,"-","")," ","") 删除所有横线和空格

步骤三:邮箱统一小写 =LOWER(C2)

步骤四:合并为规范格式 =TRIM(A2)&"|"&SUBSTITUTE(SUBSTITUTE(B2,"-","")," ","")&"|"&LOWER(C2)

九、FAQ 常见问题解答

Q1:LEFT、RIGHT、MID 对中文的计数方式是怎样的?

在 WPS 表格和 Excel 中,LEFT、RIGHT、MID 按字符计数,不按字节。一个汉字算一个字符,=LEFT("张三丰",2) 返回"张三"。这与 LENB 的字节计数不同,处理纯中文文本时无需额外处理。

Q2:CONCATENATE 和 CONCAT 有什么区别?用哪个?

CONCATENATE 是旧函数,最多接受 255 个参数且不支持区域引用。CONCAT 是其升级版,可以直接引用整列或整区域,如 =CONCAT(A1:A10)。建议优先使用 CONCAT,兼容性更好,公式更简洁。

Q3:TEXT 函数转换后变成了文本,还能参与计算吗?

TEXT 的输出是文本格式,无法直接参与数学运算。如果既要格式化显示又要计算,可以保留原始数据列用于计算,单独加一列用 TEXT 格式化后用于展示或打印。或者反过来,用 VALUE 函数将文本转回数值。

Q4:如何批量删除一列数据中的某个特定字符?

使用 SUBSTITUTE 函数:=SUBSTITUTE(A2,"要删除的字符",""),然后向下填充,最后复制结果列,选择性粘贴为值覆盖原数据。也可以使用"查找和替换"功能(Ctrl+H)实现相同效果,对大数据量操作更快。

十、总结

文本函数是表格数据处理的基础功。截取靠 LEFT/RIGHT/MID,统计靠 LEN,合并靠 CONCAT/TEXTJOIN,格式化靠 TEXT,清洗靠 TRIM/SUBSTITUTE/FIND。这些函数本身并不复杂,真正的能力体现在组合使用上——嵌套两三个函数就能解决复杂的数据提取和清洗需求。建议在日常工作中遇到重复性的文本整理任务时,先思考能否用函数公式自动化,逐步积累常用的嵌套公式模板。WPS 表格与 Excel 在此领域的兼容性完全一致,可以放心跨平台使用。

上一篇: WPS 表格函数比 Excel 少吗?普通办公够不够用,一篇讲明白
下一篇: Excel 跨表汇总:多个工作表数据合并计算的完整方法 | WPS教程
相关文章