點選「預約」按鈕,預約Excel直播免費學習
小夥伴們,你們好呀!
VLOOKUP函式大家都會用,通常用來 一對一 匹配。
遇到 一對多 的問題,很多人就不知道該怎麽辦了。
其實加一個 輔助列 的話,用VLOOKUP很容易就能搞定 一對多的匹配問題 。
今天就這個問題介紹 兩個思路 ,希望能對大家有所幫助。
先來看看一對多匹配的 效果圖 :
思路一
1.添加一個輔助列A列,並在A2中輸入公式:=B2&COUNTIF($B$1:B2,B2),然後下拉填充。
公式解析:
①COUNTIF函式實作的是對某個區域中的某個值進行計數,所以COUNTIF($B$1:B2,B2)實作的是一個編號的效果。
②公式中的區域寫法是$B$1:B2,當公式下拉的時候,區域的範圍會隨著增加。得到的結果就是輔助列中部門後面的那些數位,表示部門是第幾次出現。
③用&符號把部門和第幾次出現連線起來,作為VLOOKUP的尋找範圍的首列。
2.在單元格F2中建立下拉選單,在單元格G2中輸入公式:=IFERROR(VLOOKUP($F$2&ROW(A1),$A:$D,COLUMN(C1),0),""),把公式往右填充至H列,再往下填充,就實作一對多的匹配。
公式解析:
①在VLOOKUP($F$2&ROW(A1),$A:$D,COLUMN(C1),0)這部份,尋找條件是$F$2&ROW(A1)。
②F2是要尋找的部門,ROW(A1)是A1單元格的行號,也就是1,下拉時會變成2、3……,組合以後會形成和輔助列類似的結果,即「部門名稱」+「行號序列」,此時就實作了將一對多匹配的問題變成一對一匹配的問題。
③COLUMN(C1)是為了方便公式可以右拉到H列,不用再為H列重新編寫公式。
④IFERROR讓公式不顯示錯誤值。
思路二
1.添加一個輔助列A列,並使用公式:=A1+(B2=$F$2)
這是什麽意思?
其實在這個公式中,是利用了比較運算得到一個邏輯值,再利用邏輯值計算得到一組數位。
公式解析:
這一組數位和方法1中的數位含義有些類似,也是要尋找的部門出現的次數,只不過是反推。即當F2中出現了數據,且透過邏輯判斷在B列中找到時,再與當前單元格相加。比如,下圖中,當F2為「銷售部」時,B列有相同的單元格時,相對應的A列單元格內依次計數為1—4;當B列沒有與之相同的單元格時,相對應的A列單元格內顯示為0。
區別在於,方法1是透過將部門名稱與出現次數合並實作了把一對多匹配變成一對一匹配,方法2是利用VLOOKUP的一個特性:當要找的內容出現多次時,只能匹配第一次出現的結果。
最終的公式是:
=IFERROR(VLOOKUP(ROW(A1),$A:$D,COLUMN(C1),0),"")
在G2錄入公式以後,右拉填充至F2,再向下填充。
註意:
在這個公式中,VLOOKUP的第一參數直接使用ROW(A1),也就是數位1,2,3……
這裏需要有個思想的轉化過程,VLOOKUP找的實際是第一個1,第一個2,第一個3等等,這些正好是要找的部門第一次出現,第二次出現,第三次出現等等。
補充tips:
在公式=A1+(B2=$F$2)中,B2=$F$2是一個比較運算,得到的結果是TRUE或FALSE。在Excel中,邏輯值是可以參與計算的,在計算時TRUE相當於1,FALSE相當於0。
最後,歡迎大家加入Excel高效辦公視訊課程學習、額外送200套樣版。