一、lookup函數(shù)向量形式使用方法
lookup函數(shù)向量形式是在一行或一列中查找值,返回另一行或另一列對應(yīng)位置的值。
(一)lookup函數(shù)向量形式的語法規(guī)則
表達式為:=LOOKUP(lookup_value, lookup_vector, [result_vector])
中文表達為:=LOOKUP(查找值,查找區(qū)域,返回結(jié)果區(qū)域)
(二)表達式說明
1、lookup_value 為查找值,是必選項;可以是對單元格的引用、數(shù)字、文本、名稱或邏輯值。
2、lookup_vector 為查找區(qū)域,是必選項;只能是一行或一列;查找區(qū)域的值必須按升序排列,否則可能返回錯誤的結(jié)果;可以是對單元格引用、數(shù)字、文本、名稱或邏輯值,文本不區(qū)分大小寫。
3、[result_vector] 為返回結(jié)果區(qū)域,是可選項(即可填可不填);只能是一行或一列,且與查找區(qū)域大小要相同;如果返回結(jié)果區(qū)域為一個單元格(如 A2 或 A2:A2),則默認為行(即橫向),相當(dāng)于 A2:B2。
注意:
A、如果找不到查找值,lookup函數(shù)會返回小于或等于查找值的最大值。
B、如果查找值小于查找區(qū)域的最小值,lookup函數(shù)會返回 #N/A 錯誤。
(三)lookup函數(shù)的使用方法舉例與查找原理說明
實例一:從服裝銷量表中查找價格為39元的服裝
1、框選 E2:E10,選擇“數(shù)據(jù)”選項卡,單擊“升序”排序圖標(biāo),彈出“排序提醒”窗口,選擇“擴展選定區(qū)域”,單擊“確定”,把“價格”列按升序排列;把公式 =LOOKUP(A13,E2:E10,B2:B10) 復(fù)制到 B13 單元格,按回車,則返回“白色T恤”,操作過程步驟,如圖1所示:
圖12、公式說明
公式中 A13 為查找值,E2:E10 為查找區(qū)域,B2:B10 為返回結(jié)果區(qū)域,查找區(qū)域與返回結(jié)果區(qū)域都為列,并且查找區(qū)域按升序排列。
3、查找原理說明
A、lookup函數(shù)用折半查找(即二分查找)來搜索要找的值。折半查找的算法為:每次用查找區(qū)域的數(shù)值的個數(shù)除以2,取得中間值的下標(biāo),根據(jù)下標(biāo)取出中間值與要查找值比較;如果查找值等于中間值,則找到返回;如果查找值小于中間值,則在中間值前面繼續(xù)折半查找;如果查找值大于中間值,則在中間值后面繼續(xù)折半查找;一直到找完所有數(shù)值。
B、如果查找區(qū)域的數(shù)值是奇數(shù)個,則折半后恰是中間哪個值;如果查找區(qū)域的數(shù)值是偶數(shù)個,折半后有兩個中間值,則取左邊(或上邊)哪個與查找值比較。
C、由于查找區(qū)域的值按升序排列,因此,每次折半總能把查找值分到它可能在的一邊;如果在沒有按升序排序的區(qū)域中查找,則無法確保把查找值分到它可能在的一邊,從而導(dǎo)致找到錯誤的結(jié)果。
D、如果查找過程中遇到錯誤值或空,則會忽略繼續(xù)折半查找。若找不到查找值,則會返回小于或等于查找值的最大值。
E、實例中“價格列”共有9個值,即 35、35、36、38、39、49、85、86、98,第一次折半后恰好是要查找的值 39,因此第一次就找到。如果要找 86,第一次也找到 39;由于 86 大于 39,因此在后半段 39、49、85、86、98 中繼續(xù)折半查找,第二次找到85;由于 86 大于 85,因此第三次在 85、86、98 中繼續(xù)折半查找,折半后恰好找到 86。
實例二:查找近似值(找查找區(qū)域中沒有的值)
1、假如要查找價格為 50 元的服裝。把公式 =LOOKUP(A13,E2:E10,B2:B10) 復(fù)制到 B13 單元格,如圖2所示:
圖22、按回車,則返回“黑色T恤”,如圖3所示:
圖33、服裝銷量表中并沒有價格為 50 元的服裝,返回的“黑色T恤”價格為 49 元,這正驗證了如果找不到查找值,返回小于或等于查找值(50)的最大值。
實例三:查找比查找區(qū)域中最小還小的值
1、假如要查找價格為 24 元的服裝。同樣把公式 =LOOKUP(A13,E2:E10,B2:B10) 復(fù)制到 B13 單元格,如圖4所示:
2、按回車,則返回 #N/A 錯誤,如圖5所示:
圖53、服裝銷量表中價格最低的為 35 元,而現(xiàn)在要找價格為 24 元的服裝,24 小于 35,因此返回 #N/A 錯語;這驗證了查找值小于查找區(qū)域的最小值時將返回 #N/A 錯誤。
二、lookup函數(shù)數(shù)組形式使用方法
lookup函數(shù)的數(shù)組形式是在數(shù)組的第一行或第一列查找指定值,并返回數(shù)組最后一行或最后一列中對應(yīng)位置的值。
(一)lookup函數(shù)數(shù)組形式的語法規(guī)則
表達式為:=LOOKUP(lookup_value, array)
中文表達為:=LOOKUP(查找值,數(shù)組)
(二)表達式說明
1、lookup_value 為在數(shù)組中的查找值,是必選項;可以是對單元格的引用、數(shù)字、文本、名稱或邏輯值。
2、array 為數(shù)組,是必選項;它是行和列中值的集合;數(shù)組的值必須按升序排列,否則會返回錯誤的結(jié)果;可以是對單元格的引用、數(shù)字、文本、名稱或邏輯值,文本不區(qū)分大小寫。
3、注意
A、如果找不到查找值,與向量形式一樣會返回小于或等于查找值的最大值。
B、如果查找值小于第一行或第一列的最小值,lookup函數(shù)會返回 #N/A 錯誤。
C、如果數(shù)組的列數(shù)大于行數(shù),則lookup函數(shù)會在第一行中查找要找的值。如果數(shù)組的行數(shù)大于列數(shù),則lookup函數(shù)會在第一列中查找要找的值。
D、lookup函數(shù)總是返回行或列中最后一個值。
(三)向量形式lookup函數(shù)的使用方法舉例
實例一:
1、假如要在服裝銷量表的 A2:E10 這片區(qū)域查找編號為 WS-581 的服裝??蜻x A2:A10,選擇“數(shù)據(jù)”選項卡,單擊“升序”圖標(biāo),則把所有服裝按升序排列;在 A13 單元格中輸入 WS-581,繼續(xù)在 B13 單元格輸入公式 = LOOKUP(A13,A2:E10),按回車,則返回 38,這正是編號為 WS-581 服裝的價格;操作過程步驟,如圖6所示:
圖62、公式說明
公式中 A13 為查找值,A2:E10 為數(shù)組,共由五列組成,查找前必須對它們按升序排序,否則可能返回錯誤的結(jié)果。
實例二:近似查找
1、假如要在服裝銷量表中查找編號為 S-39 的服裝。在 A13 單元格輸入編號 S-39,然后在 B13 單元格輸入公式 =LOOKUP(A13,A2:E10),按回車,則返回 98;操作過程步驟,如圖7所示:
圖7提示:查找前同樣需要對編號進行升序排序,由于前面已經(jīng)排好序,因此這里省略了排序操作。
2、為什么會返回98?從26個字母排序可知,S 在 N 與 W 之間,當(dāng)找不到要找的編號時,返回小于或等于要找值的最大值,而小于編號 S-39 的編號共有三個,分別為 NS-281、NS-286 和 NS-832,而 NS-832 最大,又根據(jù) lookup函數(shù)總是返回行或列中最后一個值,因此返回 98。
三、lookup函數(shù)與vlookup函數(shù)的區(qū)別
lookup函數(shù)相當(dāng)于vlookup函數(shù)的近似匹配;lookup主要用于查找一行或一列,vlookup即可用于查找一行一列,也可用于查找多行多列,功能比 lookup 強大得多。
聯(lián)系客服