好的,我们来详细讲解一下 Excel 中的 TEXTJOIN 函数。这是一个非常强大且实用的文本连接函数,于 Excel 2016 版本引入,它解决了旧版 CONCATENATE 和 & 连接符的一些痛点。
1. 函数定义
TEXTJOIN 函数将两个或多个文本字符串连接成一个字符串,并允许你指定在每个文本值之间添加的分隔符。最重要的是,它可以轻松忽略空单元格,这使得数据清理变得非常方便。
2. 语法
excel
复制
下载
=TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)
参数说明:
delimiter (必需):你希望放在每个文本项之间的分隔符。
它可以是文本字符串(用双引号括起来),例如 ",", " ", "-", " and "。
也可以是单元格引用,例如 A1(如果 A1 单元格的内容是逗号)。
如果不想使用任何分隔符,请使用空字符串 ""。
ignore_empty (必需):一个逻辑值(TRUE 或 FALSE)。
如果为 TRUE,函数将自动忽略任何空单元格。
如果为 FALSE,函数会将空单元格视为空字符串 ("") 并包含在内(即可能会产生连续的分隔符)。
text1 (必需):要连接的第一个文本项。可以是文本字符串、数字、单元格引用或单元格区域。
[text2], ... (可选):要连接的其他文本项。最多可包含 252 个文本参数。每个参数可以是一个单元格,也可以是一个单元格区域(如 A1:A10)。
3. 基本示例
假设我们有如下数据:
A
B
C
D
姓名
省
市
结果
张三
广东
广州
李四
上海
王五
江苏
南京
示例 1:连接省和市,用 “-” 分隔,忽略空值
在 D2 单元格中输入公式:
excel
复制
下载
=TEXTJOIN("-", TRUE, B2, C2)
然后将公式向下填充。
D2 结果: 广东-广州
D3 结果: 上海 (因为 C3 为空,且 ignore_empty 为 TRUE,所以被忽略,不会出现多余的 “-”)
D4 结果: 江苏-南京
示例 2:连接省和市,用 “-” 分隔,不忽略空值
在 D2 单元格中输入公式:
excel
复制
下载
=TEXTJOIN("-", FALSE, B2, C2)
D3 结果: 上海- (因为 ignore_empty 为 FALSE,空单元格被作为空字符串处理,所以会产生一个末尾的 “-”)
4. 高级应用示例
示例 3:连接一个区域的所有内容
假设我们有一个任务列表,A2:A5 中有一些任务,有些是空的。我们希望用逗号将它们连接成一个句子。
A
B
任务
结果
写报告
开会
发邮件
在 B2 中输入公式:
excel
复制
下载
=TEXTJOIN(", ", TRUE, A2:A5)
结果: 写报告, 开会, 发邮件
示例 4:构造动态地址
结合其他函数(如 IF),可以实现更复杂的逻辑。例如,只有“市”和“区”都不为空时,才用空格连接。
A
B
C
D
E
省
市
区
街道
完整地址
广东省
深圳市
南山区
科技园
在 E2 中输入公式:
excel
复制
下载
=TEXTJOIN(" ", TRUE, A2, B2, C2, D2)
结果: 广东省 深圳市 南山区 科技园
示例 5:与数组函数结合(Office 365)
如果你是 Microsoft 365 用户,可以结合 FILTER 等函数进行条件连接。
假设我们有以下名单,只想连接“A组”的成员。
A
B
姓名
组别
张三
A组
李四
B组
王五
A组
赵六
A组
公式如下:
excel
复制
下载
=TEXTJOIN(", ", TRUE, FILTER(A2:A5, B2:B5="A组", ""))
结果: 张三, 王五, 赵六
这个公式会先使用 FILTER 函数筛选出所有“A组”的姓名,生成一个数组 {"张三"; "王五"; "赵六"},然后 TEXTJOIN 再把这个数组用逗号连接起来。
5. 与旧函数对比
CONCATENATE 函数 或 & 运算符
缺点1: 不能忽略空单元格。=A1 & "-" & B1 如果 B1 为空,结果会是 某省-。
缺点2: 不能直接连接一个区域。你必须手动指定每个单元格 =CONCATENATE(A1, A2, A3, A4),而 TEXTJOIN 可以直接使用区域 A1:A4。
缺点3: 添加分隔符非常繁琐。=A1 & ", " & A2 & ", " & A3,而 TEXTJOIN 只需指定一次分隔符。
总结
特性
TEXTJOIN
CONCATENATE / &
指定分隔符
非常方便,只需一次
非常繁琐,需多次添加
忽略空单元格
支持(通过参数控制)
不支持
连接区域
支持(可直接引用A1:A10)
不支持(必须逐个引用)
结论: 只要你使用的 Excel 版本中有 TEXTJOIN 函数(2016及以上或Microsoft 365),它绝对是进行文本连接任务时的首选。