目次
このチュートリアルでは、ExcelでIFERRORを使用してエラーを検出し、空白セル、別の値またはカスタムメッセージに置き換える方法を紹介します。 VlookupおよびIndex MatchでのIFERROR関数の使用方法と、IF ISERRORおよびIFNAの比較方法について学びます。
「このチュートリアルでは、Excelでエラーを返す方法ではなく、ワークシートをきれいに保ち、数式を透明に保つためにエラーを防ぐ方法について説明します。
Excel IFERROR関数 - 構文と基本的な使い方
ExcelのIFERROR関数は、数式や計算のエラーを検出し、管理するために設計されています。 具体的には、IFERRORは数式をチェックし、それがエラーと評価された場合は、指定した別の値を返し、そうでない場合は、数式の結果を返します。
ExcelのIFERROR関数の構文は次のとおりです。
IFERROR(value, value_if_error)どこで
- 価値 (必須) - エラーをチェックする対象。 数式、式、値、またはセル参照を指定できます。
- 値_if_error (必須) - エラーが見つかった場合に返すもの。 空の文字列(空白のセル)、テキストメッセージ、数値、別の数式または計算が可能です。
例えば、2列の数値を分割する場合、一方の列に空のセル、ゼロ、テキストが含まれていると、さまざまなエラーが発生することがあります。
それを防ぐために、IFERROR関数を使って、思い通りにエラーをキャッチし、処理することができます。
エラーの場合、空白
に空文字列(")を入力します。 値_if_error 引数で、エラーが発生した場合は空白のセルを返す。
=iferror(a2/b2, "")
エラーの場合、メッセージを表示する
また、Excelの標準的なエラー表記ではなく、独自のメッセージを表示することもできます。
=IFERROR(A2/B2, "計算エラー")
ExcelのIFERROR関数について知っておくべき5つのこと
- ExcelのIFERROR関数は、#DIV/0!、#N/A、#NAME?、#NULL!、#NUM!、#REF!、#VALUE!などすべてのエラータイプを処理します。
- の内容によっては 値_if_error 引数を使用すると、IFERROR はエラーを独自のテキストメッセージ、数値、日付、論理値、別の式の結果、または空白文字列(空白セル)に置き換えることができます。
- もし 価値 が空白のセルである場合、空文字列('')として扱われ、エラーにはならない。
- IFERROR は Excel 2007 で導入され、それ以降の Excel 2010、Excel 2013、Excel 2016、Excel 2019、Excel 2021、および Excel 365 のすべてのバージョンで利用可能です。
- Excel 2003以前のバージョンでエラーをトラップするには、この例のようにISERROR関数とIFを組み合わせて使用します。
IFERRORの計算式の例
次の例は、Excel で IFERROR を他の関数と組み合わせて使用し、より複雑なタスクを実行する方法を示しています。
Vlookupを使ったExcelのIFERROR
IFERROR関数の最も一般的な使い方の1つは、検索中の値がデータセットに存在しないことをユーザーに伝えることです。 そのためには、VLOOKUP式をIFERRORで次のように囲みます。
iferror(vlookup()の場合 ... ), "Not found")ルックアップ値が検索対象のテーブルにない場合、通常のVlookup式では、#N/Aエラーが返されます。
VLOOKUPをIFERRORで囲み、より情報量の多い、ユーザーフレンドリーなメッセージを表示することで、ユーザーの安心につながります。
=IFERROR(VLOOKUP(A2, 'ルックアップテーブル'!$A$2:$B$4, 2,FALSE), "見つかりませんでした")
下のスクリーンショットは、このIferrorの数式をExcelで表示したものです。
すべてのエラーではなく、#N/Aエラーのみをトラップしたい場合は、IFERRORの代わりにIFNA関数を使用してください。
その他のExcel IFERROR VLOOKUP式の例については、こちらのチュートリアルをご覧ください。
- Vlookupを使ったIferrorによるエラーのトラップと処理
- ルックアップ値のN番目の出現回数を取得する方法
- ルックアップ値の全出現回数を取得する方法
Excelで連続したVlookupを行うためのネストされたIFERROR関数
直前の Vlookup が成功したか失敗したかに基づいて複数の Vlookup を実行する必要がある場合、2 つ以上の IFERROR 関数を別の関数に入れ子にすることができます。
会社の地方支店の売上報告書が多数あり、ある注文IDの金額を取得したいとします。 現在のシートのルックアップ値をA2、3つのルックアップシート(レポート1、レポート2、レポート3)のルックアップ範囲をA2:B5とすると、数式は次のようになります。
=IFERROR(VLOOKUP(A2,'Report 1'!A2:B5,2,0),IFERROR(VLOOKUP(A2,'Report 2'!A2:B5,2,0),IFERROR(VLOOKUP(A2,'Report 3'!A2:B5,2,0), "not found")))
結果はこのような感じになります。
計算式の詳しいロジックについては、「Excelで逐次Vlookupを行う方法」をご覧ください。
配列式でIFERRORが発生する
ご存知のように、Excel の配列式は、1 つの計算式の中で複数の計算を行うためのものです。 配列式や式を与えて、その結果が配列になる場合は 価値 IFERROR 関数の引数を指定すると、指定した範囲の各セルに対応する値の配列が返されます。 以下の例は、その詳細を示しています。
例えば、あなたが 合計 をB列に、そして 価格 を計算したい場合、C列に 合計数量 .これは、次のようにすればできます。 の配列式です。 で,範囲B2:B4の各セルを範囲C2:C4の対応するセルで割って,その結果を足し合わせています。
=sum($b$2:$b$4/$c$2:$c$4)とする。
この数式は、除数範囲に0や空のセルがない限り正常に動作します。 0の値や空のセルが少なくとも1つある場合は、#DIV/0!というエラーが返されます。
そのエラーを修正するには、IFERROR関数内で除算を行うだけです。
=sum(iferror($b$2:$b$4/$c$2:$c$4,0))である。
この式が行うのは、各行(100/2, 200/5, 0/0)のB列の値をC列の値で割って、結果の配列{50; 40; #DIV/0!}を返すことです。 IFERROR関数は#DIV/0!エラーをすべてキャッチして0に置き換えます。 そしてSUM関数が結果の配列 {50; 40; 0} の値を合計して最終結果(50+40=90)を出力しているのです。
注:配列の数式は、Ctrl + Shift + Enter のショートカットキーで補完することを忘れないでください。
IFERRORとIF ISERRORの比較
ExcelでIFERROR関数を使うのがいかに簡単か分かったと思いますが、それでもIF ISERRORの組み合わせを使うことに傾く人がいるのはなぜでしょうか。 IFERRORと比べて何か利点があるのでしょうか。 ありません。 IFERRORが存在しなかったExcel 2003以下の古い時代には、エラーを引っかける方法はIF ISERRORだけでした。 Excel 2007以降では、もう少し複雑になっているだけで、その方法はありません。は、同じ結果を得ることができます。
例えば、Vlookupのエラーを検出するには、以下のいずれかの数式を使用することができます。
Excel2007〜Excel2016の場合。
iferror(vlookup()の場合 ... ), "Not found")すべてのExcelバージョンにおいて。
IF(ISERROR(VLOOKUP(...)), "Not found", VLOOKUP(...))IF ISERROR VLOOKUPの式では、2回Vlookupしていることに注意してください。 平たく言えば、Vlookupの結果がエラーの場合は「Not found」を返し、それ以外はVlookupの結果を出力するという式になるのですが、この式では、Vlookupの結果がエラーの場合は「Not found」を返し、それ以外はVlookupの結果を出力しています。
そして、ExcelのIf Iserror Vlookupの計算式の実例を紹介します。
=IF(ISERROR(VLOOKUP(D2, A2:B5,2,FALSE)), "Not found", VLOOKUP(D2, A2:B5,2,FALSE ))
詳しくは、「ExcelでISERROR関数を使う」をご覧ください。
IFERRORとIFNAの比較
Excel 2013から導入されたIFNAは、数式にエラーがないかチェックするもう一つの関数です。 その構文はIFERRORと似ています。
IFNA(value, value_if_na)IFNAとIFERRORはどのように違うのですか? IFNAの機能はキャッチします。 のみ #N/A エラー IFERRORはすべてのエラータイプを処理する。
IFNAはどのような場面で使われるのでしょうか? 全てのエラーを隠蔽することが賢明でない場合。 例えば、重要なデータや機密データを扱う場合、データセットに欠陥がある可能性について警告を出したいことがあります。この場合、「#」シンボルの付いた標準的なExcelエラーメッセージは、視覚的にわかりやすい指標となるでしょう。
ルックアップ値がデータセットに存在しない場合に表示されるN/Aエラーではなく、「見つかりませんでした」というメッセージを表示する数式を作成し、他のExcelエラーに注意を喚起する方法を見ていきましょう。
下のスクリーンショットのように、ルックアップテーブルからサマリーテーブルにQty.を引き出したいとします。 Excel Iferror Vlookup式を使用すると、美しい結果が得られますが、これは技術的には正しくありません。 レモン はルックアップテーブルに存在する。
N/Aをキャッチしつつ、#DIV/0のエラーを表示するには、Excel 2013およびExcel 2016のIFNA関数を使用します。
=IFNA(VLOOKUP(F3,$A$3:$D$6,4,FALSE), "見つかりませんでした")
または、Excel 2010以前のバージョンでのIF ISNAの組み合わせ。
=IF(ISNA(VLOOKUP(F3,$A$3:$D$6,4,FALSE)), "Not found", VLOOKUP(F3,$A$3:$D$6,4,FALSE))
IFNA VLOOKUPとIF ISNA VLOOKUPの式の構文は、先に説明したIFERROR VLOOKUPとIF ISERROR VLOOKUPの式と同様です。
下のスクリーンショットに示すように、Ifna Vlookup式は、ルックアップテーブルに存在しない項目に対してのみ「Not found」を返します( ピーチ ) の場合。 レモン と表示され、ルックアップテーブルにゼロ除算のエラーが含まれていることがわかります。
詳しくは、ExcelのIFNA関数の使い方をご覧ください。
ExcelでIFERRORを使用するためのベストプラクティス
Excelでエラーを検出し、空白セルやゼロ値、独自のメッセージでマスクする最も簡単な方法がIFERROR関数であることは、もうご存知でしょう。 しかし、だからといって、すべての数式をエラー処理で包む必要はありません。 以下の簡単な推奨事項は、バランスを保つのに役立つと思われます。
- 理由もなくエラーをトラップしてはいけない。
- 数式の最小部分を IFERROR で囲む。
- 特定のエラーだけを処理したい場合は、より小さなスコープを持つエラー処理関数を使用します。
- IFNAまたはIF ISNAで#N/Aエラーのみを捕捉します。
- ISERRで#N/Aを除くすべてのエラーをキャッチします。
このチュートリアルで説明した数式を詳しく見るには、IFERROR Excelワークブックのサンプルをダウンロードしてください。 読んでくださってありがとうございました!また、来週のブログでお会いしましょう。