本教程介绍了CONCAT函数的一些常见用途,并解释了它与其前身–CONCATENATE函数的不同之处。
传统上,Excel中的字符串连接是在CONCATENATE函数或安培符号的帮助下完成的。在Excel 2019和Excel 365中,这些老式的方法让位于CONCAT–一个较新的、改进的函数,可以将多个单元格的文本合并到一个单元格。
Excel CONCAT函数
Excel中的CONCAT函数用于将多个单元格或区域的字符串合并到一个单元格中。
它被归类于文本函数,在Excel for Microsoft 365、Excel 2019和Excel for the web中可用。
语法就像这样简单。
CONCAT(text1, [text2],…)
其中 text1 (要求)和 文本2 (可选)是要加入的字符串。
参数可以作为文本值、单元格或范围参考提供。最多可接受255个文本参数。字符串是按照它们在公式中出现的顺序连接起来的。
作为一个例子,让我们以最简单的形式写一个CONCAT公式来合并 两个文本字符串 – 用户名称和域名。请注意,直接提供给公式的字符串应始终用双引号括起来,像这样。
=CONCAT("john", "@gmail.com")
下面的截图显示了连接的结果。
CONCAT函数–需要记住的5件事
在我们深入讨论实际的例子之前,让我简要地概述一下需要注意的几件事。
- CONCAT函数要求至少有一个 文本 参数才能发挥作用。如果任何一个参数是无效的(例如由另一个抛出错误的函数表示),将发生错误。
- CONCATENATE函数的结果总是一个 文字串, 即使是在组合数字的时候。
- 如果产生的字符串超过32,767个字符,就会出现#VALUE!错误。
- Excel CONCAT没有预定义的选项,用于 分隔符.为了分离合并的文本片段,在连接的字符串之间加上定界符,如图所示 这个例子.
- 空的细胞 将被忽略。
如何在Excel中使用CONCAT函数–公式实例
现在到了最有趣的部分–在不同的场景中使用CONCAT函数来处理现实生活中的任务。
CONCAT两个或多个单元格
首先,让我们讨论一下基本用例–连接没有分隔符的单元格。很明显,你只需要使用相应的单元格引用来进行 text1, text2, …, textn 争论。
例如,要串联 两个单元格 (A2和B2),C2中的公式是。
=CONCAT(A2, B2)
要连接来自多个 相邻的单元格你可以提供单个单元格的引用或单个范围的引用。
例如,要合并A2至C2单元格中的字符串,下面的两个公式都可以工作。
=CONCAT(A2, B2, C2)
=CONCAT(A2:C2)
如果有些组合单元格是空的,不用担心–CONCAT函数会自动 忽略空白单元格.
CONCAT两列或多列
要逐行串联列,你需要这样做。
- 写一个CONCAT公式来合并第一行的单元格。
- 将该公式向下复制到所需的行中。
例如,要在每一行的A、B、C列中组合字符串,在D2中输入这个公式。
=CONCAT(A2:C2)
然后,向下拖动填充柄,将公式复制到下面的行中。如果源数据中没有空隙,你可以直接双击填充柄。详细说明,请参见 如何在Excel中复制公式.
由于使用了 相对引用,公式将对每一行进行适当的调整。也就是说,在D3中,引用将变为A3:C3,在D4中变为A4:C4,以此类推。
串联单元格的范围
在Excel中串联一个单元格区域曾经是一个挑战。但现在不是了!现在,你可以简单地将一个单元格区域引用放在 文本 CONCAT函数的参数。
=CONCAT(A2:C3)
作为结果,指定范围内的所有数值从左到右被合并,然后向下到下一行。
以类似的方式,你可以合并两个或多个 不相邻的范围:
=CONCAT(A2:C3, A5:C6)
串联列中的所有单元格
要连接某一特定列中的所有单元格的值,请为CONCAT提供一个列参考。例如。
=CONCAT(A:A)
由于该函数跳过了空单元格,因此在结果字符串中不会有空隙。
连接列中的所有单元格 除标题外的所有单元格,使用像A2:A1048576这样的范围引用,其中A2是有数据的第一个单元格,A1048576是该列的最后一个单元格。
=CONCAT(A2:A1048576)
注意。 当连接一列中的所有单元格时,请注意Excel对一个单元格所能包含的总字符数有限制–最多32,767个字符。如果产生的字符串超过了这个限制,你的公式将抛出一个#VALUE!错误。
带有分隔符(逗号、空格、换行符等)的CONCAT
如前所述,CONCAT函数的语法中没有分隔符的选项。但是,这并不意味着你不能在公式中直接包含它。
要将字符串连接到 逗号,将下列分隔符之一放在 文本 争论。
- 逗号,没有空格。”,”
- 逗号和空格。”, “
例如,要把A2、B2和C2单元格中的字符串合并起来,用逗号和空格分隔这些值,要使用的公式是这样的。
=CONCAT(A2, ", ", B2, ", ", C2)
要将单元格与 空间,将””置于 文本 争论。
=CONCAT(A2, " ", B2, " ", C2)
要连接带有以下内容的字符串 换行,使用CHAR(10),这是换行的ASCII代码。
=CONCAT(A2, CHAR(10), B2, CHAR(10), C2)
为了使结果正确显示,请确保将 经文 功能上。
乍一看,CONCAT语法不提供分隔符可能是一个缺点。然而,这使得你可以使用 不同的定界符 在一个单一的公式中,以你想要的方式组合多个字符串!
例如,你可以在下面插入一个换行符 text1 分离时 text2 和 文本3 用一个逗号。
=CONCAT(A2, CHAR(10), B2, ", ", C2)
串联日期
在一些组合值是日期的情况下,你可能会得到混乱的结果,如下所示。
=CONCAT(A2, CHAR(10), B2)
这个公式有什么问题?没什么。CONCAT函数所做的正是它应该做的–合并文本字符串。任何数字值都被转换为 文本值 过程中。因为在Excel内部系统中 日期是以序列号的形式存储的,CONCAT函数使用这些基本数字。
要正确地连接一个日期,首先要借助函数CONCAT将其转换为文本字符串。 TEXT 函数,然后将字符串送入CONCAT。
例如,要把A2中的一个文本值和B2中的一个日期结合起来,公式为:。
=CONCAT(A2, CHAR(10), TEXT(B2, "d-mmm-yyyy"))
你可以使用任何其他的 “d-mmm-yyyy “来代替 “d-mmm-yyyy”。 日期格式 你喜欢
串联文本和另一个函数
要串联由其他一些公式产生的字符串,可以将这些公式嵌套在CONCAT函数中。
假设你希望在你的工作表中显示当前时间。在你的工作表中,你可以通过CONCAT函数来显示当前的时间。 现在 函数可以轻松地做到这一点。为了明确说明是当前时间,你可能想在同一单元格中添加一些解释性的文字。
为了完成这项任务,我们要把文字”当前时间。 “和NOW函数。此外,我们将NOW()包裹在TEXT里面,以所需的格式显示时间。如果没有这一改进,时间将显示为一个十进制数字,在Excel内部代表一个日期/时间值。
=CONCAT("Current time: ", TEXT(NOW(), "hh:mm AM/PM"))
因为我们在文本字符串的末尾添加了一个空格字符,所以没有必要在公式中加入分隔符–连接的结果看起来很完美。
Excel中的CONCAT与CONCATENATE
事实上,CONCAT函数是取代了 CONCATENATE 在新的Excel版本中。尽管由于兼容性的原因,旧的函数仍然被支持,但建议使用新的函数来代替。
从技术角度看,Excel中的CONCAT和CONCATENATE有两个主要区别。
- 首先,CONCAT函数克服了其前辈的最大局限性–无法处理单元格区域。与CONCATENATE函数不同的是,CONCAT可以合并一个单元格中的所有字符串,省去了你单独指定每个单元格引用的麻烦。
- CONCAT函数仅在Excel 365、Excel 2019(Windows和Mac)和Excel Online中可用。CONCATENATE函数在Excel 2007到365的所有版本中都支持。
在所有其他方面,这两个函数本质上是一样的。
练习册下载
Excel CONCAT公式实例 (.xlsx文件)