Excel中lookup函數的用法詳解

lookup函數強大功能令我們眼花繚亂,大部分用戶只停留在套用階段,至於運算原理卻沒幾個人能說明白。想了解lookup的查找原理和更深入的使用它,你必須瞭解今天要學習的二分法原理。

從一個例子說起:

【例】下圖中左表和右表只有第5行的會員名子不同,但在第11行查找B對應的消費金額時結果卻不同。甚至左表中查找到的是會員A的消費金額。

公式:

B11 =LOOKUP(A11,A2:B8)

E11 =LOOKUP(D11,D2:E8)


一、什麼是二分法

從前向後一個一個的查找,是遍歷法。二分法不是這樣,它是從二分位處查找,如果查找不到再從下一個二分位處查找,直到查找到和他大小相同或比它小的數。

二、基本原理

想了解二分法,必須瞭解下面2個原理。

1、二分位的判定

說白了,二分位就是中間的位置,如果有7個數(lookup函數的第2個參數的總行數),那麼第4個數就是中間的位置。

=LOOKUP(A11,A2:B8)

Excel中lookup函數的用法詳解

如果有10個數呢,則第5個位置是二分位。這裡有一個公式可以計算出來。

=INT((總行數+1)/2)

2、查找方向確定

當在二分位查找不到時,接下來該怎麼查找呢?

當上一次二分位值大於查找的值時,向上繼續查找,在二分位上面區域找出新的二分位,直到找出符合條件的值。如下圖中,先從第5行查,因為C>B,所以就向上繼續查,上面區域D2:D4區域的二分位值是D3,而D3的值是B,則對應的E列值800是是查找結果。

Excel中lookup函數的用法詳解

當數值小於查找的值時,向下繼續按二分法查。如下圖中,先查找第5行,發現AB,所以A7的A最終符合條件(查找到和目標值相等,或比目標值小的值)

Excel中lookup函數的用法詳解

當二分值等於查找的值時,向下逐個查,最後相鄰且相等的值即符合條件。

如下圖所示,在A5(第1個二分位)查找到了A,本來查找結果應該是B5的860,但由於A6的值也是A,所以查找結果變成了第6行的值。而A8雖然也是A,但和A5不是連續相等區域。所以結果不是B8。

Excel中lookup函數的用法詳解

三、lookup示例解析

1、區間查找。

【例1】如下圖所示,是典型的區間查找公式。查找350對應的提成比率是7%。

Excel中lookup函數的用法詳解

查找過徎:

從第1個二分位處(A4)處開始查找,200<350,向下查找。

在第2個二分位處(A6)的值400>350,所以要向上查,上面只有A5一個值300,且該值小於350,所以B5的值即為最終查找結果。

2、查找最後一個。

【例2】如下圖所示,查找顧客A最後一次的消費金額。

Excel中lookup函數的用法詳解

分析:

這裡肯定不能直接用Lookup查找B,否則按二分位查找,結果不一定是最後一個。所以就用0除的方法把符合條件的變成0,不符合條變成錯誤值:

=0/(A2:A8=A11)

結果是

{0;0;#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!}

由於lookup會過濾掉錯誤值,所以在lookup眼中,上面的數組是這樣的:

{0;0;0}

然後用1查找最後一個0的位置

=Lookup(1,0/(A2:A8=A11),B2:B8)

這裡1是任一個大於0的值,因為大於0,所以用二分法查找時,會一直向下查找,直到最後一個0值。

提醒:lookup的二分法查找,是跳躍式的查找。它總認為被查找的1組值是從小到大排列,如果遇到小的就向下找更大的,如果遇到大的就向上找更小的。


Excel中lookup函數的用法詳解


即可領取一整套【獨家打包資料/思維導圖/必過題庫/財務模板】等資料!

還可以免費試學會計課程15天


分享到:


相關文章: