Lookup函數是最牛的Excel查找函數,沒有之一。特別是lookup的(1,0/)模式橫掃無數查找難題,比如反向查找、多條件查找、查找最後一個等。但是大多數用戶只會套用,卻不懂為什麼會需要0和1。
Lookup函數的查找是這麼用的:通過一個足夠大的數(比範圍內所有數都大),返回最後一個值。無論你添加什麼類型數值,只要小於給定的值,都會返回最後一個。
此時,如果有錯誤值,它也会直接忽略。
這個忽略錯誤值的特徵非常重要,因為當根據條件查找時,只需要把不符合條件的全變成錯誤值,就可以用lookup查找後最後符合條件的数值出来。
那麼。不符合條件數值的怎麼變成錯誤值?我們往下看:
如下圖所示,要求根據姓名查找對應的工資,公式是:
=LOOKUP(1,0/(A2:A8=D2),B2:B8)
A2:A10=D2 是用A列的姓名和D2的姓名進行逐一對比,結果只有兩個:相同返回True,不同返回False。
在四則運算時,True相當於數字1,False相當於數字0,所以不符合條件的值變成了錯誤值,符合條件變成了0。
根據lookup忽略錯誤值、用足夠大的數查找最後一個數字的原理,就可以準時查找到符合符件的值。
=LOOKUP(1,{#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!},B2:B8)
那么,公式中為什麼用1和0,其他數字可以嗎?當然可以,只要第一個數字大於第二個數字。
如:=LOOKUP(9999999,9999998/(A2:A8=D2),B2:B8)
因此我们说,用1和0只是看著簡便而已。
所以利用這個原理,多列判斷也可以實現,只是添加對比條件而已。