设置主页 | 收藏本站 Excel学习网-公益型的EXCEL在线学习网站,助您轻松办公!

excel2016一对多查询公式讲解

2021年11月26日 14:56 发布来源:Excel学习网

   我们在查询数据的时候,经常会用到VLOOKUP函数。

  但是有时候,我们会遇到这样的问题,在不止一个,而不是一个的情况下得到一个合格的结果。这个时候,VLOOKUP就会犯难了。

  比如下图,左边的A1:C10是学生列表。现在,根据单元格F1中“EH类”的指定条件,我们需要在单元格F2:F10中提取该类的所有学生列表。

20200103185000-5e0f8cd81a1de.jpg

  今天,我将讨论函数查询的一体化例程:Index  Small。

  在单元格F2中输入进行以下两个数组计算公式,按住Ctrl  Shift键,按回车键,然后通过向下可以填充:

  =index(B:B,small(if(A$1:A$10=F$1,row($1:$10),4^8),row(A1))),"")

  这个公式看起来比上面的VLOOKUP解决方案更苗条,更吸引眼球。坦白说,和我十年后明星的土匪号——吻合。

  1.公式解释

  if(a$1:a$10=f$1,row($1:$10),4^8)

  这部分先判断A1:A10的值是否等于F1。如果一个相等,则返回a列类对应的行号,否则我们返回4 8,即65536。通常,工作表的这个位置没有数据。

  结果是一个内存阵列:

  65536; 2; 3; 65536; 65536; 65536; 65536; 8; 65536; 10}

20200103185000-5e0f8cd838a85.jpg

  小函数取中频函数的结果数。随着公式的向下填充,第一、第二、第三.依次提取n个最小值,依次得到满足类条件的行号。

  然后,使用index函数,以small函数可以返回的行号之前作为一个索引值,在b列提取对应的名称结果。

  当SMALL函数得到的结果为65536时,表示合格的行号已经用完。此时index函数也返回单元格B65536的引用,结果是一个无意义的零。为了避免这个问题,您可以添加一个小尾巴“”

  使用””是避免出现无意义零值的聪明方法,但当搜寻结果是数字或日期时,这个方法会转换为文字值,不利于数据的准确表达和重新统计分析。

原创文章如转载请注明:转载自Excel学习网 [ http://www.excelcn.com/]
需要保留本文链接地址:http://www.excelcn.com/jiqiao/14180.html
分享到:
网站地图 | XML地图 | 免责声明 | 关于我们 | Excel学习网:优秀的EXCEL在线学习和资源分享网站。
版权所有: CopyRight © 2013-2018 www.excelcn.com All Rights Reserved.
豫ICP备12002644号