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