excel函數獲取與查找值相對應的多個值,如下圖1所示,單元格區域A1:B7中存放著數據,要求使用公式查找單元格D2中的分類對應的名稱。例如,單元格D2中是“水果”,則從列B中獲取是水果的名稱并放置在列E中。
圖1
要求在E2中輸入公式,向下拖拉以獲取全部滿足條件的數據。
先不看答案,自已動手試一試。
公式
在單元格E2中輸入數組公式:
=IF(COUNTIF(A:A,$D$2)<ROWS($E$2:E2),””,INDEX(B:B,SMALL(IF($A$2:$A$7=$D$2,ROW($A$2:$A$7)),ROW(A1))))
向下拖拉至出現空單元格。
公式解析
公式中的:
COUNTIF(A:A,$D$2)<ROWS($E$2:E2)
用來計算符合條件的結果數,并與已放置值的單元格數(已返回的值)相比較,以確定在單元格中輸入的值。
公式中的:
INDEX(B:B,SMALL(IF($A$2:$A$7=$D$2,ROW($A$2:$A$7)),ROW(A1)))
轉換為:
INDEX(B:B,SMALL(IF({“水果”;”水果”;”蔬菜”;”蔬菜”;”水果”;”蔬菜”}=”水果”,ROW($A$2:$A$7)),ROW(A1)))
轉換為:
INDEX(B:B,SMALL(IF({TRUE;TRUE;FALSE;FALSE;TRUE;FALSE},ROW($A$2:$A$7)),ROW(A1)))
轉換為:
INDEX(B:B,SMALL(IF({TRUE;TRUE;FALSE;FALSE;TRUE;FALSE},{2;3;4;5;6;7}),ROW(A1)))
轉換為:
INDEX(B:B,SMALL({2;3;FALSE;FALSE;6;FALSE},ROW(A1)))
轉換為:
INDEX(B:B,SMALL({2;3;FALSE;FALSE;6;FALSE},1))
轉換為:
INDEX(B:B,2)
得到單元格B2中的值:
蘋果
當向下拖拉時,ROW(A1)將更新為ROW(A2)、ROW(A3)……,得到值2、3……等,從而可以獲取相應位置的值。