TEXTJOIN 函数的语法和参数说明(附示例)

TEXTJOIN 把多个文本(或整个区域)用指定分隔符拼接成一段,并且可以自动跳过空单元格。要把一列名字拼成"张三、李四、王五",一个 TEXTJOIN 就够了——这是它相对 CONCAT 和 & 拼接的核心优势。

语法

TEXTJOIN(分隔符, 是否忽略空值, 文本1, [文本2], …)
参数说明
分隔符插在每两段文本之间的字符,如 "、"、", "、"-";传空串 "" 则无缝拼接。
是否忽略空值TRUE = 跳过空单元格(推荐,避免出现连续分隔符);FALSE = 空值也占一个位置。
文本1, 文本2, …要拼接的内容:可以是单元格、文本常量,也可以直接给一个区域(如 A2:A20)。

示例

把一列名字拼成顿号分隔的名单

=TEXTJOIN("、", TRUE, A2:A20)

结果形如"张三、李四、王五"。第二参数 TRUE 保证中间的空单元格不会产生"张三、、李四"。

把省市区三列合成完整地址

=TEXTJOIN("", TRUE, B2, C2, D2)

分隔符传空串即首尾相接;某一列缺失时 TRUE 会自动跳过,不留空洞。

带标签的多字段摘要

=TEXTJOIN(" | ", TRUE, "客户:"&A2, "金额:"&B2, "状态:"&C2)

每段先用 & 拼上标签,再用 TEXTJOIN 统一加分隔符,生成"客户:… | 金额:… | 状态:…"。

常见问题

TEXTJOIN 和 CONCAT 的区别是什么?

CONCAT 只做首尾相接,没有分隔符参数也不能忽略空值;TEXTJOIN 多了"分隔符"和"是否忽略空值"两个参数。需要"用逗号隔开"这类需求时直接用 TEXTJOIN。

拼接结果太长被截断了怎么办?

TEXTJOIN 的结果是一个文本值,长度有上限(数万字符)。超长通常说明该把数据拆组:先按类别分组,再对每组分别 TEXTJOIN。

能对满足条件的行做拼接吗?

可以配合 IF 数组:=TEXTJOIN("、", TRUE, IF(B2:B20>80, A2:A20, "")),只拼接分数大于 80 的名字(空串会被 TRUE 忽略)。

相关函数

这是旧版 TableDI 桌面产品的公式文档。继续使用桌面编辑器可前往中文官网;如果你需要治理 coding agent 反复执行的 clean → extract → accept 流程,请使用 Tablize:

TableDI 个人版(中文官网,macOS / Windows)
Tablize — coding-agent 数据任务的独立账本
Tablize 免费在线数据工具