如何修正 INDEX/MATCH 函數中的 #N/A 錯誤

套用到
Microsoft 365 Excel Mac 版 Microsoft 365 Excel Excel 2024 Mac 版 Excel 2024 Excel 2021 Mac 版 Excel 2021 Excel 2019 Excel 2016 Windows Phone 版 Excel 10

本主題說明因 INDEXMATCH 函數導致出現「#N/A 錯誤」的最常見原因。
 

注意

如果您希望 INDEXMATCH 函數傳回有意義的值,而不是 #N/A,請使用 IFERROR 函數,然後在該函數內建立巢狀 INDEXMATCH 函數。 以您自己的值取代 #N/A 只會識別錯誤,但無法解決錯誤。 因此,在使用 IFERROR 之前,務必先確定公式如預期般正確運作。

問題:沒有可比對的資料

MATCH 函數在查閱陣列中找不到查閱值時,會傳回 #N/A 錯誤。

如果您認為資料存在於試算表中,但 MATCH 無法找到該資料,可能是因為:

  • 儲存格有未預期的字元或隱藏空格。
  • 儲存格可能未格式化為正確的資料類型。 例如,儲存格含有數值,但格式可能為 文字
     

解決方案:要刪除意外的字元或隱藏空格,請分別使用 CLEANTRIM 函數。 此外,請確認儲存格是否格式化為正確的資料類型。

您在未按下 Ctrl+Shift+Enter 的情況下使用了陣列公式

當您在 INDEX、MATCH 或這兩個函數的組合中使用陣列時,必須按鍵盤上的 Ctrl+Shift+Enter。 Excel 會自動將公式括在大 {}括號中。 如果您嘗試自行輸入括號,Excel 會將公式顯示為文字。

注意

如果您有目前版本的 Microsoft 365,則只需在輸出儲存格中輸入公式,然後按 ENTER 以確認公式為動態陣列公式。 否則,請先選取輸出範圍,在輸出儲存格中輸入公式,然後按 CTRL+SHIFT+ENTER 確認,以舊的陣列公式輸入公式。 Excel 會為您在公式的開頭和結尾處插入大括號。 如需有關陣列公式的詳細資訊,請參閱陣列公式的規則和範例

問題:比對類型和資料的排序順序不一致

當您使用 MATCH 時, match_type 引數中的值與查閱陣列中值的排序順序之間應該保持一致。 如果語法偏離下列規則,就會看見 #N/A 錯誤。

  • 如果 match_type 為 1 或未指定,則 lookup_array 中的值應以遞增順序排列。 例如 -2、-1、0、1、2...、A、B、C...、FALSE、TRUE 等等。
  • 如果 match_type 是 -1,則 lookup_array 中的值應以遞減順序排列。

在下列範例中, MATCH 函數是

=MATCH (40,B2:B10,-1)

Excel MATCH 函數

語法中的 match_type 引數設為 -1,這表示 B2:B10 中值的順序應該以遞減順序,公式才能正常運作。 但值會以遞增順序排列,因此會造成 #N/A 錯誤。

解決方案:match_type 引數變更為 1,或以遞減格式排序表格。 然後再試一次。

需要更多協助嗎?

您隨時都可以詢問 Excel 技術社群 中的專家,或在 社群中取得支援。

另請參閱

如何修正 #N/A 錯誤

如何在 Excel 中搭配多個準則使用 INDEX 和 MATCH 工作表函數

INDEX 函數

MATCH 函數

Excel 公式概觀

如何避免公式出錯

偵測公式中的錯誤

所有 Excel 函數 (按字母排序)

所有 Excel 函數 (依類別)