前回この記事を記載しました。
「IFERRORじゃなくてISERROR?どっちを使うのが正解なの?」
と思った方がいるかもしれません。
また、「IFERRORって何?聞いたことない」という方もいると思うので
書式なども含め違いを解説していきます。
エクセルを入れている環境・バージョン
Windows7
Excel2016
結論から言いますと
先に結論を言っちゃいます。
・エラー処理をする際に記述する書式が長くなるかどうか
・Excel2003以前のバージョンでも使用することができるかどうか
違いはこの2点です!
サンプルデータ
今回は以下の表を使ってやっていきます。
VLOOKUPを使い検索を行うロジックですがさっそくエラーがでています。
これは商品名(E3)が空だからエラーがでています。
このエラー処理をISERRORとIFERRORを使いやっていきます。
IFERRORの書式
=IFERROR(①値, ②エラーの場合の値)
①値
エラーかどうかを判定する値
②エラーの場合の値
エラーの場合に表示する値
ISERRORの書式
=ISERROR(①テストの対象)
①テストの対象
エラーかどうかを判定する対象
範囲指定をしたセルではなく単体のセルを指定する
返り値はTRUEかFALSEとなり、エラーになる場合はTRUE、エラーにならない場合はFALSE
エラー処理の記述
IFERRORとISERRORのそれぞれのエラー処理を以下に記載します。
◎IFERRORの場合
サンプルデータに当てはめるとこういう感じになります。
=IFERROR(VLOOKUP(E3, A2:C6, 3, FALSE), "在庫なし")
◎ISERRORの場合
サンプルデータに当てはめるとこういう感じになります。
=IF(ISERROR(VLOOKUP(E3, A2:C6, 3, FALSE)), "在庫なし", VLOOKUP(E3, A2:C6, 3, FALSE))
どちらも商品名(E3)が空の場合、「在庫なし」と表示されていますね。
ISERRORとIFERRORの違いに「エラー処理をする際に記述する書式が長くなるかどうか」をあげましたが、
上記を見ていただければ一目瞭然ですね。
IFERRORのが書式が短くスッキリしています。
IFERRORとISERROR、どっちを使えば良いの?
エラー処理を記述するエクセルが古いバージョンでも使うのか、を基準に考えると良いでしょう。
ISERRORは全てのバージョンで動きますが、IFERRORはExcel2007以降のバージョンでないと動きません。
「古いバージョンで使うかは分からないよ!」という方は諦めて頑張ってISERRORを使って記述しましょう。
書式の記述が長くなってしまっても動かないよりはマシです。
まとめ
・IFERROR、ISERRORは「エラー処理をする際に記述する書式が長くなるかどうか」「Excel2003以前のバージョンでも使用することができるかどうか」の2点
・IFERRORの書式は「=IFERROR(値, エラーの場合の値)」、ISERRORの書式は「=ISERROR(テストの対象)」
・ISERRORは全てのバージョンで動くが、IFERRORはExcel2007以降のバージョンでないと動かない
エラー処理…それはエクセルを作り込む場合、避けて通れない道となることが多いと思います。
他にも何種類かエラー処理の関数があるのですがそれはまた今度記載していきます。