本主題說明因 INDEX 或 MATCH 函數導致出現「#N/A 錯誤」的最常見原因。
注意
如果您希望 INDEX 或 MATCH 函數傳回有意義的值,而不是 #N/A,請使用 IFERROR 函數,然後在該函數內建立巢狀 INDEX 和 MATCH 函數。 以您自己的值取代 #N/A 只會識別錯誤,但無法解決錯誤。 因此,在使用 IFERROR 之前,務必先確定公式如預期般正確運作。
問題:沒有可比對的資料
當 MATCH 函數在查閱陣列中找不到查閱值時,會傳回 #N/A 錯誤。
如果您認為資料存在於試算表中,但 MATCH 無法找到該資料,可能是因為:
- 儲存格有未預期的字元或隱藏空格。
- 儲存格可能未格式化為正確的資料類型。 例如,儲存格含有數值,但格式可能為 文字。
解決方案:要刪除意外的字元或隱藏空格,請分別使用 CLEAN 或 TRIM 函數。 此外,請確認儲存格是否格式化為正確的資料類型。
您在未按下 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)
語法中的 match_type 引數設為 -1,這表示 B2:B10 中值的順序應該以遞減順序,公式才能正常運作。 但值會以遞增順序排列,因此會造成 #N/A 錯誤。
解決方案: 將 match_type 引數變更為 1,或以遞減格式排序表格。 然後再試一次。
需要更多協助嗎?
您隨時都可以詢問 Excel 技術社群 中的專家,或在 社群中取得支援。