Excel / VLOOKUP / LOOKUP函數 (2024/2/26 修改)

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,以程式方式來處理

可能會更直覺、直觀