このチュートリアルでは、異なるエラーを検出し処理するために IFERROR および VLOOKUP 関数を一緒に使用する方法について見ていきます。 さらに、複数のIFERROR関数を1つずつ入れ子にして、Excelで連続したVlookupを行う方法を学びます。

Excel VLOOKUPとIFERROR – この2つの関数を別々に理解するのはかなり難しいかもしれませんし、それらが組み合わされた場合はなおさらです。 この記事では、よくある使い方を取り上げ、数式の論理を明確に説明した、わかりやすい例をいくつか紹介します。

IFERRORとVLOOKUP関数の使用経験があまりない場合は、上記のリンクを参考に、まずその基本を復習するとよいかもしれません。

  • VLOOKUPでIFERRORでエラー処理
    • VLOOKUPでN/Aエラーではなく独自のテキストを返す
    • VLOOKUPで何も見つからなかったら空白セルか0を返す
  • Nest IFERROR VLOOKUP 内で常に何かを見つける
  • IFERROR をネストした連続した Vlookup

IFERROR VLOOKUP 式で #N/A やその他のエラーを処理する

Excel Vlookup で検索値を見つけることができないとき、そのエラーは次のとおりです。 のような#N/Aエラーを投げる。

ビジネスのニーズによっては、独自のテキスト、ゼロ、または空白のセルでエラーを隠蔽することもできます。

例1. Iferror Vlookup式ですべてのエラーを独自のテキストに置き換える

標準のエラー表記を独自のテキストに置き換えたい場合は、VLOOKUP式をIFERRORで囲み、第2引数(値_if_error)に任意のテキスト、たとえば「見つかりません」とタイプしてください。

IFERROR(VLOOKUP(…), “Not found”)

メイン テーブルの B2 にルックアップ値、ルックアップ テーブルのルックアップ範囲 A2:B4 で、数式は次のような形になります。

=IFERROR(VLOOKUP(B2,'Lookup table'!$A:$B, 2, FALSE), "Not found")

以下のスクリーンショットは、Excel IFERROR VLOOKUP 式が動作している様子を示しています:

結果はよりわかりやすく、威圧的でないように見えますね?

同様の方法で、IFERROR と一緒に INDEX MATCH を使用できます。

=IFERROR(INDEX('Lookup table'!$B:$B,MATCH(B2,'Lookup table'!$A:$A,0)), "Not found")

IFERROR INDEX MATCH 式は、検索列の左にある列から値を取得し(左検索)、何も見つからなかったときに独自のテキストを返したい場合に特に有用です。 VLOOKUPを使ったIFERRORで何も見つからなかったら空白または0を返す

ルックアップ値が見つからなかったときに何も表示したくない場合は、IFERRORに空文字列(””)を表示させましょう。

IFERROR(VLOOKUP(…),””)

この例では、数式は次のようになります:

=IFERROR(VLOOKUP(B2,'Lookup table'!$A:$B, 2, FALSE), "")

ご覧のように、検索リストに検索値がない場合は何も返さないようにします。

エラーを0値に置き換えたい場合は、最後の引数に0を入れます:

=IFERROR(VLOOKUP(B2,'Lookup table'!$A:$B, 2, FALSE), 0)

注意!

=IFERROR(VLOOKUP(B2,'Lookup table'!$A:$B, 2, FALSE), 0)

は、「0」を意味します。 ExcelのIFERROR関数は、#N/Aだけでなく、あらゆる種類のエラーを捕捉します。 良いのか悪いのか? すべてはあなたの目標に依存します。 もし、起こりうるすべてのエラーを隠したいのであれば、IFERROR Vlookupは最適な方法です。 しかし、多くの状況で賢明でない手法かもしれません。

たとえば、テーブル データに名前付きの範囲を作成し、Vlookup 式でその名前のスペルを間違えた場合、IFERROR は #NAME? エラーをキャッチし「見つかりません」またはあなたが提供する他のテキストに置き換えます。 その結果、自分でタイプミスを発見しない限り、数式が間違った結果を出していることに気づかない可能性があります。 このような場合、より合理的な方法は、#N/Aエラーのみをトラップすることである。 これには、Office 365、Excel 209、Excel 2016、および Excel 2013 の Excel で IFNA Vlookup 式を、すべての Excel バージョンで IF ISNA VLOOKUP を使用します。

要するに、VLOOKUP 式用のコンパニオンを選ぶときは非常に慎重でなければなりません 🙂

