我又来教大家一对多查找了,今天教大家一个新函数,用这个函数实现一对多查找,且查找结果列在同一个单元格中,相较其他几种方法更为简单。
有关这个需求的其他解决方案,可参见
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 区域内的单元格组合起来,不加分隔符,且忽略空白单元格
很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。
现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。