當你懂了lookup的查找原理,才能更好的使用它。二分法原理,一起學習一下。
從一個例子說起:
【例】下圖中兩個表只有第5行的會員名字有差異,在查找B的消費金額時,顯示結(jié)果卻不同,而左邊直接出現(xiàn)A的消費金額。
公式展示:
B11 =LOOKUP(A11,A2:B8)
E11 =LOOKUP(D11,D2:E8)
分析:
這里肯定不能直接用Lookup查找B,否則按二分位查找,結(jié)果不一定是最后一個。所以就用0除的方法把符合條件的變成0,不符合條變成錯誤值:
=0/(A2:A8=A11)
結(jié)果是
{0;0;#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!}
由于lookup會過濾掉錯誤值,所以在lookup眼中,上面的數(shù)組是這樣的:
{0;0;0}
然后用1查找最后一個0的位置
=Lookup(1,0/(A2:A8=A11),B2:B8)
這里1是任一個大于0的值,因為大于0,所以用二分法查找時,會一直向下查找,直到最后一個0值。
lookup的二分法查找,是跳躍式的查找。它總認為被查找的1組值是從小到大排列,如果遇到小的就向下找更大的,如果遇到大的就向上找更小的。