Table of contents
本教程通过实际例子展示了如何在Excel中使用TEXTJOIN函数来合并文本。
直到最近,在Excel中合并单元格内容有两种普遍的方法:连接运算符和CONCATENATE函数。 随着TEXTJOIN的引入,似乎出现了一个更强大的替代方案,它使你能够以更灵活的方式连接文本,包括中间的任何分隔符。 但事实上,它还有更多的内容!
Excel中的TEXTJOIN函数
Excel中的TEXTJOIN合并了来自多个单元格或区域的文本字符串,并用你指定的任何分隔符来分隔合并后的值。 它可以忽略或在结果中包括空单元。
该功能在Excel for Office 365、Excel 2021和Excel 2019中可用。
TEXTJOIN函数的语法如下。
TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)在哪里?
- 分隔符 (必填)--是你组合的每个文本值之间的分隔符。 通常,它被提供为一个用双引号括起来的文本字符串或对包含文本字符串的单元格的引用。 作为分隔符提供的数字被当作文本处理。
- 忽略空字 (required) - 决定是否忽略空单元格。
- TRUE - 忽略任何空白单元格。
- FALSE - 在结果字符串中包括空单元。
- 文本1 (required) - 第一个要连接的值。 可以提供一个文本字符串,一个对包含字符串的单元格的引用,或字符串的数组,如单元格的范围。
- 文本2 , ... (可选) - 要连接在一起的额外文本值。 最多允许252个文本参数,包括 文本1 .
作为一个例子,让我们把B2、C2和D2单元格的地址部分合并到一个单元格中,用逗号和空格分隔这些值。
使用CONCATENATE函数,你需要单独指定每个单元格,并在每个引用后面加上一个分隔符(","),这在合并许多单元格的内容时可能会很麻烦。
=concatenate(a2, ", ", b2, ", ", c2)
使用Excel TEXTJOIN,你只需在第一个参数中指定分隔符一次,并为第三个参数提供一个单元格范围。
=textjoin(", ", true, a2:c2)
Excel中的TEXTJOIN--需要记住的6件事
要在你的工作表中有效地使用TEXTJOIN,有几个要点需要注意。
- TEXTJOIN是一个新函数,只在Excel 2019 - Excel 365中可用。 在早期的Excel版本中,请使用CONCATENATE函数或"& "操作符代替。
- 在Excel的新版本中,你也可以使用CONCAT函数来连接不同单元格和区域的值,但没有分隔符或空单元格的选项。
- 提供给TEXTJOIN的任何数字,用于 分隔符 或 案文 参数被转换为文本。
- 如果 分隔符 未指定或为空字符串(""),文本值被连接起来,没有任何分隔符。
- 该函数最多可以处理252个文本参数。
- 产生的字符串最多可以包含32,767个字符,这是Excel中的单元格限制。 如果超过了这个限制,TEXTJOIN公式会返回#VALUE!错误。
如何在Excel中连接文本--公式示例
为了更好地了解TEXTJOIN的所有优势,让我们来看看如何在现实生活中使用该功能。
将列转换为逗号分隔的列表
当你想连接一个垂直列表,用逗号、分号或任何其他分隔符来分隔这些值时,TEXTJOIN是正确的函数。
在这个例子中,我们将把下表各队的胜负关系串联起来。 这可以通过以下公式来完成,它们的区别只在于连接的单元格范围。
对于团队1。
=textjoin(",", false, b2:b6)
对于第2小组。
=textjoin(",", false, c2:c6)
以此类推。
在所有的公式中,都使用了以下参数。
- 分隔符 - 逗号(",")。
- 忽略空字 被设置为FALSE,以包括空单元格,因为我们需要显示哪些游戏没有被玩。
结果,你将得到四个以逗号分隔的列表,以紧凑的形式代表各队的胜负。
连接具有不同分隔符的单元格
如果你需要用不同的定界符来分隔组合的值,你可以将几个定界符作为一个数组常数来提供,或者在一个单独的单元格中输入每个定界符,并使用一个范围引用作为 分隔符 争论。
假设你想连接包含不同名称部分的单元格,并以这种格式获得结果。 姓氏 , 名字 中间的名字 .
正如你所看到的,姓和名之间用逗号和空格(",")分开,而名和中间名之间只用空格("")分开。 因此,我们将这两个分隔符包含在一个数组常数{",",""}中,得到以下公式。
=textjoin({", ", "}, true, a2:c2)
其中A2:C2是要合并的名称部分。
或者,你可以在一些空单元格中输入不带引号的分隔符(比如在F3中输入一个逗号和一个空格,在G3中输入一个空格),并使用$F$3:$G$3的范围(请注意单元格的绝对引用)。 分隔符 争论。
=textjoin($f$3:$g$3, true, a2:c2)
通过使用这种通用方法,你可以以各种形式合并单元格内容。
例如,如果你想让结果在 名字 中间的首字母 姓氏 至于分隔符,我们在名字和中间的首字母之间加一个空格("");在首字母和姓氏之间加一个句号和一个空格("。")。
=textjoin({" ", ". "}, true, b2, left(c2,1), a2)
在Excel中连接文本和日期
在一个特定的情况下,当你要合并文本和日期时,直接向TEXTJOIN公式提供日期是行不通的。 你可能记得,Excel将日期存储为序列号,所以你的公式将返回一个代表日期的数字,如下图所示。
=textjoin(" ", true, a2:b2)
为了解决这个问题,你需要在加入日期之前将其转换成一个文本字符串。 在这里,带有所需格式代码(在我们的例子中是 "mm/dd/yyyy")的TEXT函数就派上用场了。
=TEXTJOIN(" ", TRUE, A2, TEXT(B2, "mm/dd/yyyy"))
合并带有换行符的文本
如果你想在Excel中合并文本,使每个值在一个新行中开始,请使用CHAR(10)作为分隔符(其中10是换行符)。
例如,如果要将A2和B2单元格中的文本合并起来,用换行符分隔这些数值,就可以使用这个公式。
=textjoin(char(10), true, a2:b2)
提示:要想让结果像上面的截图那样以多行显示,请确保 "包裹文本 "功能已打开。
TEXTJOIN IF,将文本与条件合并
由于Excel TEXTJOIN能够处理字符串数组,它也可以用来有条件地合并两个或多个单元格的内容。 要做到这一点,使用IF函数来评估一个单元格范围,并将满足条件的值数组返回给 文本1 TEXTJOIN的参数。
从下面的截图中显示的表格,假设你想检索一个列表,其中包括 团队1 为了实现这一点,将以下IF语句嵌套到 文本1 争论。
如果($b$2:$b$9=1, $a$2:$a$9, "" )
通俗地说,上面的公式是:如果B列等于1,则返回同一行中A列的一个值;否则返回一个空字符串。
的完整公式 团队1 采取这种形式。
=textjoin(", ", true, if($b$2:$b$9=1, $a$2:$a$9, "") )
以类似的方式,你可以得到一个以逗号分隔的列表,其中包括 团队 2:
=textjoin(", ", true, if($b$2:$b$9=2, $a$2:$a$9, "") )
注意:由于在Excel 365和2021中提供了动态数组功能,这可以作为一个普通的公式,如上面的截图所示。 在Excel 2019中,你必须按Ctrl + Shift + Enter快捷键将其作为一个传统的数组公式输入。
在逗号分隔的列表中查找并返回多个匹配项
你可能知道,Excel的VLOOKUP函数只能返回找到的第一个匹配项。 但如果你需要获得某个特定ID、SKU或其他东西的所有匹配项,该怎么办?
要在不同的单元格中输出结果,请使用《如何在Excel中VLOOKUP多个值》中描述的公式之一。
要查询并返回单个单元格中的所有匹配值作为逗号分隔的列表,请使用TEXTJOIN IF公式。
为了看看它在实践中是如何工作的,让我们从下面的样本表中检索一个由特定卖家购买的产品列表。 这可以通过以下公式轻松完成。
=textjoin(", ", true, if($a$2:$a$12=d2, $b$2:$b$12, "") )
其中A2:A12为卖家名称,B2:B12为产品,D2为感兴趣的卖家。
上述公式进入E2并带来D2(Adam)中目标卖家的所有匹配信息。 由于巧妙地使用了相对(针对目标卖家)和绝对(针对卖家名称和产品)的单元格引用,该公式正确地复制到下面的单元格,并对其他两个卖家也很好地工作。
注意:与前面的例子一样,这在Excel 365和2021中作为普通公式使用,在Excel 2019中作为CSE公式(Ctrl + Shift + Enter )使用。
该公式的逻辑与前面的例子完全相同。
IF语句将A2:A12中的每个名字与D2中的目标名字(在我们的例子中是亚当)进行比较。
if($a$2:$a$12=d2, $b$2:$b$12, "")
如果逻辑测试结果为TRUE(即D2中的名称与A列中的名称相匹配),该公式将返回B列中的一个产品;否则将返回一个空字符串("")。 IF的结果是以下数组。
{"";"";"Bananas";"Apples";"";"";"";"Oranges";"";"Lemons";""}
数组进入TEXTJOIN函数,作为 文本1 因为TEXTJOIN的配置是用逗号和空格(",")来分隔这些值,所以我们得到了这个字符串作为最终结果。
香蕉、苹果、橙子、柠檬
Excel TEXTJOIN不工作
当你的TEXTJOIN公式出现错误时,最有可能是以下情况之一。
- 当在不支持该函数的旧版Excel中使用TEXTJOIN时(2019年以前),或当该函数的名称拼写错误时,会出现#NAME? 的错误。
- #VALUE!如果产生的字符串超过了32,767个字符,就会发生错误。
- 如果Excel不能识别定界符为文本,例如,如果你提供了一些不可打印的字符,如CHAR(0),也可能出现#VALUE!错误。
这就是如何在Excel中使用TEXTJOIN函数。 感谢你的阅读,希望下周能在我们的博客上见到你
可用的下载
Excel TEXTJOIN公式实例