目次
チュートリアルでは、V LOOKUPとIF関数を組み合わせて、Excelでif条件を指定してVルックアップする方法、IF ISNA VLOOKUP式を使用して、#N/Aエラーを独自のテキスト、ゼロ、空白セルに置き換える方法について学習します。
VLOOKUP関数とIF関数は、それぞれ単体でも便利ですが、一緒に使うとさらに便利です。 このチュートリアルは、2つの関数の構文をよく覚えていることを前提としていますが、そうでなければ、上記のリンクから知識をブラッシュアップすることができます。
If文によるVlookup:True/False、Yes/Noなどを返す。
IfとVlookupを一緒に使う場合のよくあるシナリオとして、Vlookupが返す値をサンプル値と比較して はい / いいえ または 真/偽 を結果
多くの場合、以下のような一般的な計算式でうまくいくでしょう。
if(vlookup(...) =) 価値 , TRUE, FALSE)この数式を分かりやすく訳すと、Excelに次のように指示します。 真 Vlookup が真(指定した値と等しい)の場合、数式は 偽 .
以下に、このIF Vlookup式の実際の使用例をいくつか紹介します。
例1.特定の値を調べる
たとえば、A 列に品目、B 列に数量のリストがあるとします。ユーザー用のダッシュボードを作成する場合、E1 の品目の数量をチェックして、その品目が在庫にあるか売り切れかをユーザーに知らせる数式が必要です。
このように完全一致式で通常のVlookupで数量を引き出します。
=vlookup(e1,$a$2:$b$10,2,false)です。
次に、Vlookupの結果を0と比較し、0に等しい場合は「No」、そうでない場合は「Yes」を返すIF文を記述します。
=IF(VLOOKUP(E1,$A$2:$B$10,2,FALSE)=0, "いいえ", "はい")
の代わりに はい/いいえ を返すことができます。 TRUE/FALSE または 在庫あり/売り切れ または他の2択です。 例えば
=IF(VLOOKUP(E1,$A$2:$B$10,2)=0, "Sold out", "In stock")
また、Vlookupで返された値を、サンプル テキスト この場合、文字列は必ず引用符で囲んでください。
=IF(VLOOKUP(E1,$A$2:$B$10,2)="sample text",TRUE,FALSE)とする。
例2.Vlookupの結果を他のセルと比較する
ExcelのIf条件付きVlookupのもう一つの典型的な例は、Vlookupの出力を他のセルの値と比較することです。 例えば、セルG2の数値より大きいか等しいかをチェックすることができます。
=IF(VLOOKUP(E1,$A$2:$B$10,2)>=G2, "Yes!", "No")
そして、Vlookupを使ったIf式の動作は以下の通りです。
同様に、Excel If Vlookup 式では、他の任意の論理演算子とセル参照を一緒に使用することができます。
例3.Vlookupの値を短いリストで表示する
対象列の各セルを別のリストと比較し、返す場合 真 または はい にマッチした場合。 偽 または いいえ そうでない場合は、この汎用 IF ISNA VLOOKUP 式を使用します。
IF(ISNA( VLOOKUP(...)), "いいえ", "はい")Vlookupの結果が#N/Aエラーの場合、数式は "No "を返し、ルックアップ値がルックアップリストに見つからないことを意味します。 一致した場合は "Yes "を返します。 たとえば、次のようになります。
=IF(ISNA(VLOOKUP(A2,$D$2:$D$4,1,FALSE)), "No", "Yes")
ビジネスロジックで逆の結果が必要な場合は、「はい」と「いいえ」を入れ替えるだけで、数式のロジックが逆になります。
=IF(ISNA(VLOOKUP(A2,$D$2:$D$4,1,FALSE)), "Yes", "No")
Excelの場合 Vlookup式で異なる計算を実行する
Vlookupを使ったIf機能では、独自のテキストメッセージを表示する以外にも、指定した条件に基づいてさまざまな計算を行うことができます。
この例をさらに進めて、特定の販売者(F1)の効果に応じた手数料を計算してみましょう。200ドル以上儲けた人は20%、それ以外の人は10%の手数料を支払うことになります。
そのために、Vlookupが返す値が200以上かどうかを確認し、200以上であれば20%、そうでなければ10%を掛ける。
=IF(VLOOKUP(F1,$A$2:$C$10,3,FALSE )>=200, VLOOKUP(F1,$A$2:$C$10,3,FALSE)*20%, VLOOKUP(F1,$A$2:$C$10,3,FALSE)*10%))
ここで、A2:A10は販売者名、C2:C10は売上高である。
IF ISNA VLOOKUPで#N/Aエラーを隠す
VLOOKUP関数は、指定した値が見つからない場合、#N/Aエラーを投げます。 そのエラーをキャッチして独自のテキストに置き換えるには、次のようにIF関数の論理テストにVlookup式を埋め込みます。
IF(ISNA(VLOOKUP(...)), "Not found", VLOOKUP(...))当然、「Not found」の代わりに好きなテキストを入力することができます。
例えば、ある列に販売者の名前、別の列に販売額のリストがあるとします。 あなたの仕事は、ユーザーがF1で入力した名前に対応する数字を引き出すことです。 名前が見つからない場合は、その旨を示すメッセージを表示します。
A2:A10 の名前と C2:C10 の金額で、以下の If Vlookup 式でタスクを実行することができます。
=IF(ISNA(VLOOKUP(F1,$A$2:$C$10,3,FALSE)), "見つかりませんでした", VLOOKUP(F1,$A$2:$C$10,3,FALSE))
名前が見つかれば、それに対応する売上金額が返される。
ルックアップ値が見つからない場合は 不明 というメッセージが表示され、#N/Aエラーは発生しません。
この式の仕組み
この式のロジックは非常にシンプルです。ISNA関数を使って、Vlookupに#N/Aエラーがないかどうかをチェックします。 エラーが発生するとISNAはTRUEを、それ以外はFALSEを返します。 上記の値はIF関数の論理テストに進み、以下のいずれかを実行します。
- 論理テストがTRUE(#N/Aエラー)の場合、メッセージが表示されます。
- 論理テストがFALSE(ルックアップ値が見つかった)の場合、Vlookupは正常にマッチを返します。
新しいExcelバージョンでのIFNA VLOOKUP
Excel 2013から、IF ISNAの代わりにIFNA関数を使用して、#N/Aエラーをキャッチして処理することができるようになりました。
ifna(vlookup(...), " 不明 ")この例では、数式は次のような形になります。
=IFNA(VLOOKUP(F1,$A$2:$C$10,3, FALSE), "見つかりませんでした")
ヒント:#N/Aだけでなく、あらゆる種類のエラーを捕捉したい場合は、VLOOKUPとIFERROR関数を組み合わせて使用します。 詳細はこちら:ExcelのIFERROR VLOOKUP。
Excel Vlookup: 見つからなければ0を返す。
数値を扱う場合、ルックアップ値が見つからないときにゼロを返したいことがあります。 これを実現するには、前述の IF ISNA VLOOKUP 式に少し手を加えて使います。 value_if_true IF関数の引数を指定します。
if(isna(vlookup(...)), 0, vlookup(...))サンプルの表では、次のような式になります。
=if(isna(vlookup(f2,$a$2:$c$10,3,false)), 0, vlookup(f2,$a$2:$c$10,3,false))
最近のバージョンのExcel 2016や2013では、IFNAのVlookupの組み合わせが再び使えるようになりました。
=ifna(vlookup(i2,$a$2:$c$10,3, false)), 0)
Excel Vlookup: 見つからない場合は空白のセルを返します。
Vlookup if then "ステートメントのもう一つのバリエーションとして、ルックアップ値が見つからない場合は何も返さないというものがあります。 これを行うには、#N/Aエラーではなく空文字列("")を返すように数式を指定します。
if(isna(vlookup(...)), "", vlookup(...))以下は、完全な計算式の例です。
すべてのExcelバージョンに対応。
=if(isna(vlookup(f2,$a$2:$c$10,3,false)), "", vlookup(f2,$a$2:$c$10,3,false))
Excel 2016、Excel 2013の場合。
=ifna(vlookup(f2,$a$2:$c$10,3, false), "")
If with Index Match - 左VlookupをIf条件とする。
Excelで縦方向の検索を行うには、VLOOKUP関数だけでなく、INDEX MATCHの組み合わせも使用でき、さらに強力で汎用性が高いことは、経験豊富なExcelユーザーならご存知でしょう。 いい知らせは、IFと一緒にVlookupと全く同じように動作させることができるということです。
例えば、A列に注文番号、B列に販売者名があり、特定の販売者の注文番号を引き出す数式を探しているとします。
Vlookupは右から左への検索ができないので、この場合は使えません。 Index Matchは、ルックアップ値がルックアップ列で見つかる限り、問題なく動作します。 見つからない場合は、#N/Aエラーが表示されます。 標準エラー表記を独自のテキストに置き換えるには、IF ISNA内でIndex Matchをネストしてください。
=IF(ISNA(INDEX(A2:A10, MATCH(F1, $B$2:$B$10, 0))), "Not found", INDEX(A2:A10, MATCH(F1, $B$2:$B$10, 0)))
Excel 2016、2016では、IF ISNAの代わりにIFNAを使用することで、よりコンパクトな数式にすることができます。
=IFNA(INDEX(A2:A10, MATCH(F1, $B$2:$B$10, 0)), "見つかりませんでした")
同様に、他のIf式でもIndex Matchを使用することができます。
以上、VlookupとIF文の使い方をご紹介しました。 このチュートリアルで取り上げた数式をより詳しくご覧になりたい方は、以下のサンプルワークブックをダウンロードしてください。 読んでいただきありがとうございました。
練習用ワークブック(ダウンロード
Excel IF Vlookup - 計算式の例 (.xlsx ファイル)