VLOOKUPとIFを組み合わせてできることとは
ExcelのVLOOKUP関数は、表の縦方向から特定の値を取り出すために便利な関数です。また、IF関数は条件に基づいた結果を返すために使われます。
この2つの関数を組み合わせることで、データの抽出と条件判断を同時に行うことができます。
例えば、IFの論理式で行う条件判定にVLOOKUPで取得した値を設定できます。また、IF関数で条件を設定し、その条件が真であればVLOOKUP関数で対応する値を検索することもできます。
これにより、特定の条件に基づいたデータ抽出が可能になり、データ管理をより効率的に行えます。
この記事では、VLOOKUPとIFを組み合わせた活用方法を知りたい方のために、どのようなことができるのか、具体的な例を挙げて解説していきます。
VLOOKUPとIFの基本
ここでは、まずVLOOKUPとIFの基本的な使い方を押さえておきましょう。それぞれの構文と、使用上のポイントを解説します。
VLOOKUP関数とは
VLOOKUP関数は、指定した範囲から特定のデータを検索し、対応する値を返すExcelの関数です。特に、大量のデータから検索値に紐づく値を抽出したい場合に便利です。
VLOOKUPの構文は「=VLOOKUP(検索値, 範囲, 列番号, 検索方法)」です。
「検索値」には探したい値を指定し、「範囲」は検索を行うセル範囲を指定します。「列番号」は範囲内で取得したい値が左端から何列目かを指定し、「検索方法」はFALSE(完全一致)、TRUE(近似一致)のどちらかを指定します。
例えば、E2セルに「消しゴム」の価格を表示させたい場合、「=VLOOKUP("消しゴム", A2:B6, 2, FALSE)」の数式を入力します。
検索値が入っているセルD2を指定して、「=VLOOKUP(D2, A2:B6, 2, FALSE)」とすることもできます。
上図の例では、D2セルにある「消しゴム」を検索値として、A2:B6の範囲で検索しています。列番号「2」は、範囲内の2番目の列(B列)から値を取得することを示し、FALSEは完全一致の値を検索するという意味です。
ポイントとしては、検索値が範囲の左端になるように指定することが重要です。左端でない場合、エラーになります。
IF関数とは
ExcelのIF関数は、指定した条件に基づいて結果を返すための関数です。IFを使うことで、簡単な条件分岐を行い、データの表示を動的に制御することができます。
IFの構文は「=IF(論理式, [真の場合], [偽の場合])」です。
「論理式」とは、条件を判断する式のことです。「真の場合」は論理式が真の場合に返される値や処理、「偽の場合」は、論理式が偽の場合に返される値や処理を示します。
例えば、B2セルの価格が200円以上かどうかを判定し、それに応じて異なる結果を返す場合、「=IF(B2>=200,"○","×")」と記述します。
上図の例では、C2セルにVLOOKUPを記入し、B2の値が200以上の場合には「○」、そうでない場合には「×」を表示します。
IF関数は、VLOOKUPをはじめとした他の関数と組み合わせて使用することで、さらに複雑な条件分岐やデータ処理を行えます。
VLOOKUPとIFを組み合わせるケースとは
ここでは、VLOOKUPとIFを組み合わせて使うケースを2つ解説します。
IFの条件判定を行う理論式にVLOOKUPを使う場合と、IFで条件判定した後の「真の場合」「偽の場合」にVLOOKUPの処理を設定する場合です。
IFの論理式にVLOOKUPを使うケース
まず、IFの条件判定を行う「論理式」にVLOOKUPを使うケースを見てみましょう。
これにより、VLOOKUP関数を使って取得した値をIFの判断条件に使って、異なる結果を返すことができます。
例えば、テストの受験者氏名と点数が記載された表で、「Dさん」のテストの点数が80点以上なら「合格」、それ未満なら「不合格」と表示したいケースを見てみましょう。
その場合、まずVLOOKUP関数を使って点数を取得し、次に、IF関数を使ってその点数を評価します。
数式は「=IF(VLOOKUP("Dさん", A2:B6, 2, FALSE) >= 80, "合格", "不合格")」のようになります。
この数式では、まずVLOOKUP関数が「Dさん」の点数を検索し、その点数が80点以上かどうかをIF関数が判定します。これにより、判断結果に応じた「合格」「不合格」が自動的に表示されます。
IFで返す値にVLOOKUPを使うケース
IF関数の「真の場合」「偽の場合」で返す値にVLOOKUP関数を利用することで、条件に応じたデータの取得が柔軟に行えます。
例えば、商品名から価格を取得したい時、商品IDは存在するけれど、商品の準備中で価格が入っていないものがあるとします。
商品名が「準備中」である場合は「商品準備中」と表示し、それ以外の商品名が入力されている場合にはその商品名に対応する価格を表示する場合、「=IF(B2="準備中", "商品準備中", VLOOKUP(A2, A2:B6, 2, FALSE))」のように記述します。
上図の例では、上の数式ではB2セルが「準備中」のため「商品準備中」を返し、下の数式ではB3のセルが「準備中」以外の商品名のため、A2:B6の範囲から商品名に対する価格をVLOOKUP関数で返します。
このように、IF関数で返す値にVLOOKUP関数を使用することで、IFの判断結果に応じたデータ表示が可能です。
また、IF関数の真の場合、偽の場合のいずれにもVLOOKUP関数を使用することができます。
例えば、A2のセル内容が「特定条件」に一致する場合とそうでない場合で、異なる範囲や列番号からデータを取得する場合、「=IF(A2="特定条件", VLOOKUP(A2, 範囲1, 列番号1, FALSE), VLOOKUP(A2, 範囲2, 列番号2, FALSE))」のような式を使って実現できます。
VLOOKUPとIFの組み合わせの具体的な活用例
ここでは、VLOOKUPとIFを組み合わせて使う例を3つ解説します。VLOOKUPで取得した値をIFの理論式に使うことで、さまざまな場面でデータ管理を便利にすることができます。
プロジェクトの進捗状況の確認
VLOOKUPとIFの組み合わせでプロジェクトの進捗状況を確認する方法を紹介します。
例えば、A列にタスク名、B列に進捗率が記載されているとします。また、D2には確認したいタスク名が入力されており、E2にはそのタスクの進捗状況が100%なら「完了」、それ以外なら「未完了」を表示するとします。
E2セルに「=IF(VLOOKUP(D2, A2:B6, 2, FALSE)=100, "完了", "未完了")」を入力します。
この数式では、まずVLOOKUP関数がD2セルに入力されたタスク名をA列から検索し、対応するB列の進捗率を取得します。
IF関数で取得した進捗率が「100」かどうか判断し、100なら「完了」、それ以外なら「未完了」を表示します。
商品の価格帯によるカテゴリ分け
VLOOKUPとIFの組み合わせで、商品の価格帯によるカテゴリ分けを行う方法を解説します。
まず、A列には商品名、B列には価格を入力します。例えば、「鉛筆」は100円、「コップ」は1,500円、「ワイヤレスマウス」は3,500円、「抗菌まな板」は7,000円、「モバイルバッテリー」は8,000円とします。
次に、特定の商品(ここでは「ワイヤレスマウス」)の価格に基づいて価格帯を判定するための数式を作成します。
D2セルに「=IF(VLOOKUP("ワイヤレスマウス",A2:B6, 2, FALSE) <= 3000, "低価格帯",IF(VLOOKUP("ワイヤレスマウス",A2:B6, 2, FALSE) <= 7000, "中価格帯", "高価格帯"))」を入力します。
この数式では、まずVLOOKUP関数を使って「ワイヤレスマウス」の価格を取得します。
次に、IF関数を使って複数条件の判定を行っています。取得した価格が3,000円以下であれば「低価格帯」、7,000円以下であれば「中価格帯」、それ以外の場合は「高価格帯」と表示します。
この例では、VLOOKUP関数で「ワイヤレスマウス」の価格3,500円を取得し、それが3,000円より高く7,000円以下であるため「中価格帯」と判定されます。
販売員が月間平均売上を超えたら〇を付ける
VLOOKUPとIF関数を組み合わせて、販売員の月間売上を評価し、平均売上を超えた場合に〇を付ける方法を解説します。
まず、A列に販売員の名前を入力します。例えば、Aさん、Bさん、Cさんなどです。次に、B列には各販売員の月間売上を入力します。例えば、Aさんが750,000円、Bさんが820,000円、Cさんが900,000円とします。
続いて、平均売上を計算してその値を別の場所に入力します。例えば、A5セルに「月間売上平均」と記入し、B5セルに「=AVERAGE(B2:B4)」を入力します。これでB5セルに平均売上が表示されます。
販売員の月間売上が平均売上を超えているかどうかを判定するために、C2セルに「=IF(B5 <= VLOOKUP(A2, A2:B4,2,FALSE), "〇", "-")」の数式を入力します。
Aさんの月間売上金額をVLOOKUPで取得し、IFで判断すると売上平均未満のため、C2には ”-” が表示されます。一方、Cさんの月間売上金額を検索したC4セルでは、売上平均以上のため ”〇” が表示されます。
VLOOKUPとIFの組み合わせによる応用
ここでは、VLOOKUPとIFの組み合わせの応用として、VLOOKUPの検索結果が#N/Aエラーになったり、「0」などの意図しない値になったりする場合の対策について解説します。
VLOOKUPの「#N/Aエラー」の対策
ExcelでVLOOKUP関数を使用する際、検索値が見つからない場合に「#N/A」が表示されます。このエラーを回避するために、VLOOKUPとIF、さらにISNA関数を組み合わせて対策する方法を説明します。
ISNA関数は、指定した値が#N/Aであるかどうかを判定するための関数です。構文は「ISNA(値)」で、引数に指定した値が#N/Aエラーだった場合にTRUEを返します。
具体的には、VLOOKUP関数を使って検索を行い、その結果が#N/Aエラーであった場合に、ISNA関数がTRUEを返し、IF関数が指定したエラー処理の結果を返します。
例えば、「=IF(ISNA(VLOOKUP(A2, $D$2:$E$10, 2, FALSE)), "値が見つかりません", VLOOKUP(A2, $D$2:$E$10, 2, FALSE))」という式を見てみましょう。
VLOOKUP関数が#N/Aを返すとISNA関数がTRUEを返し、IFは「真の場合」の「値が見つかりません」というメッセージを返します。一方、#N/Aエラーでない場合はVLOOKUPの結果が表示されます。
VLOOKUPの結果で0が表示される場合の対策
ExcelのVLOOKUP関数を使用する際、検索値に紐づくセルが空白の場合に「0」を返します。この「0」が表示されると、データの見栄えや意味が変わってしまうことがあります。
これを防ぎたい場合、IFと組み合わせることで空白を返すように設定できます。
例えば、A列に商品名、B列に在庫数が記入されています。E2セルには「=VLOOKUP(D2,A2:B5,2,FALSE)」が入力され、D2セルに書いてある商品の在庫を取得します。
ここで、消しゴムの在庫はまだあるのに、キーボードの誤操作でB3セルの消しゴムの在庫の数字を消してしまい、空白セルになってしまったとします。
この状況でE2セルにVLOOKUPで取得した値が「0」と表示されると、消しゴムの在庫が0になってしまったものと思ってしまいます。そこで、VLOOKUPで取得した値が空白の場合は、そのまま空白を表示するようにしたいです。
E2セルに「=IF(VLOOKUP(D2,A2:B5,2,FALSE)="","",VLOOKUP(D2,A2:B5,2,FALSE))」の数式を入力します。
この数式では、まずVLOOKUP関数でD2セルの商品名を検索し、その価格を取得します。
その結果が「""」(空白)と一致したら真の場合の処理で空白を返し、そうでなければ偽の場合の処理でVLOOKUPの結果をそのまま表示します。
VLOOKUPとIFを組み合わせてデータ管理をさらに便利にしよう
ここまで、VLOOKUPとIF関数の組み合わせによるさまざまな活用方法を説明してきました。
特定の条件に基づいてデータを検索するVLOOKUPと、条件に応じて異なる処理ができるIFで、さらに柔軟にデータの検索を行うことができることが分かりました。
また、VLOOKUPで特定の値が見つからない場合に「#N/Aエラー」を回避する方法や、検索結果が0の場合に空白を表示する方法などの応用も、活用できる場面が多いでしょう。
Excelを使ったデータ管理をさらに便利にして業務の効率を向上させるため、VLOOKUPとIFの組み合わせをぜひ実践してみることをおすすめします。
その他VLOOKUP関連記事
その他、VLOOKUPに関連する内容は、下記の記事でもご紹介しています。ぜひ参考にご覧ください。
VLOOKUP関数で複数条件を指定する?簡単にできる方法を図解
VLOOKUPで別シートを参照するには?記述方法や実践例を解説
VLOOKUP関数でエラーが出た?#REF!エラーなどの解決法を詳しく解説
VLOOKUP関数がうまく反映されない?その原因と対策を図解
VLOOKUPとIFの組み合わせで何ができる?便利な使い方を解説
VLOOKUPで部分一致検索するには?ワイルドカード使用法を解説
VLOOKUPとXLOOKUPの違いとは?使い方を図解で解説
VLOOKUPで0を表示しない方法とは?発生原因と対処法を解説
マイナビエージェントに無料登録して
転職サポートを受ける
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから