我又来教大家一对多查找了,今天教大家一个新函数,用这个函数实现一对多查找,且查找结果列在同一个单元格中,相较其他几种方法更为简单。
有关这个需求的其他解决方案,可参见
Excel – 用vlookup一对多查找,且结果汇总在同一个单元格中
Excel – 如何将同班同学名字汇总到同一个单元格中?
案例:
将下图 1 中的姓名按照班级提取到同一个单元格中,姓名之间用顿号隔开。效果如下图 2 所示。
解决方案:
1. 复制班级列至 D 列 --> 选择菜单栏的“数据”-->“删除重复项”将班级名去重,然后调整顺序 --> 复制“姓名”表头至 E1 单元格
2. 在 E2 单元格输入以下公式 --> 按 Ctrl+Shift+Enter 生成数组公式:
=TEXTJOIN("、",1,IF($A$2:$A$15=D2,B$2:B$15,""))
3. 下拉复制公式:
公式释义:
作用:
TEXTJOIN 函数的作用是将多个区域和/或字符串的文本组合起来,其中包括在文本值之间指定的分隔符。只有 Excel 2019 或 Office 365 版本才有 TEXTJOIN 函数。
语法:
TEXTJOIN(delimiter, ignore_empty, text1, [text2], …)
参数:
delimiter:必需,文本字符串,可以为空或一个或多个用双引号括起来的字符,或对有效文本字符串的引用。如果是数字,它将被视为文本。ignore_empty:必需,如果为 TRUE,则忽略空白单元格。text1:必需,要加入的文本项。通常是文本字符串或字符串数组,例如单元格区域。[text2], …:可选,要加入的其他文本项。文本项最多可以包含 252 个文本参数,其中包括 text1。每个文本参数都可以是文本字符串或字符串数组,例如单元格区域。
本例用法详解:
IF($A$2:$A$15=D2,B$2:B$15,""):以 E2 单元格为例,选中 if 函数部分,按 F9 看一下结果就能一目了然理解这部分公式作用将 D2 的班级名称与 A 列依次匹配,如果班级相同,则依次提出 B 列对应的姓名
TEXTJOIN("、",1,...):对应上述参数描述可以知道,这部分公式含义如下:将 if 函数提取的内容连接起来"、":用“、”作为分隔符1:忽略空白单元格
本案例的详解至此已经结束了。textjoin 是个比较新的函数,为了更好地帮助大家理解其用法,下面再用一个示例来帮助大家加深理解。
用法示例:
如下图所示,如果要将这一列不连续的区域合并到一个单元格里,用 textjoin 函数就非常容易。
在目标单元格内输入以下公式即可:
=TEXTJOIN("",1,H1:H4)
公式释义:
将 H1:H4 区域内的单元格组合起来,不加分隔符,且忽略空白单元格