跳至内容
Excel

如何使用 Excel CONCAT():快速指南

了解如何在 Excel 中合并文本、数字和单元格区域,减少手动录入,让数据更整洁有序。
Josef Waples's photo
Josef Waples
已更新 · 6分钟 阅读

使用 AI 探索

ChatGPTClaudePerplexity

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续
继续操作即表示您接受我们的《使用条款》和《隐私政策》,并同意您的数据存储在美国。

Excel 中的 CONCAT() 函数可将文本、数字或单元格内容连接到同一个单元格中,帮助您整理数据并减少手动录入。正如您将看到的,当您要拼接姓名、地址或某种自定义标签时,它非常实用。

下面我们一起了解该函数的基本用法、看看实际示例,并探讨它与相关 Excel 工具的比较。提示:它是较为过时的 CONCATENATE() 函数的替代品,但也正被功能更灵活的 TEXTJOIN() 盖过风头,我也写过关于后者的文章。

理解 CONCAT() 的用途与基础

先明确 CONCAT() 到底做什么、以及在什么情况下使用它,这很有帮助。

CONCAT()(您也许已经知道)源自 “concatenate”,意思是像链条一样把东西连接在一起。在 Excel 中,这意味着将两个或多个单元格(或数值)的内容合并为一个。例如,您可能把名和姓放在不同的列里,但希望为邮寄名单合并到同一列。

正如开头所说,它是旧版 CONCATENATE() 函数的现代替代品。CONCAT() 优于 CONCATENATE(),首先是更短、更易输入,更重要的是它更灵活,既能合并单个单元格,也能合并区域。

=CONCAT(text1, [text2], ...)

每个参数都可以是您要合并的单元格引用、区域或文本值。text1 为必需参数,而 text2 及后续项为可选,这也是用方括号表示的原因。

日常表格中的 CONCAT()

既然已经了解了 CONCAT() 的作用,接下来看看它如何处理一些常见情境。

将名和姓合并到一个单元格

假设您的联系人列表中,名字在 A 列,姓氏在 B 列。这可能是最常见的用法。要把两者合并到一个单元格(中间带空格),可使用:

=CONCAT(A2, " ", B2)

使用 Excel CONCAT 合并名和姓

此公式会将 A2 的内容、一个空格字符和 B2 的内容连接起来。向下填充公式即可生成完整列表。您也可以用逗号分隔,例如:=CONCAT(A2, ",", B2)

合并地址要素

各地地址格式不尽相同,但几乎总是分布在多个列中,如门牌号、街道、城市。借助 CONCAT(),您可以将它们合并用于打印邮寄标签,或仅用于更整洁的记录管理。

=CONCAT(A2, " ", B2, ", ", C2)

使用 Excel CONCAT 合并地址要素

连接一组单元格

相较旧版 CONCATENATE(),CONCAT() 的一大优势是可以连接整个区域。我想展示这个例子,因为它体现了 CONCAT() 相对 CONCATENATE() 的能力。例如,要合并 A2 到 E2 的值,可使用:

=CONCAT(A2:E2)

使用 Excel CONCAT 连接一组单元格

Excel 会按顺序合并内容,默认不添加分隔符。在这个例子中,看起来会有些奇怪,因为各项直接连在一起。所以我既展示了 CONCAT() 相较 CONCATENATE() 的强项(后者在这里完全不可用),也展示了它相较 TEXTJOIN() 的弱点——后者可以轻松添加空格,稍后会详细说明。

CONCAT() 的局限

现在,我们需要谈谈 CONCAT() 的一些小毛病和局限。我希望帮助您避开常见坑点,并更好地决定何时使用该函数。

首先,CONCAT() 不会在项目或单元格值之间自动添加分隔符(如空格或逗号)。如果您的数据来自多列并且希望结果便于阅读,需要像示例那样手动插入分隔符。

其次,CONCAT() 会在没有提示的情况下忽略空白单元格。如果您合并的区域中包含空白单元格,结果可能会显得别扭——也就是说,单词或数值可能会连在一起。

此外,CONCAT() 不支持在区域内统一添加分隔符。我的意思是,比如您想合并 A2:E2 并在每个值之间插入逗号,仅靠 CONCAT() 是无法实现的。这就像前面水果的例子里,apple、banana 等都连在一起的输出。

最后但同样重要的是,CONCAT() 的结果始终是文本,即便包含数字。如果您需要数值型输出,那就不该用它。

CONCAT() 与 TEXTJOIN()、CONCATENATE() 的比较

我多次提到了其他 Excel 函数,如 TEXTJOIN() 和 CONCATENATE()。下面来明确它们各自的用途。

使用 TEXTJOIN() 自定义分隔符

TEXTJOIN() 适用于需要在项目之间自动插入分隔符(如逗号或空格)时,即使在合并区域时也能实现。其语法如下:

例如,要将 A2:E2 中的所有值用逗号分隔并跳过空白,可使用:

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

在 Excel 中使用 TEXTJOIN() 自定义分隔符

