Hello,大家好,最近有粉絲問到:有沒有什麼簡單的方法,能在不添加輔助列的情況下快速地搞定多條件查詢,他覺得利用輔助列比較low。今天跟大家分享一種我覺得非常适合新手使用的方法,就是利用lookup函數,使用這個函數即使我們不理解公式的含義,隻需要記得固定的格式,直接套用即可,下面就讓我們來學習一下吧
一、認識lookup函數大多數人非常熟悉的vlookup函數,就是由lookup函數改進得來的,所以lookup函數也是一個查找函數。
Lookup函數:從單行或單列中查找數據
語法:=LOOKUP(lookup_value, lookup_vector, result_vector)
第一參數:需要查找值
第二參數:查找的數據區域,一行或者一列
第三參數:返回的結果列,需要注意的是第三參數的數據個數必須與第二參數的數據格式相等
在使用lookup之前,我們還需要對第二參數查找的數據區域進行升序排序,否則的話可能會返回錯誤的結果。還有一點需要注意的是lookup的查找原理與vlookup的近似匹配是一模一樣的,如果找不到精确的結果,lookup就會返回小于或等于查找值的最大值。下面我們來通過一個實際的例子來了解下lookup函數
二、使用lookup函數比如在這裡,我們想要求一下張飛的考核得分,如果我們不對數據區域進行升序排序,直接使用lookup函數來查找結果,公式為:=LOOKUP(L4,B2:B9,C2:C9),他的結果是208,這個結果并不是張飛對應的考核得分,當我們對查找區域進行升序排序後,才能找到張飛對應的195分,所以當我們使用lookup函數的時候,需要首先對查找數據區域進行升序排序。還有就是第三與第二參數的數據個數必須相等,否則的話函數就會返回錯誤值
三、利用lookup函數解決多條件查詢
1.為什麼要使用多條件查詢
在Excel中如果我們的查找值在查找區域中存在重複,那麼函數僅僅會返回第一個找到的結果,這樣的話就可能得到一個錯誤的結果
如下圖,李白是存在重複值的,在這裡我們想要查找3班李白的總分,如果僅僅将李白作為查找值,我們使用vlookup函數來查找數據他的結果是186,這個是1班李白對應的分數,并不是3班李白對應的分數,這樣的話結果就是錯誤的,之所以會産生這樣的結果的原因是因為186是第一個李白對應的數據
2.lookup多條件查詢
既然一個條件我們不能查找到精确的結果,那麼我們就要增加條件來獲得精确的結果,這個就是多條件查詢存在的意義
在這裡我們隻需要将公式設置為:=LOOKUP(1,0/((B2:B9=J4)*(C2:C9=K4)),D2:D9)然後點擊回車即可查找到正确的結果。這個函數是一個數組公式,理解起來可能比較困難,下面我們來剖析下這個函數的結構
公式:=LOOKUP(1,0/((B2:B9=J4)*(C2:C9=K4)),D2:D9)
第一參數:查找值,1
第二參數:查找的數據區域,0/((B2:B9=J4)*(C2:C9=K4))
第三參數:返回的結果列,D2:D9
主要跟大家講講解下他的第二參數,0/((B2:B9=J4)*(C2:C9=K4))這是一個數組公式,B2:B9=J4與C2:C9=K4會與數據區域的中的每一個元素都發生計算,如下圖所示
B2:B9=J4他的意思是:班級等于3班的,它的結果如下圖橙色區域所示,是一列邏輯值。C2:C9=K4的結果如下圖綠色區域所示,它的意思是姓名等于李白。随後将這兩列結果相乘,可以将fales看作是0,true看作是1,相乘之後會得到一列0和1的數字,隻有兩個條件都滿足它的結果才是1,最後我們再用0除以相乘結果,分母為0的話就會返回錯誤值,lookup會自動的将錯誤值忽略掉,這樣的話就僅僅隻剩0這個結果了,這樣的話也就不用進行升序排序了。這個就是第二參數的計算過程
如果你覺得這個函數比較難懂,隻需要記得這個公式的設置格式即可。格式為:=lookup(1,0/((條件1)*(條件2)*(條件3)),結果列)有幾個條件就設置幾個條件即可
以上就是今天分享的全部内容,怎麼樣?你學會了嗎?
我是Excel從零到一,關注我,持續分享更多Excel技巧
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!