本文深入探討在Excel中使用ISNA函數(shù)處理#N/A錯(cuò)誤的各種方法。
當(dāng)Excel無法找到所需內(nèi)容時(shí),單元格中會(huì)出現(xiàn)“N/A”錯(cuò)誤。要攔截和處理此類錯(cuò)誤,可以使用ISNA函數(shù),它可以使公式更加友好,使工作表更加美觀。
ISNA函數(shù)
Excel ISNA函數(shù)用于檢查單元格或公式是否存在N/A錯(cuò)誤。結(jié)果是一個(gè)邏輯值:如果檢測(cè)到#N/A錯(cuò)誤,則為TRUE,否則為FALSE。
ISNA函數(shù)的語法為:
ISNA(value)
其中,value是要檢查#N/A錯(cuò)誤的單元格值或公式。
使用ISNA函數(shù)的基本公式示例:
=ISNA(A2)
如果單元格A2包含#N/A錯(cuò)誤,則返回TRUE,如果出現(xiàn)任何其他錯(cuò)誤、值或空白單元格,則返回FALSE。如下圖1所示。
圖1
用以上形式使用ISNA函數(shù)的幾乎很少。通常,它與其他函數(shù)一起用于評(píng)估某個(gè)公式的結(jié)果。為此,只需將ISNA的value參數(shù)設(shè)置另一個(gè)公式:
ISNA(公式)
在下面的數(shù)據(jù)集中,假設(shè)要比較兩個(gè)列表(列A和列D),并確定兩個(gè)列表中都存在的名稱以及僅出現(xiàn)在列表1中的名稱。
要將A2中的值與列D中的每個(gè)值進(jìn)行比較,公式為:
=MATCH(A2,$D$2:$D$9,0)
如果找到查找值,MATCH函數(shù)將返回其在查找數(shù)組中的相對(duì)位置,否則將發(fā)生#N/A錯(cuò)誤。為了測(cè)試MATCH的結(jié)果,將其嵌套在ISNA函數(shù)中:
=ISNA(MATCH(A2,$D$2:$D$9,0))
如下圖2所示。
圖2
現(xiàn)在,可以清楚地看到哪些學(xué)生通過了所有測(cè)試,哪些學(xué)生至少有一次測(cè)試失敗。
IF/ISNA組合的Excel公式
ISNA函數(shù)只能返回兩個(gè)布爾值,因此可將其與IF函數(shù)結(jié)合使用,顯示自定義消息:
IF(ISNA(…),有錯(cuò)誤時(shí)的文本, 沒有錯(cuò)誤時(shí)的文本)
進(jìn)一步完善上面的示例,找出組A的哪些學(xué)生都通過了任何測(cè)試,并返回“沒有失敗的測(cè)試”。對(duì)于剩下的學(xué)生,將返回“失敗”。為此,在IF的邏輯測(cè)試中嵌入ISNA/MATCH公式:
=IF(ISNA(MATCH(A2,$D$2:$D$9,0)),'沒有失敗的測(cè)試','失敗')
結(jié)果看起來更好且更直觀,如下圖3所示。
圖3
VLOOKUP/ISNA組合的Excel公式
IF/ISNA組合是一個(gè)通用的解決方案,可以與任何函數(shù)一起使用,該函數(shù)在一組數(shù)據(jù)中搜索某些內(nèi)容,并且在找不到查找值時(shí)返回#N/A錯(cuò)誤。
帶有VLOOKUP函數(shù)的ISNA函數(shù)的語法如下:
IF(ISNA(VLOOKUP(…),“自定義文本”,VLOOKUP(…))
也就是說:如果VLOOKUP導(dǎo)致一個(gè)#N/A錯(cuò)誤,則返回自定義文本,否則返回VLOOKUP的結(jié)果。
在我們的示例表中,假設(shè)希望返回學(xué)生考試不及格的科目。對(duì)于成功通過所有測(cè)試的人,將顯示“無失敗測(cè)試”。
為了查找科目,構(gòu)造了經(jīng)典的VLOOKUP公式:
=VLOOKUP(A2,$D$3:$E$9,2,FALSE)
然后將其嵌套在上面討論的通用IF/ISNA公式中:
=IF(ISNA(VLOOKUP(A2,$D$3:$E$9,2,FALSE)),'沒有失敗的測(cè)試',VLOOKUP(A2,$D$3:$E$9,2,FALSE))
結(jié)果如下圖4所示。
圖4
在Excel 2013及更高版本中,可以利用IFNA函數(shù)捕獲和處理N/A錯(cuò)誤。這使你的公式更短,更容易閱讀。
例如,將#N/A錯(cuò)誤替換為破折號(hào)(“-”),并得到這個(gè)優(yōu)雅的解決方案:
=IFNA(VLOOKUP(A2,$D$3:$E$9,2,FALSE),'-')
結(jié)果如下圖5所示。
圖5
Excel 365和2021版的用戶根本不需要任何包裝函數(shù),因?yàn)槠?/span>XLOOKUP函數(shù)本身可以處理#N/A錯(cuò)誤:
=XLOOKUP(A3,$D$3:$D$9,$E$3:$E$9,“-”)
結(jié)果與上圖5所示完全相同。
SUMPRODUCT/ISNA組合統(tǒng)計(jì)#N/A錯(cuò)誤數(shù)
要統(tǒng)計(jì)特定單元格區(qū)域內(nèi)的#N/A錯(cuò)誤,可將ISNA函數(shù)與SUMPRODUCT函數(shù)一起使用,方法如下:
SUMPRODUCT(--(ISNA(range))
在這里,ISNA返回一個(gè)TRUE值和FALSE值數(shù)組,雙否定(--)將邏輯值強(qiáng)制轉(zhuǎn)換為數(shù)值1和0,然后SUMPRODUCT將結(jié)果相加。
例如,要找出有多少學(xué)生在所有測(cè)試中都通過,修改單元格區(qū)域(A2:A13)查找值的MATCH公式,并將其嵌套在ISNA函數(shù)中:
=SUMPRODUCT(--ISNA(MATCH(A2:A13,D2:D9,0)))
公式確定9名學(xué)生沒有失敗的測(cè)試,即MATCH函數(shù)返回9個(gè)N/A錯(cuò)誤,如下圖6所示。
圖6
這就是如何在Excel中創(chuàng)建和使用ISNA公式,希望對(duì)你有所幫助。
聯(lián)系客服