桓楠百科网

编程知识、经典语录与百科知识分享平台

Excel – 用vlookup一对多查找,且结果汇总在同一个单元格中

关于一对多查找的方法,我写过很多种,可以翻看历史记录学习回顾一下。

如果不仅要一对多查找,还要求把同类查找结果列在同一个单元格中,怎么实现呢?我曾经教过大家 Power Query 的方式,过程中需要重新设置 Power Query 的 M 函数,具体可参见 Excel – 如何将同班同学名字汇总到同一个单元格中?

但是有些同学对于 Power Query 的函数还是比较陌生,希望能通过 Excel 函数来实现这个需求。

那今天就教大家用人人都会的 vlookup 函数来解这道题。

案例:

下图 1 是原始表格,请将同班同学的名字查找出来,汇总在“姓名”列的同一个单元格中,中间用“、”隔开,效果如下图 2 所示。

解决方案:

1. 将 C 列用作辅助列,在 C10 单元格输入公式:

=B10

2. 在 C2 单元格输入以下公式,向下拖动复制公式至 C9 单元格:

=B2&IFERROR("、"&VLOOKUP(A2,A3:$C$10,3,0),"")

公式释义:

  • VLOOKUP(A2,A3:$C$10,3,0):这个公式非常巧妙,需要在整列中从下往上理解
  • A2:要查找的值,即当前行的班级名
  • A3:$C$10:查找区域,请注意以下几点:
  • 区域的行自下一行开始,至整个表格的末行
  • 起始行是动态的,需要相对引用;而末行是固定不变的,需要绝对引用
  • 区域的列包括 C 列本身
  • 3:返回值的列号;区域中的第 3 列为 C 列
  • 因此,整个 vlookup 函数的用意是:向下查找跟当前行同班的同学姓名
  • IFERROR("、"&...,""):如果向下查找到同班同学,则在前面加上“、”号,查不到就显示空值
  • B2&...:最后用 & 符号将本行的同学名跟上述结果连接显示在同一个单元格中

3. 最后在 H2 单元格用最基础的 vlookup 函数按班级查找 C 列的值,就得出了结果:

=VLOOKUP(G2,$A$2:$C$10,3,0)

公式释义:

  • 由于 vlookup 函数精确查找会返回第一个查找结果,而辅助列 C 中,最完整的学生姓名恰好出现在第一个重复班级名所在的行,所以这里的 vlookup 函数就用最常规用法就可以了

很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言