下面的示例使用 INDEX 和 MATCH 工作表功能來根據(jù)多個條件查找值。
示例 1:列中的數(shù)據(jù)
方法 1
- 啟動 Excel。
- 在新的工作表中鍵入以下數(shù)據(jù):
A1:部件 B1:代碼 C1:價格 D1:查找部件 E1:查找代碼 A2:x B2:11 C2:5.00 D2:y E2: 12 A3:x B3:12 C3:6.00 D3:y E3: 11 A4:y B4:11 C4:7.00 D4:x E4: 12 A5:y B5:12 C5:8.00 D5:x E5: 11
- 要檢索代碼為 12 的部件 y 的價格并將檢索到的值返回到單元格 F2,請在單元格 F2 中鍵入以下公式:
=INDEX($C$2:$C$5,MATCH(D2,IF($B$2:$B$5=E2,$A$2:$A$5),0))
- 按 Ctrl+Shift+Enter 將公式輸入為數(shù)組公式。
該公式返回的值為 8.00。 - 選擇單元格 F2,抓住填充柄,然后向下填充至單元格 F5,以檢索每個部件和代碼組合的價格。
方法 2
第二種方法可以得到相同的結(jié)果,只不過使用的是串聯(lián)方法。如果要按照兩個以上的條件來匹配數(shù)據(jù),則使用下面的示例公式可能更適合,因為它不需要使用嵌套的 IF 語句。此方法與方法 1 相同,只是需要將步驟 3 中的公式替換為以下公式:
=INDEX($C$2:$C$5,MATCH(D2&E2,$A$2:$A$5&$B$2:$B$5,0))
方法 1
- 啟動 Excel。
- 在新的工作表中鍵入以下數(shù)據(jù):
A1:部件 B1:x C1:x D1:y E1:y A2:代碼 B2:11 C2:12 D2:11 E2: 12 A3:價格 B3:5.00 C3:6.00 D3:7.00 E3: 8.00 A4:查找部件 B4:y C4:y D4:x E4:x A5:查找代碼 B5:12 C5:11 D5:12 E5: 11
- 要檢索代碼為 12 的部件 y 的價格并將檢索到的值返回到單元格 B6,請在單元格 B6 中鍵入以下公式:
=INDEX($B$3:$E$3,MATCH(B4,IF($B$2:$E$2=B5,$B$1:$E$1),0))
- 按 Ctrl+Shift+Enter 將公式輸入為數(shù)組公式。
該公式返回的值為 8.00。 - 選擇單元格 B6,抓住填充柄,然后向下填充至單元格 E6,以檢索每個部件和代碼組合的價格。
方法 2
第二種方法可以得到相同的結(jié)果,只不過使用的是串聯(lián)方法。如果要按照兩個以上的條件來匹配數(shù)據(jù),則使用下面的示例公式可能更適合,因為它不需要使用嵌套的 IF 語句。此方法與方法 1(在示例 2 下)相同,只是需要將步驟 3 中的公式替換為以下公式:
=INDEX($B$3:$E$3,MATCH(B4&B5,$B$1:$E$1&$B$2:$E$2,0))
補充知識
返回在指定方式下與指定數(shù)值匹配的數(shù)組中元素的相應(yīng)位置。如果需要找出匹配元素的位置而不是匹配元素本身,則應(yīng)該使用 MATCH 函數(shù)而不是 LOOKUP 函數(shù)。
語法
MATCH(lookup_value,lookup_array,match_type)
Lookup_value 為需要在數(shù)據(jù)表中查找的數(shù)值。
Lookup_value 為需要在 Look_array 中查找的數(shù)值。例如,如果要在電話簿中查找某人的電話號碼,則應(yīng)該將姓名作為查找值,但實際上需要的是電話號碼。
Lookup_value 可以為數(shù)值(數(shù)字、文本或邏輯值)或?qū)?shù)字、文本或邏輯值的單元格引用。
Lookup_array 可能包含所要查找的數(shù)值的連續(xù)單元格區(qū)域。Lookup_array 應(yīng)為數(shù)組或數(shù)組引用。
Match_type 為數(shù)字 -1、0 或 1。Match-type 指明 Microsoft Excel 如何在 lookup_array 中查找 lookup_value。
如果 match_type 為 1,函數(shù) MATCH 查找小于或等于 lookup_value 的最大數(shù)值。Lookup_array 必須按升序排列:...、-2、-1、0、1、2、...、A-Z、FALSE、TRUE。
如果 match_type 為 0,函數(shù) MATCH 查找等于 lookup_value 的第一個數(shù)值。Lookup_array 可以按任何順序排列。
如果 match_type 為 -1,函數(shù) MATCH 查找大于或等于 lookup_value 的最小數(shù)值。Lookup_array 必須按降序排列:TRUE、FALSE、Z-A、...、2、1、0、-1、-2、...,等等。
如果省略 match_type,則假設(shè)為 1。
說明
函數(shù) MATCH 返回 lookup_array 中目標(biāo)值的位置,而不是數(shù)值本身。例如,MATCH("b",{"a","b","c"},0) 返回 2,即“b”在數(shù)組 {"a","b","c"} 中的相應(yīng)位置。
查找文本值時,函數(shù) MATCH 不區(qū)分大小寫字母。
如果函數(shù) MATCH 查找不成功,則返回錯誤值 #N/A。
如果 match_type 為 0 且 lookup_value 為文本,lookup_value 可以包含通配符、星號 (*) 和問號 (?)。星號可以匹配任何字符序列;問號可以匹配單個字符。
示例
如果您將示例復(fù)制到空白工作表中,可能會更易于理解該示例。
操作方法
創(chuàng)建空白工作簿或工作表。
請在“幫助”主題中選取示例。不要選取行或列標(biāo)題。
從幫助中選取示例。
按 Ctrl+C。
在工作表中,選中單元格 A1,再按 Ctrl+V。
若要在查看結(jié)果和查看返回結(jié)果的公式之間切換,請按 Ctrl+`(重音符),或在“工具”菜單上,指向“公式審核”,再單擊“公式審核模式”。
1
2
3
4
5
A B
Product Count
Bananas 25
Oranges 38
Apples 40
Pears 41
公式 說明(結(jié)果)
=MATCH(39,B2:B5,1) 由于此處無正確的匹配,所以返回數(shù)據(jù)區(qū)域 B2:B5 中最接近的下一個值 (38) 的位置。(2)
=MATCH(41,B2:B5,0) 數(shù)據(jù)區(qū)域 B2:B5 中 41 的位置。(4)
=MATCH(40,B2:B5,-1) 由于數(shù)據(jù)區(qū)域 B2:B5 不是按降序排列,所以返回錯誤值。(#N/A)