Excel中多條件查找對滿足兩個以上條件的數據進行查找並引用
在Excel中,如果根據某一個條件,查找表中的值,這是一件較為容易的事情,MATCH()、INDEX()、LOOKUP()、VLOOKUP()、HLOOKUP()等函數均可較為容易的實現。但如果要進行滿足多條件查找,則是一件不容易的事情,而工作中會經常遇到需要對滿足兩個以上條件的數據進行查找並引用的問題,本節提供多種方法如:數組公式、VLOOKUP函數、INDEX和MATCH函數等等,大家可以根據情況選擇。SHEET1工作表內容如圖:
現在要求在SHEET2工作表的A、B列輸入有關內容後,C列自動從SHEET1工作表中查找並引用相應的C列的內容。SHEET2工作表如圖:
SHEET2工作表C1單元格使用以下數組公式,可達到目的:
=IF(OR(A1="",B1=""),"",OFFSET(Sheet1!$C$1,SUM(IF((Sheet1!A$1:A$1000=A1)*(Sheet1!B$1:B$1000=B1),ROW(Sheet1!C$1:C$1000),0))-1,0,1,1))
注意:輸入完公式後要按Ctrl+Shift+Enter鍵,讓它自動加上數組公式符號"{}"。
用VLOOKUP函數解決方法:
=IF(OR(A1="",B1=""),"",VLOOKUP(A1&B1,IF({1,0},Sheet1!A$1:$A$1000&Sheet1!B$1:B$1000,Sheet1!C$1:C$1000),2,0))
用INDEX和MATCH函數解決方法:
=IF(OR(A1="",B1=""),"",INDEX(Sheet1!C$1:C$1000,MATCH(A1&B1,Sheet1!A$1:A$1000&Sheet1!B$1:B$1000,0)))
這兩個也是數組公式。
另提供兩個不用數組公式的解決方法:
=IF(OR(A1="",B1=""),"",INDIRECT("Sheet1!$C"&SUMPRODUCT((Sheet1!A$1:A$1000=A1)*(Sheet1!B$1:B$1000=B1)*ROW(Sheet1!C$1:C$1000))))
=IF(OR(A1="",B1=""),"",LOOKUP(2,1/((Sheet1!A$1:A$1000=A1)*(Sheet1!B$1:B$1000=B1)),Sheet1!C$1:C$1000))
推薦使用VLOOKUP的應用,而且不用太多改變原資料庫。
增加對#N/A的判斷函數:
更改函數如下(數組函數)
=IF(ISERROR(VLOOKUP(A1&B1,IF({1,0},Sheet1!A$1:$A$1000&Sheet1!B$1:B$1000,Sheet1!C$1:C$1000),2,FALSE)),"",VLOOKUP(A1&B1,IF({1,0},Sheet1!A$1:$A$1000&Sheet1!B$1:B$1000,Sheet1!C$1:C$1000),2,0))
如果該位置顯示為0 可以使用「條件格式……」 當該格=0時,字體顏色同背景色。
推薦閱讀:
※用sumif函數同時加總兩種情況下的數據之和
※『中國網民上海失眠比率最高』今日數據行業日報(2017.03.20)
※今日數據行業日報(2017.7.19)
※數據與前端
※10大身體健康數據,每個人都不應不知道