在 Excel 中使用 VLOOKUP 公式時,有時您可能會遇到醜陋的 #N/A 錯誤。當您的公式找不到查找值時會發生這種情況。
在本教程中,我將向您展示使用 IFERROR 和 VLOOKUP 來處理工作表中出現的這些 #N/A 錯誤的不同方法。
使用 IFERROR 與 VLOOKUP 的組合可以顯示一些有意義的東西來代替 #N/A 錯誤(或任何其他錯誤)。
在詳細了解如何使用這種組合之前,讓我們先快速瀏覽一下 IFERROR 函數,看看它是如何工作的。
Contents
IFERROR 函數說明
使用 IFERROR 函數,您可以指定在公式或單元格引用返回錯誤時應該發生的情況。
這是 IFERROR 函數的語法。
=IFERROR(value, value_if_error)
- value – 這是檢查錯誤的參數。在大多數情況下,它要么是公式,要么是單元格引用。將 VLOOKUP 與 IFERROR 一起使用時,VLOOKUP 公式將是此參數。
- value_if_error – 這是出現錯誤時返回的值。評估了以下錯誤類型:#N/A、#REF!、#DIV/0!、#VALUE!、#NUM!、#NAME? 和 #NULL!。
VLOOKUP 返回 #N/A 錯誤的可能原因
由於以下任何原因,VLOOKUP 函數可能會返回 #N/A 錯誤:
- 在查找數組中找不到查找值。
- 查找值(或表數組)中有前導、尾隨或雙倍空格。
- 查找值或查找數組中的值存在拼寫錯誤。
您可以結合使用 IFERROR 和 VLOOKUP 來處理所有這些錯誤原因。但是,您應該留意原因 #2 和 #3,並在源數據中更正這些問題,而不是讓 IFERROR 處理這些問題。
注意: IFERROR 將處理錯誤,而不管它是由什麼原因引起的。如果您只想處理 VLOOKUP 無法找到查找值導致的錯誤,請改用 IFNA。這將確保不處理 #N/A 以外的錯誤,並且您可以調查這些其他錯誤。
您可以使用 TRIM 函數處理前導、尾隨和雙空格。
用有意義的文本替換 VLOOKUP #N/A 錯誤
假設您有一個如下所示的數據集:
如您所見,VLOOKUP 公式返回錯誤,因為查找值不在列表中。我們正在尋找 Glen 的分數,它不在分數表中。
雖然這是一個非常小的數據集,但您可能會獲得巨大的數據集,您必須在其中檢查許多項目的出現。對於未找到該值的每種情況,您將收到 #N/A 錯誤。
這是您可以用來獲得有意義的東西而不是 #N/A 錯誤的公式。
=IFERROR(VLOOKUP(D2,$A$2:$B$10,2,0),"Not Found")
上面的公式返回文本“未找到”而不是 #N/A 錯誤。您還可以使用相同的公式返回空白、零或任何其他有意義的文本。
使用 IFERROR 函數嵌套 VLOOKUP
如果您正在使用 VLOOKUP 並且您的查找表在同一個工作表或不同工作表上分散,您需要通過所有這些表檢查 VLOOKUP 值。
例如,在下面顯示的數據集中,有兩個單獨的學生姓名和分數表。
如果我必須在這個數據集中找到 Grace 的分數,我需要使用 VLOOKUP 函數檢查第一個表,如果在其中沒有找到該值,則檢查第二個表。
這是我可以用來查找值的嵌套 IFERROR 公式:
=IFERROR(VLOOKUP(G3,$A$2:$B$5,2,0),IFERROR(VLOOKUP(G3,$D$2:$E$5,2,0),"Not Found"))
將 VLOOKUP 與 IF 和 ISERROR 一起使用(Excel 2007 之前的版本)
IFERROR 函數是在 Excel 2007 for Windows 和 Excel 2016 in Mac 中引入的。
如果您使用的是以前的版本,那麼 IFERROR 功能將無法在您的系統中運行。
您可以通過結合使用 IF 函數和 ISERROR 函數來複製 IFERROR 函數的功能。
讓我快速向您展示如何使用 IF 和 ISERROR 的組合而不是 IFERROR。
在上面的示例中,您也可以使用單元格 B3 中顯示的公式,而不是使用 IFERROR:
=IF(ISERROR(A3),”Not Found”,A3)
公式的 ISERROR 部分檢查錯誤(包括 #N/A 錯誤),如果發現錯誤則返回 TRUE,否則返回 FALSE。
- 如果為 TRUE(表示存在錯誤),IF 函數將返回指定的值(在本例中為“未找到”)。
- 如果為 FALSE(這意味著沒有錯誤),IF 函數將返回該值(上例中的 A3)。
IFERROR 與 IFNA
IFERROR 處理所有類型的錯誤,而 IFNA 只處理 #N/A 錯誤。
在處理由 VLOOKUP 引起的錯誤時,您需要確保使用正確的公式。
當您要處理各種錯誤時,請使用 IFERROR 。現在錯誤可能由多種因素引起(例如錯誤的公式、拼寫錯誤的命名範圍、未找到查找值以及從查找表返回錯誤值)。IFERROR 無關緊要,它會用指定的值替換所有這些錯誤。
當您只想處理 #N/A 錯誤時使用 IFNA,這更有可能是由 VLOOKUP 公式無法找到查找值引起的。