攝影或3C

如何讓Excel Vlookup函數不會出現#N/A? IF ISERROR()=TURE與IFERROR函數;IF ISNA()=TURE與IFNA函數

Excel Vlookup函數第四個關鍵參數該用TRUE(1)還是FALSE(0)?

前篇文章介紹Vlookup函數

TRUE(1), FALSE(0)參數的用法

可不是隨心所欲

FALSE隨你愛加不加

該加未加,

會有非常意外的搜尋結果

 

現在再示範一下Vlookup函數的用法:

晉級名單中有

龍一,龍二,龍三

三個人

要搜尋五個人

那些人有順利晉級

使用Vlooup函數如下

=VLOOKUP(D2,$A:$B,2,FALSE)

龍一,龍二,龍三

因為有在晉級名單中

顯示已晉級

龍四,龍五未在晉級名單中

顯示#N/A

其實就是未晉級的意思

如果是自己要看而已

這樣已經區分出

已晉級跟未晉級的人員

但#N/A是否太怪了?

能不能顯示成未晉級?

 

我們要用ISERROR函數

包住左方的Vlookup函數

用分解動作,

帶你完成到最後結果

右方再多一欄公式

=ISERROR(VLOOKUP(D2,$A:$B,2,FALSE))

如果Vlookup搜尋結果是#N/A

ISERROR函數會回傳TRUE

 

再用IF函數

IF ISERROR函數= TRUE, 顯示字串”未晉級” ,否則顯示”已晉級”

函數如下:

=IF(ISERROR(VLOOKUP(D2,$A:$B,2,FALSE))=TRUE,”未晉級”,”已晉級”)

順利將原本的#N/A變成”未晉級”

 

公式最末的”已晉級”

當然可以用

VLOOKUP(D6,$A:$B,2,FALSE)

替代

這個Vlookup函數若有搜尋到結果

(ISERROR函數 = FALSE)

本來就會顯示”已晉級”

函數就變得更長

=IF(ISERROR(VLOOKUP(D2,$A:$B,2,FALSE))=TRUE,”未晉級”,VLOOKUP(D2,$A:$B,2,FALSE))

但分解動作下

應該可以理解

這麼長的函數意義

若參考表格第二欄不是單一文字

例如:

龍一  金牌

龍二  銀牌

龍三  銅牌

當然也就只能用最後最長的函數

=IF(ISERROR(VLOOKUP(D2,$A:$B,2,FALSE))=TRUE,”未晉級”,VLOOKUP(D2,$A:$B,2,FALSE))

 

IF ISERROR()=TURE,……

這段使用了

IF, ISERROR兩個函數

可以濃縮成一個

IFERROR函數取代

=IFERROR(VLOOKUP(D2,$A:$B,2,FALSE),”未晉級”)

如果Vlookup函數沒搜尋錯誤,

顯示Vlookup的值

如果搜尋錯誤,顯示”未晉級”

 

If ISNA()=TRUE,….

跟IFNA

也可以作出一樣的效果

=IF(ISNA(VLOOKUP(D2,$A:$B,2,FALSE))=TRUE,”未晉級”,VLOOKUP(D2,$A:$B,2,FALSE))

(IF函數中的 =TRUE可省略,不省略可讀性比較高)

=IFNA(VLOOKUP(D2,$A:$B,2,FALSE),”未晉級”)

 

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