Excel 多個條件,透過VLOOKUP / LOOKUP函數尋找一個值
其實就是把多個條件合併成一個條件
例如:
條件1+條件2→社區+戶型,回傳符合條件的價格
使用VLOOKUP 函數
H2=VLOOKUP(F2&G2,CHOOSE({1,2},$A$2:$A$10&$B$2:$B$10,$C$2:$C$10),2,0)
先利用CHOOSE函數-CHOOSE(index_num, value1, [value2], …)
如果 index_num 是個陣列,評估 CHOOSE 時會評估陣列中的每個數值
白話來說就是會得到所有評估值的陣列結果,並且會依據 index_num來組合陣列
所以這個例子會得到條件1( 社區)、條件二(戶型),與對應結果(價格)形成的一個參照範圍{條件1&條件2 , 對應結果}
這樣就可以在VLOOKUP作為查閱值的參照範圍,取得傳回值
使用LOOKUP 函數
I2=LOOKUP(1,0/(A2&B2 = F2 &G2),C2)
J3=LOOKUP(1,0/($A$2:$A$10&$B$2:$B$10=F2&G2),$C$2:$C$10)
兩個公式的結構其實是一樣的,J3是陣列公式,所以除了比對值之外,都是範圍
這邊利用 LOOKUP如果找不到相同的目標值時,會返回小於目標值的最大值(不適用於 0/條件,而是區間查找,可以參考Lookup函數最經典的14種用法)
在第二個參數 0/條件
如果 條件 有符合值,會得到True,0/True=0
沒有符合值,會得到False,0/False會得到#N/A 的錯誤值
如果是陣列公式,就會得到所有的返回值,會是由0或 #N/A組合的陣列
後記
其實如果使用VBA,以程式方式來處理
可能會更直覺、直觀