テキスト ボックス: エラートラップ IFERR関数

式の値がエラーの場合には、特別な値を表示したい場合があります。
たとえば、下記のようにコードから種類を表引きするとき、規定外のコードは何も表示しないようにしたい場合があります。
これをEXCEL2003でVLOOKUP関数を使って記述すると、下記@のようにエラー判定のために、うんざりするほど長くなります。しかも、2度計算することになる!

EXCEL2010では、AのようにIFERRORという関数が追加され、エラーの場合の値を指定しておくだけで、式をシンプルに記述できます。

ここでは、IFERRORのような機能をEXCEL2003でも使用できるように、ユーザー定義関数IFERRを作成します。(区別のために名前を変更)
コード 種類シュルイ 単価タンカ コード 種類シュルイ 単価タンカ
F020 みかん 120 F010 りんご 130
F030 マンゴー 250 F020 みかん 120
F055     F030 マンゴー 250
F033     F040 モモ 200
      F050 カキ 180
     
     
     
四角形吹き出し: AEXCEL2010 IFERROR関数を使うと
=IFERROR(VLOOKUP(B11,$F$11:$H$15,2,FALSE),"")
シンプルに記述できる
テキスト ボックス: IFERROR関数

関数仕様
 数式がエラーの場合は指定の値を返し、それ以外の場合は数式の結果を返す
 IFERROR 関数を使用すると、数式 (のエラーをトラップして処理できる。 
書式 IFERROR(値, エラーの場合の値) 
 値  必ず指定。エラーかどうかをチェックする引数。 
 エラーの場合の値  必ず指定。数式がエラーとして評価される場合に返す値。
   評価されるエラーの種類は、#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、および #NULL!
四角形吹き出し: B IFERR関数を使う−ユーザー定義関数
=IFERROR(VLOOKUP(B11,$F$11:$H$15,2,FALSE),"")
シンプルに記述できる
コード 種類シュルイ 単価タンカ
F020 四角形吹き出し: =iferr(VLOOKUP(B49,$F$11:$H$15,2,FALSE),"")
みかん
120
F030 マンゴー 250
F055    
F033    
     
     
     
     
テキスト ボックス: Function IFERR(値, エラーの場合の値)
'
' 正常時:そのままの値
' エラー時:エラーの場合の値
' をそれぞれ表示する

    If IsError(値) Then
        IFERR = エラーの場合の値
    Else
        IFERR = 値
    End If

End Function
テキスト ボックス: IsErro関数仕様

構文 IsError(expression) 

引数 expression 省略不可。有効な任意の式を指定  
 
戻り値 ブール型(Bool)
 
引数で指定した値がユーザ定義のエラーであるかどうかを判定し、結果をブール型(Bool)で返します。 値がエラー値として評価できる場合は、真(True)を、そうで無い場合は、偽(False)を返します。