我又来教大家一对多查找了,今天教大家一个新函数,用这个函数实现一对多查找,且查找结果列在同一个单元格中,相较其他几种方法更为简单。

有关这个需求的其他解决方案,可参见

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 高手。