EP11. “CONCATENATE 拼接文本”
🔒 登录后可标记已读- 讲怎么把多个单元格的文字拼在一起
- 介绍四种方法:CONCATENATE 函数、
&运算符、CONCAT 函数、TEXTJOIN 函数 - 后两个是 Excel 2016 之后才有的新函数,功能更强
- 前置知识不需要
- 学完能处理各种「多列合并成一列」的需求
重点内容
函数速查
| 函数 | 语法 | 用途 | 例子 |
|---|---|---|---|
| CONCATENATE | =CONCATENATE(text1,text2,...) | 拼接多个文本 | =CONCATENATE(A1,B1) |
| & | =A1&B1 | 拼接运算符,效果等同 CONCATENATE | =A1&" "&B1 |
| CONCAT | =CONCAT(range) | 拼接整个范围(Excel 2016+) | =CONCAT(A1:A5) |
| TEXTJOIN | =TEXTJOIN(delimiter, ignore_empty, range) | 用指定分隔符拼接,可忽略空单元格(Excel 2016+) | =TEXTJOIN(", ",TRUE,A1:A5) |
拼接方法怎么选
| 方法 | 适合场景 | 例子 |
|---|---|---|
CONCATENATE / & | 拼接几个固定的单元格 | =A1&" "&B1 |
| CONCAT | 一次拼接整个范围 | =CONCAT(A1:A5) |
| TEXTJOIN | 需要指定分隔符、还想跳过空单元格 | =TEXTJOIN(", ",TRUE,A1:A5) |
基础拼接
=CONCATENATE(A1,B1),直接把 A1 和 B1 的内容接在一起,中间没有任何间隔- 加文字连接:
=CONCATENATE(A1," and ",B1),三个参数依序拼接,中间插入 " and " - 只加空格:
=CONCATENATE(A1," ",B1)或用&写成=A1&" "&B1,效果一样
CONCAT 拼接整个范围
=CONCAT(A1:A5)
不用像 CONCATENATE 那样一个个单元格列出来,直接给一个范围就能全部拼接。
TEXTJOIN 指定分隔符 + 忽略空单元格
=TEXTJOIN(", ",TRUE,A1:A5)
第一参数是分隔符(这里是逗号+空格),第二参数设 TRUE 表示自动跳过范围内的空单元格,不会拼出多余的分隔符。
拼接数字时先用 TEXT 格式化
数字直接拼接会丢失格式(千分位、小数位等),要先用 TEXT 函数转换(详见 EP10):
=A1&" 元:" &TEXT(B1,"#,##0.00")
拼接后换行
用 CHAR(10) 插入换行符:
=A1&CHAR(10)&B1
⚠️ 要让换行真的显示出来,需要额外给单元格开启"自动换行"(Wrap Text)。
进阶:条件筛选后再拼接
先用 IF 函数筛选出符合条件的内容,再用 TEXTJOIN 把筛选结果用逗号+空格连接起来,是处理"只拼接符合某条件的项目"这类需求的常见组合写法。如果涉及数组处理,旧版本需要按 Ctrl + Shift + Enter 确认成数组公式。
学完你会
- ✅ 能用
&或 CONCATENATE 把多个单元格的文字拼接起来 - ✅ 能用 TEXTJOIN 指定分隔符,并自动跳过范围里的空单元格
- ✅ 能在拼接数字前先用 TEXT 格式化,避免千分位/货币符号丢失
常见错误
- CONCAT/TEXTJOIN 是 Excel 2016 之后才有的函数,在更早的版本里会报错,跨版本共享文件时要注意
- 数字直接拼接进文本,忘记先用 TEXT 格式化,结果千分位、货币符号全部消失
- 用 CHAR(10) 插入换行符后,单元格没开启 Wrap Text,导致换行符实际存在但看起来还是挤成一行
Sources
Blog / Website: