在线 Excel 编辑器
免费使用

TEXTJOIN 函数:语法、示例与错误排查

更新于 2026-10-13 · 免费 · 兼容 Excel 与 Google Sheets

语法

=TEXTJOIN(分隔符, 是否忽略空白, 文本1, [文本2], ...)

快速答案

TEXTJOIN 用你选的分隔符把多个值粘进一个单元格:=TEXTJOIN(", ", TRUE, A2:A8) 把一列变成一格里的「Doe, Smith, Lee」。TRUE 跳过空单元格,FALSE 保留空位——而结果是文本,不能再当数字参与计算。

语法

=TEXTJOIN(分隔符, 是否忽略空白, 文本1, [文本2], ...)
参数含义
分隔符放在每两个值之间的文本:", " 生成逗号+空格列表,"-" 生成编码,CHAR(10) 在单元格内换行。需要加引号,也可以是单元格引用。
是否忽略空白TRUE 跳过空单元格,不留缺口;FALSE 为每个空白保留空位。没有默认值——必须写 TRUE 或 FALSE。
文本1, [文本2], ...要合并的值:单个单元格、整段区域或混合——最多 252 个文本参数。A2:A8 这样的区域会按顺序合并所有单元格。

根据区域设置,参数可能用分号而不是逗号分隔:=TEXTJOIN(", "; TRUE; A2:A8)。在以逗号作为小数符的国家/地区这是标准写法。

基本示例

=TEXTJOIN(", ", TRUE, A2:A8)

招牌用法:整列折叠成一个可读列表——「Doe, Smith, Lee」——TRUE 顺手丢掉沿途的空单元格。适合摘要、邮件行,以及任何原始区域会一行一个值刷屏的场景。

=TEXTJOIN(CHAR(10), TRUE, B2:B10)

用真正的换行符把多个值合并进一个单元格——地址块、核对清单、迷你报告。记得给单元格打开「自动换行」,否则换行会显示成一整行。

=TEXTJOIN("-", TRUE, A2, B2, C2)

用零件拼编码和键值:SKU、订单号、URL slug。每个部件之间恰好一个连字符,从此不用手打分隔符。

=TEXTJOIN(", ", FALSE, A2:A8)

同样的列表换成 FALSE:每个空单元格保留自己的位置,缺失值显示为「, ,」——当列表中的位置本身有意义、缺口必须可见时,这正是你要的。

TEXTJOIN 的结果是文本——一个不能求和、求平均、按数字匹配的值。如果合并结果还要参与计算,请保留原始单元格,或用 VALUE 把结果转回去。

常见错误与修复方法

症状最常见原因修复方法
#NAME?TEXTJOIN 拼写错误——或你的 Excel 早于 2019 / 不是 Microsoft 365(函数不存在),或你的 Excel 是其他语言版本,函数名被本地化了(UNIRCADENAS、JOINDRE.TEXTE、TEXTVERKETTEN)。输入 =TEXT 让自动补全确认函数是否存在;不存在就升级 Office,或用对应语言版本的 Excel 打开文件。
#VALUE!合并结果超过 32,767 字符——单元格硬上限。超长文本的大范围会悄悄溢出成这个错误。把区域拆成多个 TEXTJOIN 单元格(A2:A500、A501:A1000……)再合并,或精简源文本。
列表挤成一整行换行符其实在里面,只是单元格不显示:CHAR(10) 需要目标单元格开启自动换行。选中单元格并开启「自动换行」——CHAR(10) 换行立刻变成真正的新行。
列表里出现「, ,」这样的缺口ignore_empty 设成了 FALSE,空单元格在输出里保留位置。把第二个参数改成 TRUE;如果缺口本身就是数据问题的症状,先清洗空白。
分隔符出现在开头或结尾第一个参数传了区域或传错了文本:=TEXTJOIN(A2:A8, TRUE, ...) 把单元格当成了分隔符本身;带尾部空格的分隔符会在结尾露出一个。把分隔符字符串加引号放第一个参数——=TEXTJOIN(", ", TRUE, A2:A8)——并检查它有没有多余空格。

隐藏空格同样毁掉合并列表:「Doe 」合并成「Doe , Smith」,分隔符前多出一段间隙。先清洗源区域,合并出来的列表就会严丝合缝。

TEXTJOIN 与 CONCAT、CONCATENATE 对比

