秘訣
請嘗試使用新的 XMATCH 函數,這是 MATCH 的改良版本,可朝任何方向運作,並預設會傳回完全符合的比對,因此比其前置函數更容易且更方便使用。
MATCH 函數會搜尋儲存格範圍中的指定項目,並傳回該項目於該範圍中的相對位置。 例如,若範圍 A1:A3 中含有值 5、25 及 38,則公式 =MATCH(25,A1:A3,0) 會傳回數字 2,因為 25 是範圍中的第二個項目。
秘訣
當您需要的是項目在範圍內的位置而不是項目本身,請使用 MATCH 函數,而不要使用其中一個 LOOKUP 函數。 例如,您可以使用 MATCH 函數來提供 INDEX 函數row_num引數的值。
語法
MATCH(lookup_value, lookup_array, [match_type])
MATCH 函數語法具有下列引數:
lookup_value 必填項目。 您想要在 lookup_array 中比對的值。 例如,當您在通訊錄中查閱某個人的號碼時,您是以那個人的姓名作為查閱值,但是電話號碼才是您要的值。
lookup_value 引數可以是一值 (數字、文字或邏輯值),也可以是數字、文字或邏輯值的儲存格參照。
lookup_array 必填項目。 這是要搜尋的儲存格範圍。
match_type 選用。 數字 -1、0 或 1。 match_type 引數會指定 Excel 如何比對lookup_value與 lookup_array 中的值。 這個引數的預設值是 1。
下表將描述該函數如何根據 match_type 引數的設定來尋找值。
| Match_type | 行為 |
|---|---|
| 1 或省略 | MATCH 會尋找小於或等於 lookup_value 的最大值。 lookup_array引數中的值必須以遞增順序放置,例如 ...-2、-1、0、1、2、...、A-Z、FALSE、TRUE。 |
| 0 | MATCH 會尋找完全等於 lookup_value 的第一個值。 lookup_array引數中的值順序不限。 |
| -1 | MATCH 會尋找大於或等於lookup_value 的最小值。 lookup_array引數中的值必須以遞減順序排列,例如:TRUE、FALSE、Z-A、...2、1、0、-1、-2、...,依此類推。 |
- 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 引數中使用萬用字元,問號 () 和星號 (*) 。 問號可比對任一字元;星號可比對任一連續的字元。 如果您要尋找實際的問號或星號,請在該字元之前輸入波狀符號 (~) 。
範例
請在下列表格中複製範例資料,再將之貼到新 Excel 活頁簿中的儲存格 A1。 若要讓公式顯示結果,請選取公式,按 F2,然後再按 Enter。 如有需要,您可以調整欄寬來查看所有資料。
| 產品 | 項目個數 | |
|---|---|---|
| 香蕉 | 25 | |
| 柑橘 | 38 | |
| 蘋果 | 40 | |
| 梨子 | 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 |