如下圖所示,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列也就是“住戶”所在列的值。
,