Excel中多条件查询
HDUZN

一般,原来在Excel中查询用的最多的就是vlookup,后来有了xlookup,很多时候更方便就用xlookup了。

不过 ,这都是针对一个条件的查询。

举个例子,比如要查询表格中某个人的总分。

因为,不同班级会有相同姓名的情况,所以不能直接按姓名来查询。
查询的时候需要两个条件:一个是班级,另一个是姓名,同时满足这两个条件才能查询到这个人。
(当然,假设同一个班级里没有相同姓名。如果同一个班级里都有相同姓名,多添加一列学号/序号就行了)

如下图所示:

思路:

  • 用 match 函数找到同时满足两个条件的索引号;
  • 用 index 函数通过索引号查询。

1.index 函数

功能:返回表元素或数组元素的值,该元素是通过行号和列号索引选定的。
语法:INDEX(array, row_num, [column_num])

我们会用到的就是在一列里的,所以举例都是一列中的。

举例(上面的表格)

1
2
INDEX(D2:D31,1) 表示D2:D31的单元格内容作为一个数组,取第1个值,即D2的值(388)
INDEX(D2:D31,3) 表示D2:D31的单元格内容作为一个数组,取第3个值,即D4的值(329)

那我们只需要这个学生对应的索引行号,就可以查询到了。用match函数。

2.match 函数

功能:在指定范围单元格中搜索特定的项,然后返回该项在此区域中的相对位置。
语法:MATCH(lookup_value, lookup_array, [match_type])

举例(上面的表格)

1
2
3
MATCH(F2,$B$2:$B$31,0) 表示在B2:B31中,查询F2(201)的位置,结果是:11(第1个201)
MATCH(G2,$C$2:$C$31,0) 表示在C2:C31中,查询G2(荀彧)的位置,结果是:1(第1个荀彧)
MATCH(F2&G2,$B$2:$B$31&$C$2:$C$31,0) 同时满足F2(201)和G2(荀彧),结果是:15

3.公式组合

同时满足班级:F2(201)和姓名:G2(荀彧)的条件,查询其总分的公式:

1
=INDEX($D$2:$D$31,MATCH(F2&G2,$B$2:$B$31&$C$2:$C$31,0))

返回的结果就是255。

如果3个条件的话,match函数查询索引号的时候,继续加一个条件就行。

PS.注意,我这里标题没算进去,所以起始行号都是第2行,即用match函数查询、index函数查询的时候起始行号要保持一致。要么都算标题行,要么都不算。因为match函数返回的是第几个。

  • 本文标题:Excel中多条件查询
  • 本文作者:HDUZN
  • 创建时间:2022-07-01 21:30:39
  • 本文链接:http://hduzn.cn/2022/07/01/Excel中多条件查询/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论