玩轉VLOOKUP 之 提取多個符合條件的結果
大名鼎鼎的VLOOKUP函數是表親的好夥伴,遇到數據查詢的時候,總離不開她。
但是VLOOKUP函數也有一定的局限性,通常情況下,只能返回符合條件的單個結果,如果有多個符合條件的結果,如何用VLOOKUP提取呢?
先來看一段動畫吧:
輔助列中用到的公式是:
=COUNTIF(B$2:B2,F$1)提取結果的公式是:
=IFERROR(VLOOKUP(ROW(A1),A:C,3,0),"")
先簡單說說輔助列中公式的意思。
用COUNTIF函數在B$2:B2這個區域內統計查詢值(F1單元格)出現的次數。
這個B$2:B2是有講究的,第一個B2是行絕對引用,第二個B2是相對引用,這樣公式在向下複製時,就依次變成了B$2:B3、B$2:B4、B$2:B5……。
也就是隨著公式向下複製,給COUNTIF函數指定一個逐行擴展的引用區域。
COUNTIF函數能夠統計B列從B2單元格開始,到公式所在行這個範圍中,與查詢值相同的個數。
如果查詢值在B列是第一次出現,結果就是1;如果是第二次出現,結果就是2……
假如只有兩個符合條件的結果,查詢值出現之後的其他內容,結果仍然是2.
再來說說查詢用到的公式:
=IFERROR(VLOOKUP(ROW(A1),A:C,3,0),"")
公式中的ROW(A1)部分,公式向下複製時,依次變為ROW(A2)、ROW(A3)……,結果得到1、2、3……的遞增序列。
VLOOKUP函數使用這個遞增序列作為查詢值,在A:C列中,以精確匹配的方式返回與序號相對應的姓名。
注意查找區域必須由輔助列A列開始哦,否則咱們的輔助列就白瞎了。
由於VLOOKUP函數默認只能返回第一個滿足條件的記錄,因此得到序號第一次出現的對應結果,也就是與F1單元格班級相同的對應姓名。
當ROW函數的結果大於A列中的最大的數字時,VLOOKUP函數會因為查詢不到結果而返回錯誤值#N/A,IFERROR函數用於屏蔽錯誤值,使之返回空文本""。
怎麼樣,你理解了嗎?還是那句話,光說不練假把式,動手試試吧。
動畫:看見星光
圖文:祝洪忠
一大波免費公開課,精彩即將開啟
點左下角【閱讀原文】立刻報名免費公開課吧!
推薦閱讀:
※最適合做夫妻的十個條件,你們具備幾個?
※孩子愛上自我閱讀需要的三個條件
※【情感導航---孩子頂撞媽媽是有條件的】
※八字中的「從印」格,需要怎樣的條件?
※excel多條件專輯