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