Excel 文本合并 / 把多列拼成一列怎么做
把年和月拼成「2023-12」,把省、市、区拼成完整地址,把姓和名拼在一起……这类把多列文本合并成一列的需求每天都在发生。Excel 有好几种做法,本文从最简单的 & 符号讲到 TEXTJOIN,再带你看超级表「合并列」功能怎么三步完成同样的事。
最简单:用 & 符号直接拼
& 是 Excel 里拼接文本最直接的方式,不需要记函数名,只要在引用之间用 & 连接就行。比如 A 列是年份、B 列是月份,想拼成「2023-12」这种格式:
=A2&"-"&B2
几个要点:
- 文字分隔符要用英文双引号括起来,比如
"-"、"/"、" "(空格); - 想拼省市区,就写
=C2&D2&E2,不加分隔符就紧连在一起;加个空格就是=C2&" "&D2&" "&E2; - 中间穿插固定文字也没问题:
="第"&A2&"名"就能出「第3名」。
写好后往下拖填充,整列就搞定了。& 的局限在于列多了得一直写 &,不如函数直观;数字如果要补零(比如月份补成两位数的 07),还得套 TEXT 转换,否则 Excel 会直接把数字当文本输出,而不是保留格式。
CONCATENATE / CONCAT / TEXTJOIN 有什么区别
Excel 提供了三个文本合并函数,它们的能力依次递增:
CONCATENATE — 老版兼容函数
=CONCATENATE(A2, "-", B2)
和 & 几乎一样,逐个列出要合并的内容。优点是兼容老版本 Excel;缺点是同样要一个一个列,列多了很冗长,Excel 2019 及以上已被 CONCAT 取代。
CONCAT — 支持范围
=CONCAT(A2:E2)
CONCAT 可以接受单元格范围,比 CONCATENATE 省力。但它不支持自动加分隔符——如果直接 =CONCAT(A2:E2),五列内容会紧紧贴在一起,中间没有任何分隔。想加分隔符还是得手工写。
TEXTJOIN — 最灵活,能加分隔符、能跳过空值
=TEXTJOIN("-", TRUE, A2:E2)
三个参数:
- 第一个:分隔符,写在引号里,比如
"-"、"/"、","; - 第二个:
TRUE表示自动忽略空单元格,FALSE则空单元格也算进去(会出现连续分隔符,比如「北京--朝阳区」); - 第三个起:要合并的内容,可以是单个引用,也可以是范围。
实例:把 A 到 C 三列的省、市、区合并成地址,空的自动跳过:
=TEXTJOIN("", TRUE, C2, D2, E2)
或者用连字符把年月日拼成日期字符串:
=TEXTJOIN("-", TRUE, A2, TEXT(B2,"00"), TEXT(C2,"00"))
这里 TEXT(B2,"00") 把月份数字补成两位(1 → 01),是处理数字补零最正规的方式。TEXTJOIN 在 Excel 2019 及 Microsoft 365 中可用;如果你的 Excel 版本较老,只能用 & 或 CONCATENATE 代替。
这些办法的麻烦在哪
上面几种方式都能解决问题,但做起来有几个让人头疼的地方:
- 列多了公式很长:七八列要拼,公式写一行根本看不完,维护时也容易改错位置。
- 数字要先转文本:月份、日期、邮编等数字列直接拼不会自动补零,得加
TEXT函数,嵌套一层又一层。 - 每次加列都要改公式:如果原始数据表加了新列,合并公式得跟着手动更新范围。
- 拖公式容易漏:新增一行数据,记得把公式列向下拖,否则新行没有合并结果。
更简单:超级表「合并列」三步点完
超级表(TableDI)是一款桌面端高能表格助手,macOS / Windows 均可用,离线运行、不需要登录。它把「把多列拼成一列」做成了可视化操作——选哪几列、用什么分隔符、新列叫什么名字,点点选选就行,不用写公式。步骤如下:
- 把 Excel 或 CSV 文件拖进超级表,数据自动加载。
- 点击顶部工具栏的「合并列」按钮(或在列头右键菜单中找到)。
- 在弹出面板里:勾选要合并的列(比如「年」「月」);填写分隔符(比如
-);给新列起个名字(比如「年月」)。 - 点「确认」,新列自动生成,每行内容按你设定的分隔符拼好了。
超级表的合并列不只能拼文本,数字列也能直接合并,格式问题在导入时就做好了,不需要手动 TEXT 补零。想把合并好的结果导出成 Excel,再点一次「导出」就完成。
如果你的需求是反过来——把一列内容按分隔符拆成多列,比如把「北京-朝阳-望京」拆成三列——可以参考分列功能的详细教程,和「合并列」互为逆操作。更复杂的计算和条件拼接,也可以看用公式面板代替 VLOOKUP 里的思路。
Excel 公式 vs 超级表合并列对照
| 对比项 | Excel & / TEXTJOIN 公式 | 超级表合并列 |
|---|---|---|
| 操作方式 | 手写公式,记参数 | 勾选列 + 填分隔符,可视化 |
| 加分隔符 | 公式里手动拼 "-" | 面板里直接填,所见即所得 |
| 数字补零 | 要套 TEXT(B2,"00") | 导入时自动处理格式 |
| 多列合并 | 列多了公式很长 | 批量勾选,一次完成 |
| 新增一行 | 要手动拖公式 | 表格新行自动合并 |
| 老版本 Excel 兼容 | & / CONCATENATE 都兼容 | 桌面端独立运行,不依赖 Excel 版本 |
常见问题
& 和 CONCATENATE 有什么区别?
功能上几乎没有区别,结果完全一样。& 更简洁,=A2&"-"&B2 比 =CONCATENATE(A2,"-",B2) 少打不少字;CONCATENATE 的优势是在老版本 Excel 里可读性稍好。新写的公式推荐直接用 &,或者用更强的 TEXTJOIN。
怎么在合并时加分隔符?
用 & 时,把分隔符用双引号括起来插在中间,比如 =A2&"/"&B2。用 TEXTJOIN 时,第一个参数就是分隔符,比如 =TEXTJOIN("/", TRUE, A2, B2)。超级表「合并列」面板里直接填分隔符即可,不用写引号。
数字要补零(比如月份显示成 07)怎么办?
Excel 里要先用 TEXT 函数把数字转成带格式的文本,再拼接:=A2&"-"&TEXT(B2,"00"),"00" 表示至少两位、不够就补零。超级表里导入数据时可以把该列格式设为「文本」或在合并前统一格式,不用手动套函数。