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 里,这些公式不用背。桌面版 TableDI 的公式面板可以点选生成公式,配合 AI 直接说需求;处理 Excel/CSV 数据请从官网下载:

TableDI 个人版(中文官网,macOS / Windows)
tabledi — AI agent 的数据后端(新版)
免费在线数据工具(PDF 转表格 / CSV 仪表盘 / 自动报表)