Nest IFERROR within VLOOKUP to always find something

以下の状況を想像してみてください: リストで特定の値を調べても見つからず、その値が見つからない。 どのような選択肢があるでしょうか。 N/Aエラーを取得するか、独自のメッセージを表示するかです。 実際、3 つ目の選択肢があります。プライマリ ルックアップがつまずいた場合、確実に存在する他の何かを検索します。

この例をさらに進めて、特定のオフィスの内線番号を表示するユーザー用のある種のダッシュボードを作成しましょう。 次のようなものです。

では、D2 のオフィス番号に基づいて、列 B から内線番号を引き出すにはどうすればよいでしょうか。 この通常の Vlookup 式では、

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

ユーザーが D2 に有効な番号を入力する限り、うまく動作します。 しかし、ユーザーが存在しない数字を入力した場合はどうでしょうか。 この場合、セントラルオフィスに電話するようにしましょう! この場合、IFERRORのvalue引数に上記の式を埋め込んで、value_if_error引数に別のVlookupを入れます。

完全な式は少し長いですが、完全に機能します。

=IFERROR(VLOOKUP("office "&$D,$A:$B,2,FALSE),VLOOKUP("central office",$A:$B,2,FALSE))

オフィス番号が見つかった場合、ユーザーは対応する拡張番号を受け取ります。

数式をもう少しコンパクトにするには、別のアプローチを使用できます。

最初に、D2 の数字が検索列に存在するかを確認します (数式が列 A から値を検索して返すように col_index_num を 1 に設定していることに注意してください)。 VLOOKUP(D2,$A$2:$B$7,1,FALSE)

指定したオフィス番号が見つからない場合、ルックアップリストに確実にある「セントラルオフィス」という文字列を探します。 この場合、最初の VLOOKUP を IFERROR でラップし、この組み合わせ全体を別の VLOOKUP 関数内にネストします。

=VLOOKUP(IFERROR(VLOOKUP(D2,$A:$B,1,FALSE),"central office"),$A:$B,2)

まあ、少し異なる式ですが、結果は同じです。 なぜIFERRORで直接内線番号を供給しないのでしょうか。 なぜなら、内線番号が将来のある時点で変更される可能性があるからです。 そうなった場合、VLOOKUP式の一つ一つの更新を気にすることなく、ソーステーブルで一度だけデータを更新すればいいのです。

How to do sequential VLOOKUPs in Excel

Excel で、前の検索が成功したか失敗したかによって、いわゆる順次または連鎖した Vlookup を実行する必要がある状況では、Vlookup を 1 つずつ実行する 2 つまたは複数の IFERROR 関数を入れ子にしてください。

IFERROR(VLOOKUP(…), IFERROR(VLOOKUP(…), IFERROR(VLOOKUP(…), “Not found”)))

この式は次のロジックで動作します:

最初の VLOOKUP が何も見つからない場合、最初の IFERROR がエラーをトラップして別の VLOOKUP が実行されます。 2番目のVLOOKUPが失敗した場合、2番目のIFERRORがエラーを捕捉し、3番目のVLOOKUPを実行し、以下同様です。

このネストされた IFERROR 式は、次の例に示すように、複数のシートにわたって Vlookup しなければならない場合に特に役立ちます。

たとえば、3 つの異なるワークシートに同質のデータ (この例ではオフィス番号) のリストがあり、特定の番号の内線を取得したいとします。

ルックアップ値が現在のシートのセル A2 にあり、ルックアップ範囲が 3 つの異なるワークシート (North, South and West) の A2:B5 であると仮定すると、次の式がうまく機能します。

=IFERROR(VLOOKUP(A2,North!$A:$B,2,FALSE), IFERROR(VLOOKUP(A2,South!$A:$B,2,FALSE), IFERROR(VLOOKUP(A2,West!$A:$B,2,FALSE),"Not found")))

そこで、この「連鎖した Vlookups」式は、3 つのシートすべてを、式にネストした順に検索し、最初に見つかったマッチをもたらします:

これが Excel で VLOOKUP と IFERROR を使用する方法です。 読んでいただきありがとうございました!また来週のブログでお会いしましょう。

ダウンロード

Excel IFERROR VLOOKUPの数式例

こちらもどうぞ

  • Excel IFERROR関数と数式例
  • VLOOKUP で IF を使うExcel VLOOKUP 初級講座

もどうぞ

コメントを残す

メールアドレスが公開されることはありません。