TEXTJOINCONCAT / CONCATENATE
分隔符一个参数覆盖整个合并——自动放在每两个值之间没有——每个间隔都要手打分隔符
空单元格ignore_empty 一个开关决定跳过还是保留空白按空字符串合并——出现缺口,必须提前清洗
区域直接接受整段区域:=TEXTJOIN(", ", TRUE, A2:A8)只接受单个单元格和字面量——给区域会报溢出数组错误,或者不带分隔符直接粘连
可用版本Excel 2019 及以后、Microsoft 365(Google Sheets 同样支持)所有版本——CONCAT 自 2016 起,CONCATENATE 最早就有(Google Sheets 同样支持)
=CONCATENATE(A2, " ", B2)

老式写法:每个分隔符都要手打,三个单元格就已经要写两个。两三个已知单元格这样写没问题——但整列合并时,TEXTJOIN 加 ignore_empty 更短、对空白更安全、一年后再读也更容易。

Google Sheets 中的 TEXTJOIN

Google Sheets 支持与 Excel 相同三个参数、相同行为的 TEXTJOIN,上面的公式可以直接粘贴使用。

  • 在以逗号作为小数符的区域设置(欧洲和拉美大部分地区)中,参数之间输入分号:=TEXTJOIN(", "; TRUE; A2:A8)。Excel 行为相同。
  • Sheets 还有 JOIN,作用类似 TEXTJOIN 但自动跳过空单元格——不用记 TRUE/FALSE 参数。
  • 反向操作也存在:SPLIT 把一个单元格拆成多个,正好与 TEXTJOIN 相反。
  • 和 Excel 一样,输出是文本:上限 32,767 字符,数字合并成字符串后就不再是数字。

限制与进阶技巧

  • TEXTJOIN 抹掉数据类型:日期、货币、小数按显示文本合并,结果再也不能参与计算。数字重要就保留源单元格。
  • TRUE 还会吞掉只含空字符串 "" 的单元格——数据干净时很方便,但空字符串本身有意义时很危险。
  • 分隔符只出现在值与值之间——绝不在第一个值之前或最后一个值之后。看到开头或结尾多了分隔符,就是参数顺序错了。
  • 合并几千行后每次编辑都会重算:超大范围建议改用 Power Query 或一次性粘贴为值,而不是活公式。
  • TEXTSPLIT 是反向操作:把一个单元格拆回多列或多行。合并用于交付列表,拆分用于解包。

把 TEXTJOIN 当展示层:先清洗值,再合并。合并列表的整洁度取决于喂给它的单元格——把源头擦亮,结果就不需要手工修补。

相关工具

相关函数

常见问题

TEXTJOIN 在 Excel 中有什么用?

它把多个文本值合并进一个单元格,并在它们之间放上你选的分隔符:=TEXTJOIN(", ", TRUE, A2:A8) 把一列变成「Doe, Smith, Lee」。TRUE 参数让它在途中跳过空单元格。

哪些 Excel 版本有 TEXTJOIN?

Excel 2019 及以后,加上 Microsoft 365。Excel 2016 及更早没有这个函数——#NAME? 就是信号——那时用 CONCATENATE 或 & 运算符代替。

怎么用换行符合并多个值?

用 CHAR(10) 作分隔符:=TEXTJOIN(CHAR(10), TRUE, A2:A8)。每个值独占一行挤在同一个单元格里——记得打开「自动换行」,否则换行会藏成一整行。

TEXTJOIN 为什么返回 #VALUE!?

合并后的字符串超过了 32,767 字符——单个单元格的硬上限。把区域拆给多个 TEXTJOIN 再合并结果,或者精简源文本。

TEXTJOIN 和 CONCAT 有什么区别?

CONCAT 只是零分隔符地粘连,且只接受单个单元格;TEXTJOIN 在每两个值之间加分隔符,还能一个开关跳过空白。列表和区域场景下,TEXTJOIN 同时取代 CONCAT 和 CONCATENATE。

怎么让 TEXTJOIN 忽略空单元格?

第二个参数设为 TRUE:=TEXTJOIN(", ", TRUE, A2:A8)。空白不会在输出里留缺口。FALSE 为每个空白保留空位——位置有意义、缺口必须可见时用它。

TEXTJOIN 在 Google Sheets 里能用吗?

能——同名、同三个参数、同样行为,只在逗号小数符地区把参数写成半角分号。Sheets 还有自动跳过空白的 JOIN,以及反向操作的 SPLIT。

准备好处理你自己的文件了吗?

打开合并 Excel 列 — 免费