エラーを見えなくするISERRORとIFERROR
使用する関数:ISERROR、IFERROR、IF、ISERROR、VLOOKUP
・関数 | IF(読み方:イフ) | |
・書式 | =IF(論理式,真の場合,偽の場合) | |
・内容 | IF 関数を使用して値または数式が条件を満たしているかどうかをテストできます。 | |
・関数 | ISERROR(読み方:イズエラー) | |
・書式 | =ISERROR(テストする値) | |
・内容 | 値がエラーかどうかをチェックし、TRUE または FALSE を返します。 | |
IFとISERRORを使うことでセルのエラーを空白表示にします
=VLOOKUP(B1,C3:I6,7,0)
をエラーなら空白、エラーでなければ実行して結果を表示します
ISERRORのテストする値に上記の「VLOOKUP(B1,C3:I6,7,0)」を入れます
=ISERROR(VLOOKUP(B1,C3:I6,7,0))
これで
真(TRUE)か
偽(FALSE)の判定をします
この式をIF関数の
論理式に入れることで
真(TRUE)エラー場合の場合の結果と
偽(FALSE)エラーではない場合の場合の結果を出します
ISERRORはエラーのときに
真(TRUE)になるので
IF関数の
真の場合を空白「""」として
偽の場合に
論理式を入れます
例)=IF(ISERROR(VLOOKUP(B1,C3:I6,7,0)),"", VLOOKUP(B1,C3:I6,7,0))
エラーを返すだけなので
偽の場合にもう1度
論理式を入力する必要があります
上記の
論理式VLOOKUP(B1,C3:I6,7,0)は短いので良いですが、通常VLOOKUP関数やCOUNT関数など多用してる場合2度入力するのは無駄です。
でもこの方法しかエラーを隠す方法が無かったのでずっと使ってきました。
そこでやっと私の声が届いたのでしょうかw?エクセル2007から
IFERRORという関数ができました(注 エクセル2007以降でないと使えません。Googleスプレッドシートは使えます)
・関数 | IFERROR(読み方:イフエラー) | |
・書式 | =IFERROR(テストする値,エラーの時の値) | |
・内容 | 値がエラーかどうかをチェックし、テストする値が正しければそのまま表示、エラーの時はエラーの時の値を表示します。 | |
例 ISERRORの場合)=IF(
論理式,
真の場合,
偽の場合)
=IF(
ISERROR(VLOOKUP(B1,C3:I6,7,0)),
"",
VLOOKUP(B1,C3:I6,7,0))
例 IFERRORの場合)=IFERROR(
テストする値,
エラーの時の値)
=IFERROR(
VLOOKUP(B1,C3:I6,7,0),
"")
上記は2つとも同じ結果になります
IFERROR関数は
論理式(テストする値)を正しければ実行、エラー時には
エラーの時の値を返します
エラーの時の値を空白「""」にすることでエラー表示はされません
エラーの時の値はセルを指定するか「""」半角のダブルクォーテーションではさむことで文字を表示します→「"やりなおし"」「"×"」
IFERROR関数の中にあるVLOOKUP関数で呼び出したセルが「#DIV/0!」や「#NAME?」などのエラーの場合は「0」を返します。
また「TRUE」と「FALSE」はそのまま「TRUE」と「FALSE」が表示されます
紛らわしいのはIF()関数の
真の場合、
偽の場合と表記しているところ
真なんだから
真の場合に入るのでは?と思われがちですが
ISERROR(VLOOKUP(B1,C3:I6,7,0))の
エラーをチェックしているので
ISERROR()の結果がエラーならばエラーが
真の場合になり
エラーの場合は表示しない(空白)にするので
真の場合が「
""」となり
エラーではない場合(
偽の場合)が
VLOOKUP(B1,C3:I6,7,0)になります
以上 エラーを見えなくするISERRORとIFERRORでした
EXCEL2007以上ならIFERROR、EXCEL2003より古ければISERRORを使いましょう
OFFICE ONLINEや
GoogleスプレッドシートではIFERRORは使用できます