龙空技术网

如何根据多个条件查找数据,我整理了三种方法

初风Excel表格教学 578

前言:

如今姐妹们对“c match”可能比较关心,小伙伴们都想要剖析一些“c match”的相关资讯。那么小编同时在网摘上汇集了一些关于“c match””的相关资讯,希望你们能喜欢,大家快快来学习一下吧!

一、案例

如下图所示,A1:C8为某小区住户信息表,要求根据楼栋和房号查询住户姓名。

二、解决方法

方法一、INDEX+MATCH函数

在G2单元格输入公式

=INDEX($C$2:$C$8,MATCH(1,($A$2:$A$8=E2)*($B$2:$B$8=F2),0))

按Ctrl+Shift+Enter结束公式输入。

公式解析:

(1)($A$2:$A$8=E2)*($B$2:$B$8=F2)用于判断A2:A8的楼栋号是否为“6”,且B2:B8的房间号是否为“303”。当这两个条件均满足时,公式返回“1”,否则返回“0”。返回的结果为{0;0;1;0;0;0;0}

(2)MATCH(1,($A$2:$A$8=E2)*($B$2:$B$8=F2),0)指按精确查找的查找方式在{0;0;1;0;0;0;0}中查找“1”。MATCH函数查找到的“1”在{0;0;1;0;0;0;0}的第3个位置处。

(3)INDEX函数则返回C2:C8区域第3行的数据,即“小乔”。

方法二、LOOKUP函数

在G2单元格输入公式

=LOOKUP(2,1/(($A$2:$A$8=E2)*($B$2:$B$8=F2)),$C$2:$C$8)

公式解析:

(1)1/(($A$2:$A$8=E2)*($B$2:$B$8=F2)) 用于判断A2:A8、B2:B8是否同时等于E2、F2指定的楼栋和房间号两个条件,返回结果为

{#DIV/0!;#DIV/0!;1;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!}。返回结果为“1”,说明与E2、F2指定的楼栋和房号相符;否则返回错误值。

(2)LOOKUP函数在

{#DIV/0!;#DIV/0!;1;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!}中查找“2”。由于无法查找到“2”,LOOKUP会查找到“1”,并返回与查找到的“1”相同位置的C2:C8中的值,即“小乔”。

方法三、VLOOKUP+IF函数

在G2单元格输入公式

=VLOOKUP(E2&F2,IF({1,0},$A$2:$A$8&$B$2:$B$8,$C$2:$C$8),2,FALSE)

按Ctrl+Shift+Enter结束公式输入。

公式解析:

(1)IF({1,0},$A$2:$A$8&$B$2:$B$8,$C$2:$C$8)用于构造如下图所示的内存数组:

$A$2:$A$8&$B$2:$B$8将两个查询条件所在的列合并为一列;C2:C8作为新生成的数据区域的第二列。

(2)VLOOKUP函数则在IF函数生成的内存数组中查询“6303”(即E2&F2的值),并返回第2列也就是“住户”所在列的值。

标签: #c match