場景一:VLOOKUP一對多查找-按行放置數據
查找每個部門的所有的組成人員的姓名放在黃色區域中(按行放置);其中部門是下拉菜單,可以切換部門
思路:部門是下拉菜單(通過數據驗證的序列製作);姓名通過做輔助列的方式來實現查找,輔助列的作用是將每個部門進行編號(依次出現的次數),構成唯一值;在查找的時候,公式在下拉過程中,查找值需要依次是部門1,部門2,部門3...,而1,2,3是連續的數字,向下走產生連續數字有對應的函數ROW;部門&ROW作為查找值。
輔助列公式:
=B2&COUNTIF($B$2:B2,B2)
查找公式:
=IFERROR(VLOOKUP($E$2&ROW()-1,$A$1:$C$10,3,0),"")
公式解釋:ROW()返回當前號,每個部門人數不同,結果值會有錯誤值,使用IFERROR規避錯誤,其他就不多說了,相信大家在之前的文章的鋪墊下,看這個公式應該能明白他的意思啦~
場景二:VLOOKUP一對多查找-按列放置數據
查找每個部門的所有的組成人員的姓名放在黃色區域中(按列放置)
思路:還是一樣的套路,使用輔助列將部門進行編號構成唯一值,查找值在公式右拉過程中,查找值需要依次是部門1,部門2,部門3...,向下拉的過程中,查找值不變,產生這樣對應的數字的函數是COLUMN,所以部門&COLUMN作為查找值。
輔助列公式:
=B2&COUNTIFS($B$2:B2,B2)
查找公式:
=IFERROR(VLOOKUP($E2&COLUMN(A1),$A$2:$C$10,3,0),"")
公式解釋:COLUMN(單元格)返回列號,只和字母有關;還有注意引用問題
場景三:VLOOKUP實現多姓名相連在一起
將每個部門的所有員工的姓名放在一個單元格中,姓名之間使用逗號(,)隔開
思路:需求要求每個部門的所有員工的姓名使用逗號拼接在一起,放在一個單元格中,可以先將拼接的效果做到,然後再使用VLOOKUP直接找過去。
但需要VLOOKUP查找的過程中會查找第一個查找值所對應的目標值,所以我們還需要將其拼接的結果和每個部門第一次出現的位置對應,我們可以倒著想,讓每個部門的姓名逐漸拼接上,這樣最長的就在上面;那我們在找目標值,就需要在放目標值的列裡找,如果還是在B列姓名裡找,每次就只會有一個值。
所以我們可以當前的行的姓名,拼接(&)下方區域中部門所拼接好的姓名,之間用逗號隔開,而且找不到會報錯,所以用IFERROR規避一下錯誤
輔助列公式:
=B2&IFERROR("、"&VLOOKUP(A2,A3:$C$11,3,0),"")
整體的公式:
=VLOOKUP(D2,$A$2:$C$10,3,0)
實在理解不了,可以記住這個套路
場景四:VLOOKUP跨表引用-與indirect搭配
在對應的工作表(1月,2月,3月)中找阿紫的銷售額放在黃色區域中;其中3個月份的工作表的內容和格式是一樣的。
思路:可以先看一下直接使用VLOOKUP查找,需要修改哪裡,然後在想如何進行修改
我們會發現,需要修改的是VLOOKUP的第2個參數【查找區域】,但是查找區域有規律,他需要修改的是月份,而前面A列是有對應的月份的,如直接拼接上可以嗎?
這樣直接做VLOOKUP的查找區域可以嗎?顯示是不可以的,這樣只是一個文本,而我們實際是區域,那如果可以將這個文本變成實際意義,在工作簿中實際對應的區域就好了,有個函數可以實現-INDIRECT
INDIRECT(文本字符串)-返回文本字符串指定引用的數據內容
查找公式:
=VLOOKUP($B$1,INDIRECT(A2&"!B:C"),2,0)
本文章又說了VLOOKUP的4種使用場景,而且這些都是自身親測過的,大家自己也可以在