excel教程:如何查询符合条件的多个结果

头像
讲师-郑春凤
2017-02-23 13:37:26

我们对数据进行查询时,经常会利用VLOOKUP。 但如果我们查询的条件结果有很多个,而不是一个,这时VLOOKUP就很难实现了,比如下图:846a590c03cdd61e104a552e3faea729001.jpg


  这一组数据区域是一份员工产品销售表,想要根据查询产品“电脑”的销售员姓名。


VLOOKUP只能返回查询区域的首个匹配查询结果,但我们这里数据区域电脑的销售员有很多个,想要返回查找值的多个结果。就需要用到另外的方法, 今天所要学习的是:INDEX+SMALL
 

 G2单元格输入这个数组公式:  =IFERROR(INDEX(B:B,SMALL(IF($A$1:$A$13=$F$2,ROW($1:$13)),ROW(A1))),"")

f1b59af331951b7d069815422df6787c001.jpg

 公式讲解:
        IF($A$1:$A$13=$F$2,ROW($1:$13))  用if函数判断A1:A13区域的值是否等于F2,如果等于则返回A列产品对应的行号,如果不等于返回FALSE。 按F9结果得到一个内存数组:{FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;7;FALSE;FALSE;10;FALSE;FALSE;FALSE}得出两个相等的行号,第7行和第10行

       SMALL函数对IF函数结果进行取数 ,公式向下填充,依次提取1,2,3……N个最小值,最后用INDEX根据SMALL函数提取的行号得出结果
       
      最后,当SMALL函数得到的结果为错误值时,表示符合条件的行号已被提取完,所以INDEX也会返回错误值,为了避免返回错误值,用IFERROR函数返回假空


结尾:为了方便查询各个产品的销售员,可以给F2单元格设置数据验证。 

ac7cbb45f744ba0894503d63555b9263003.gif


B_60.gif

全部回复
正序查看
头像
G35-11班九卿

看到数学  函数巴拉巴拉,,我好晕B_37.gif

2017-02-23 17:31:22
...
头像
讲师-郑春凤
O(∩_∩)O哈哈~
2017-02-23 19:17:10
...
头像
菜菜菜菜

B_77.gif

2017-02-23 18:25:01
...
头像
讲师-郑春凤
欢迎来坐板凳
2017-02-23 19:17:31
...
头像
菜菜菜菜
有网络教学真好
2017-02-23 20:21:42
...
头像
水姑凉

B_10.gif

2017-02-28 15:32:00
...
没有更多了