對于 Excel 初級玩家來說,他們都會接觸到一個查找函數(shù) Vlookup。
愛在它強(qiáng)大的查找功能,恨在使用它的時候特別容易出錯。在所有函數(shù)里邊,它的參數(shù)個數(shù)太多,語法真的太難記!Vlookup 函數(shù)共有 4 個參數(shù),先來瞧瞧它的基本語法:=VLOOKUP(lookup_value,table_array,col_index_num,[range-lookup])
函數(shù)參數(shù)越多,就越容易出錯。我曾經(jīng)還總結(jié)過,使用 Vlookup 經(jīng)常犯的五大錯誤。這里用到 Lookup 函數(shù)的數(shù)組形式:在數(shù)組的第一行或第一列查找指定值,并返回數(shù)組最后一行或最后一列中對應(yīng)位置的值。
=LOOKUP(lookup_value, array)
公式中 E3 為查找值,B3:C12 為數(shù)組。Lookup 函數(shù)從姓名列查找 E3 的值('萬陽'),返回年齡列對應(yīng)的值 66。下面有一張表,現(xiàn)在要根據(jù)年齡來劃分組別。=LOOKUP(C3,{0,7,18,41,66},{'童年','少年','青年','中年','老年'})
▲ 左右滑動查看
這里用到 Lookup 函數(shù)的向量形式:在一行或一列中查找值,返回另一行或另一列對應(yīng)位置的值。
Lookup 函數(shù)向量形式的語法規(guī)則:=LOOKUP(lookup_value, lookup_vector, [result_vector])
=LOOKUP(查找值,查找區(qū)域,返回結(jié)果區(qū)域)
公式中查找值是 C3,查找區(qū)域是{0,7,18,41,66},返回結(jié)果區(qū)域是{'童年','少年','青年','中年','老年'}Lookup 函數(shù)在「查找區(qū)域」查找 小于或等于 「查找值」10 的值是 7,并返回「返回結(jié)果區(qū)域」對應(yīng)的值:'少年'。有時候用 Lookup 函數(shù)在查找某個人年齡的時候,返回的結(jié)果卻出錯了,這是為什么呢?=LOOKUP(F3,B3:B12,D3:D12)
正確的答案應(yīng)該是 85,但是結(jié)果卻是 27,一定是哪里出問題了,但是細(xì)看公式又沒有問題。其實,出錯的原因在于 Lookup 函數(shù)的第 2 參數(shù):查找區(qū)域必須是「升序」排序。所以我們在使用 Lookup 函數(shù)的時候,需要事先對第二參數(shù)的區(qū)域進(jìn)行排序。如果不想要事先進(jìn)行升序排序,可以使用如下的經(jīng)典用法:=LOOKUP(1,0/(條件=條件區(qū)域),返回區(qū)域)
PS:經(jīng)典用法,主要利用了 Lookup 可以忽略錯誤值的特點。? Lookup 函數(shù)可以分為數(shù)組型查找和向量型查找兩種形式。=LOOKUP(lookup_value, array)
=LOOKUP(lookup_value, lookup_vector, [result_vector])
=LOOKUP(查找值,查找區(qū)域,返回結(jié)果區(qū)域)
? 由于 Lookup 函數(shù)使用二分法的形式進(jìn)行查找,所以在使用 Lookup 函數(shù)時,第二參數(shù)需要注意進(jìn)行升序排序。若想在未排序中查找,可以用如下經(jīng)典用法:=LOOKUP(1,0/(條件=條件區(qū)域),返回區(qū)域)
好了,本文到這里先結(jié)束了,關(guān)于 Lookup 函數(shù)更多用法詳細(xì)解析,我們下一篇文章接著繼續(xù)探討~
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。