如何使用Excel中的INDEX和MATCH函數命令實現多個條件匹配情況下數據提取
方法 1
- 啟動 Excel。
- 在新的工作表中鍵入以下數據:
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 將公式輸入為數組公式。該公式返回的值為 8.00。
- 選擇單元格 F2,抓住填充柄,然後向下填充至單元格 F5,以檢索每個部件和代碼組合的價格。
方法 2
第二種方法可以得到相同的結果,只不過使用的是串聯方法。如果要按照兩個以上的條件來匹配數據,則使用下面的示例公式可能更適合,因為它不需要使用嵌套的 IF 語句。此方法與方法 1 相同,只是需要將步驟 3 中的公式替換為以下公式:=INDEX($C$2:$C$5,MATCH(D2&E2,$A$2:$A$5&$B$2:$B$5,0))
示例 2:按行排列的數據
方法 1
- 啟動 Excel。
- 在新的工作表中鍵入以下數據:
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 將公式輸入為數組公式。該公式返回的值為 8.00。
- 選擇單元格 B6,抓住填充柄,然後向下填充至單元格 E6,以檢索每個部件和代碼組合的價格。
方法 2
第二種方法可以得到相同的結果,只不過使用的是串聯方法。如果要按照兩個以上的條件來匹配數據,則使用下面的示例公式可能更適合,因為它不需要使用嵌套的 IF 語句。此方法與方法 1(在示例 2 下)相同,只是需要將步驟 3 中的公式替換為以下公式:
=INDEX($B$3:$E$3,MATCH(B4&B5,$B$1:$E$1&$B$2:$E$2,0))
補充知識
返回在指定方式下與指定數值匹配的數組中元素的相應位置。如果需要找出匹配元素的位置而不是匹配元素本身,則應該使用 MATCH 函數而不是 LOOKUP 函數。 語法 MATCH(lookup_value,lookup_array,match_type) Lookup_value 為需要在數據表中查找的數值。 Lookup_value 為需要在 Look_array 中查找的數值。例如,如果要在電話簿中查找某人的電話號碼,則應該將姓名作為查找值,但實際上需要的是電話號碼。 Lookup_value 可以為數值(數字、文本或邏輯值)或對數字、文本或邏輯值的單元格引用。 Lookup_array 可能包含所要查找的數值的連續單元格區域。Lookup_array 應為數組或數組引用。 Match_type 為數字 -1、0 或 1。Match-type 指明 Microsoft Excel 如何在 lookup_array 中查找 lookup_value。 如果 match_type 為 1,函數 MATCH 查找小於或等於 lookup_value 的最大數值。Lookup_array 必須按升序排列:...、-2、-1、0、1、2、...、A-Z、FALSE、TRUE。 如果 match_type 為 0,函數 MATCH 查找等於 lookup_value 的第一個數值。Lookup_array 可以按任何順序排列。 如果 match_type 為 -1,函數 MATCH 查找大於或等於 lookup_value 的最小數值。Lookup_array 必須按降序排列:TRUE、FALSE、Z-A、...、2、1、0、-1、-2、...,等等。 如果省略 match_type,則假設為 1。 說明 函數 MATCH 返回 lookup_array 中目標值的位置,而不是數值本身。例如,MATCH("b",{"a","b","c"},0) 返回 2,即「b」在數組 {"a","b","c"} 中的相應位置。 查找文本值時,函數 MATCH 不區分大小寫字母。 如果函數 MATCH 查找不成功,則返回錯誤值 #N/A。 如果 match_type 為 0 且 lookup_value 為文本,lookup_value 可以包含通配符、星號 (*) 和問號 (?)。星號可以匹配任何字元序列;問號可以匹配單個字元。 示例 如果您將示例複製到空白工作表中,可能會更易於理解該示例。 操作方法 創建空白工作簿或工作表。 請在「幫助」主題中選取示例。不要選取行或列標題。 從幫助中選取示例。 按 Ctrl+C。 在工作表中,選中單元格 A1,再按 Ctrl+V。 若要在查看結果和查看返回結果的公式之間切換,請按 Ctrl+`(重音符),或在「工具」菜單上,指向「公式審核」,再單擊「公式審核模式」。 1 2 3 4 5 A B Product Count Bananas 25 Oranges 38 Apples 40 Pears 41 公式 說明(結果) =MATCH(39,B2:B5,1) 由於此處無正確的匹配,所以返回數據區域 B2:B5 中最接近的下一個值 (38) 的位置。(2) =MATCH(41,B2:B5,0) 數據區域 B2:B5 中 41 的位置。(4) =MATCH(40,B2:B5,-1) 由於數據區域 B2:B5 不是按降序排列,所以返回錯誤值。(#N/A)
推薦閱讀:
※跳槽時,如何選擇一家好的公司?
※標緻307清洗完節氣門體後的匹配設定
※CUBING及車身匹配
※TY90生成匹配車型(已實操)
※豐田卡羅拉鑰匙全丟匹配