Excel 公式

Excel 文本合并 / 把多列拼成一列怎么做

更新于 2026-06-04 · 阅读约 6 分钟

把年和月拼成「2023-12」,把省、市、区拼成完整地址,把姓和名拼在一起……这类把多列文本合并成一列的需求每天都在发生。Excel 有好几种做法,本文从最简单的 & 符号讲到 TEXTJOIN,再带你看超级表「合并列」功能怎么三步完成同样的事。


超级表中把年和月两列拼成 Year-Month 一列的示意
把多列拼成一列(如 年+月→2023-12)——超级表里用「合并列」。

最简单:用 & 符号直接拼

& 是 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 函数,嵌套一层又一层。
  • 每次加列都要改公式:如果原始数据表加了新列,合并公式得跟着手动更新范围。
  • 拖公式容易漏:新增一行数据,记得把公式列向下拖,否则新行没有合并结果。
痛点总结
& / CONCATENATE / TEXTJOIN 能搞定,但列多公式长、数字补零要套 TEXT、加列要改公式、新行要拖——日常维护挺烦。

更简单:超级表「合并列」三步点完

超级表(TableDI)是一款桌面端高能表格助手,macOS / Windows 均可用,离线运行、不需要登录。它把「把多列拼成一列」做成了可视化操作——选哪几列、用什么分隔符、新列叫什么名字,点点选选就行,不用写公式。步骤如下:

  1. 把 Excel 或 CSV 文件拖进超级表,数据自动加载。
  2. 点击顶部工具栏的「合并列」按钮(或在列头右键菜单中找到)。
  3. 在弹出面板里:勾选要合并的列(比如「年」「月」);填写分隔符(比如 -);给新列起个名字(比如「年月」)。
  4. 点「确认」,新列自动生成,每行内容按你设定的分隔符拼好了。

超级表的合并列不只能拼文本,数字列也能直接合并,格式问题在导入时就做好了,不需要手动 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" 表示至少两位、不够就补零。超级表里导入数据时可以把该列格式设为「文本」或在合并前统一格式,不用手动套函数。

不想再数 & 符号的个数了?

免费下载超级表,选好列、填好分隔符,合并列三步搞定

免费下载(macOS / Windows)