亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
573
2025-03-31
一對多查詢的萬金油公式
我們對數據進行查詢時,經常會使用VLOOKUP函數。但有時,我們會碰到這樣的問題,提取符合條件的結果是多個,而不是一個,這時候VLOOKUP就犯難了。
舉個例子,如下圖,左側A1:C10是一份學員名單表,現在需要根據F1單元格的“EH圖班”這個指定的條件,在F2:F10單元格區域中,提取該班級全部學員名單。
=INDEX(B:B,SMALL(IF(A:A=F,ROW(:),4^8),ROW(A1))),””)
這個公式看起來可就比上面那個VLOOKUP的解法苗條養眼多了,坦白的說,很搭俺星光十年后的匪號——小清新。
公式講解
IF(A:A=F,ROW(:),4^8)
這部分,先判斷A1:A10的值是否等于F1,如果相等,則返回A列班級相對應的行號,否則返回4^8,也就是65536,一般情況下,工作表到這個位置就沒有數據了。
SMALL函數對IF函數的結果進行取數,隨著公式的向下填充,依次提取第1、2、3……n個最小值,由此依次得到符合班級條件的行號。
隨后使用INDEX函數,以SMALL函數返回的行號作為索引值,在B列中提取出對應的姓名結果。
當SMALL函數所得到的結果為65536時,意味著符合條件的行號已經被取之殆盡了,此時INDEX函數也隨之返回B65536單元格的引用,結果是一個無意義的0,為了避免這個問題,可以在公式后面加上一個小尾巴 &””
利用&””的方法,很巧妙的規避了無意義0值的出現,只是當查找結果為數值或日期時,這個方法會把數值轉變為文本值,并不利于數據的準確呈現以及再次統計分析。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。