如您所见,对于列表、地址或任何需要一致分隔符且数据区域过长、不适合用 CONCAT() 的场景,TEXTJOIN() 是不错的选择。TEXTJOIN() 还能很好地处理我在示例中保留的空白单元格。

您也能看到,在这种情境下 CONCAT() 会变得多么笨拙:

=CONCAT(A1, ", ", B1, ", ", C1, ", ", D1, ", ", E1)

了解 CONCATENATE()(以及它为何过时)

CONCATENATE() 是 Excel 早期用于连接文本的函数。其主要缺点是不接受区域作为参数。每个单元格或值都必须单独列出。

换句话说,这个可以:

=CONCAT(A1:E1)

但这个会报错:

=CONCATENATE(A1:E1) # this doesn’t work

在现代工作流程中,使用 CONCAT() 或 TEXTJOIN() 会更好。总结如下:

  • 当您不需要自定义分隔符时,使用 CONCAT() 直接合并单元格或区域。

  • 当需要自动且可自定义的分隔符时,使用 TEXTJOIN()。

  • 在新文件中避免使用 CONCATENATE();它仅为兼容性而保留。

技巧与提示

既然您已经了解何时使用 CONCAT(),下面给出一些实用技巧,帮助您在日常工作中更高效地使用它。

加入常量与格式

您可以将单元格引用与固定文本或符号组合。例如,在 A2 的员工编号前添加 "ID-":

=CONCAT("ID-", A2)

在 Excel CONCAT 中加入常量与格式

这种方法有助于在工作表中统一格式或标签。

处理数字与日期

CONCAT() 会将数字和日期视为文本。如果您想控制格式,可在公式中搭配 TEXT()。例如,将姓名与格式化日期合并:

=CONCAT(A2, " hired on ", TEXT(B2, "mmmm d, yyyy"))

在 Excel CONCAT 中处理数字与日期

这样可确保输出符合您期望的样式,无论是编写报告还是执行邮件合并。

结语

如上所述,CONCAT() 为在 Excel 中合并文本、数字和区域提供了简单途径,对于管理清单、报告或日常数据清理的人来说都能节省时间,而这些基本上都会出现在数据专员、数据分析师或数据科学家的工作职责中。

本文还提到了一些其他函数。若想与时俱进,欢迎学习我们的 Advanced Excel Functions 课程,了解更多有趣的 Excel 内容,例如 Excel 的动态数组能力和自动化方法。


Josef Waples's photo
Author
Josef Waples

我是数据科学编辑,曾为科学期刊发表的研究论文撰稿。我的兴趣领域包括线性代数、统计学、R 等相关主题。

常见问题

为什么 CONCAT() 不会自动在项目之间插入空格或逗号?

Excel 中的 CONCAT() 函数默认不会在数值之间添加任何分隔符(例如空格、逗号或斜杠)。如果您想要可读性更好的结果,需要在公式中手动添加分隔符。例如,要在名字和姓氏之间插入空格,您可以这样写:=CONCAT(A2, " ", B2)

当 CONCAT() 遇到空白单元格时会发生什么?

当 CONCAT() 合并一个区域或单元格列表时,它会悄无声息地忽略空白单元格。这有时会导致结果看起来有些奇怪,仿佛数值被“连在一起”。如果这会带来问题,考虑使用条件逻辑或 TEXTJOIN() 函数,它能更好地控制空白的处理。

我能用 CONCAT() 在合并区域时在各值之间插入逗号吗?

No,单独使用 CONCAT()无法在类似 A2:E2 这样的区域项目之间插入分隔符。如果您希望这些值之间用逗号(或任何分隔符)分隔,请改用 TEXTJOIN()。例如:=TEXTJOIN(", ", TRUE, A2:E2) 它会连接该区域并自动插入逗号,若将第二个参数设为 TRUE,则会跳过空白单元格。

为什么 CONCAT() 在合并数字时仍然返回文本?

CONCAT() 函数始终返回文本字符串,无论是否包含数字。如果您需要保留数字格式或控制日期、数字的显示方式,需要将它们包裹在 TEXT() 函数中。例如:=CONCAT("Hired on ", TEXT(B2, "mm/dd/yyyy"))

我该在什么时候使用 CONCAT()、TEXTJOIN() 或 CONCATENATE()?

  • 当不需要自动分隔符时,使用 **CONCAT()** 进行简单合并单元格或区域。
  • 当您希望插入分隔符(如逗号或空格)并跳过空白单元格时,使用 **TEXTJOIN()**。

  • 在新工作簿中避免使用 **CONCATENATE()**——它已被 CONCAT() 取代,且不支持区域。

主题
Excel

使用 DataCamp 学习 Excel

课程

Excel 数据分析

3 小时
155.3K
学习如何使用数据透视表和中级逻辑函数分析数据,然后再学习假设分析和预测等工具。
查看详情开始课程

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续
继续操作即表示您接受我们的《使用条款》和《隐私政策》,并同意您的数据存储在美国。
查看更多