Lookup函數是典型的查找引用函數,今天,小編帶大家進一步了解Lookup函數的典型用法。
一、Lookup函數功能及語法結構。
功能:從單行或單列或數組中查找符合條件的值。
語法結構:從功能中可以看出,語法結構對應的有2種,一種是從單行單列中查詢,另一種是從數組中查詢,所以對應的語法結構也有2種。
1、向量形式:=Lookup(查找值,查找值數據範圍,[返回值範圍])。
解讀:當“查找值”和“返回值”的數據範圍相同時,可以省略[返回值範圍]。
2、數組形式:=Lookup(查找值,數據範圍)。
解讀:此處的“數據範圍”必須同時包含“查找值”和“返回值”的數據範圍,而且“查找值”必須是“數據範圍”的第1列,“返回值”必須是“數據範圍”的最後1列。
目的:根據員工的姓名查詢對應的“月薪”。
方法1:
在目标單元格中輸入公式:=LOOKUP(J3,$B$3:$B$12,$G$3:$G$12)。
解讀:
此方法是向量形式。
方法2:
在目标單元格中輸入公式:=LOOKUP(J3,$B$3:$G$12)。
解讀:
此方法為數組形式,查詢值“J3”的值在B列,即數據範圍的首列,返回值在G列,即數據範圍的最後1列。
二、Lookup函數的“缺陷”及解決技巧。
細心的親應該已經發現,使用上述的方法在查詢引用時,部分查詢結果不正确,例如查詢“袁術”的“月薪”時,返回值為“3762”,但實際月薪為:2722;Why????究其原因是Lookup函數的特點決定的,在使用Lookup函數查詢引用時,必須以“查詢值”所在的列為“主要關鍵字”升序排序,以“查詢值”所在的列為“主要關鍵字”升序排序,以“查詢值”所在的列為“主要關鍵字”升序排序,即“先排序,後查詢”。
目的:根據員工的姓名查詢對應的“月薪”。
方法:
在目标單元格中輸入公式:=LOOKUP(J3,B$3:B$12,G$3:G$12)或=LOOKUP(J4,B$3:G$12)。
解讀:
使用排序的方法雖然可以達到預期的效果,但畢竟多了一個操作,也不是特别方便,如果不想排序,就可以使用“變異”的向量形式。
原理:當Lookup函數找不到對應的查詢值時,則“自動向下”匹配,即查詢小于或等于當前值的最大值,
目的:根據員工的姓名查詢對應的“月薪”。
方法:
在目标單元格中輸入公式:=LOOKUP(1,0/($J$3=$B$3:$B$12),$G$3:$G$12)。
解讀:
1、不用提前升序排序。
2、從上述的公式中不難發現,“變異”查詢的本質還是向量形式,查詢值為1,查詢範圍為:0/($J$3=$B$3:$B$12),返回值範圍為:$G$3:$G$12。當J3單元格的值等于B3:B12範圍中的值時,返回1,0/1返回0;而不等于是,返回0,0/0返回錯誤值,所以查詢值範圍是由一個0和多個錯誤值構成的數組,根據Lookup函數的向下匹配原則,則返回查詢值中等0對應的返回值。
三、應用案例。
1、多條件查詢。
目的:根據員工的姓名和學曆查詢對應的“月薪”。
方法:
在目标單元格中輸入公式:=LOOKUP(1,0/((J$3=B$3:B$12)*(K$3=F$3:F$12)),G$3:G$12)。
解讀:
多條件查詢的原理可以參閱“變異”查詢的原理,1*1=1、0*1=0、0*0=0;即隻有當多個條件同時成立時,總條件才成立。
2、逆向查詢。
目的:通過員工姓名查詢對應的工号。
方法:
在目标單元格中輸入公式:=LOOKUP(1,0/(K$3=C$3:C$12),B$3:B$12)。
解讀:
多條件的逆向查詢原理相同哦!
3、區間(等級)查詢。
目的:根據等級劃分數據返回“月薪”對應的等級。
方法:
在目标單元格中輸入公式:=LOOKUP(H3,K$3:K$6,L$3:L$6)。
解讀:
區間查詢的原理其實就是向下查詢,返回對應的值。
4、填充合并單元格。
目的:快速填充“學曆”列的合并單元格。
方法:
在目标單元格中輸入公式:=LOOKUP("一",G$3:G3)。
5、返回指定列最後一個非空單元格的值。
方法:
在目标單元格中輸入公式:=LOOKUP(1,0/(G$3:G$12<>""),G$3:G$12)。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!