VLOOKUPとIF関数の組み合わせ方|検索結果で条件分岐する【複数条件・サンプル付き】

結論(先に答え)

VLOOKUPで取り出した値をIF関数の条件にすると、検索結果に応じて表示を切り替えられます:=IF(VLOOKUP("003佐藤", A2:E5, 5, FALSE)>=250000, "250,000以上", "250,000未満")。逆に「見つからなければ〇〇」ならIFではなく IFERROR を使います。

VLOOKUPで取り出した値を「そのまま表示」するだけでなく、基準と比べて判定したい——例えば「給与が25万円以上か」「在庫が発注点を下回っていないか」などは、VLOOKUPをIF関数の中に入れることで1つの数式で実現できます。この記事では、社員番号と名前の2条件で検索した給与をIF関数で判定する例で解説します。

VLOOKUPで検索した給与をIF関数で判定する図解
目次

サンプルデータ

ABCDE
1社員番号&名前社員番号名前部署給与
2001山田001山田営業300000
3002田中002田中経理250000
4003佐藤003佐藤営業270000
5004鈴木004鈴木人事280000

A列は =B2&C2 で「社員番号&名前」を連結した作業列です。こうすると「003」かつ「佐藤」という2つの条件をひとつの検索値として扱えます。

練習用Excelファイル(無料ダウンロード)
この記事の解説で使うExcelデータです。数式と練習データが入っているので、本文の式を同じ表で試せます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

数式の組み立て方

手順:G2 に IF と VLOOKUP の式を入れて Enter

「003佐藤」の給与を VLOOKUP で取り出し、25万円以上かどうかを IF で判定します。G2 に次の式を入力して、Enter キーを押します❶。

G2 に入れる式
=IF(VLOOKUP("003佐藤",A2:E5,5,FALSE)>=250000,"250,000以上","250,000未満")
VLOOKUP("003佐藤",A2:E5,5,FALSE) VLOOKUP の部分(佐藤の給与)>=250000 論理式の比べ方(25万以上か)"250,000以上" 真の場合(以上のとき)"250,000未満" 偽の場合(未満のとき)
ひとことで佐藤の給与を表から取り出し、250,000 以上なら「250,000以上」、そうでなければ「250,000未満」と表示する
式を分けて読むと(色は画像の枠と同じ)
VLOOKUP の部分VLOOKUP("003佐藤",A2:E5,5,FALSE)
何を取り出す?
→ 佐藤の給与(270,000)
論理式の比べ方>=250000
どう判定する?
→ 250,000 以上か
真の場合"250,000以上"
以上のときは?
→ 「250,000以上」と表示
偽の場合"250,000未満"
未満のときは?
→ 「250,000未満」と表示
自分の表で使うときは
青に「取り出したい値の VLOOKUP」、オレンジに「基準の数」、緑と灰色に「表示したい文字」を入れます。例:受験番号(A2)の点数が 80 点以上なら「合格」=IF(VLOOKUP(A2,$F$2:$H$50,3,FALSE)>=80,"合格","不合格")
エクセルでIFとVLOOKUPを組み合わせて給与が25万以上かを判定する式と、取り出す部分・条件・表示を色分けした画面
エクセルでIFとVLOOKUPを組み合わせて給与が25万以上かを判定する式と、取り出す部分・条件・表示を色分けした画面

確認:佐藤の給与 270,000 は 25万以上

エクセルのVLOOKUPで003佐藤の行の給与270000を取り出し、IFで250,000以上と判定したことを色で示した画面
エクセルのVLOOKUPで003佐藤の行の給与270000を取り出し、IFで250,000以上と判定したことを色で示した画面

答えは 250,000以上 になりました❷。式は、内側の VLOOKUP から順に計算しています。

  1. VLOOKUPで、表(A2:E5)の左の列から「003佐藤」を探し、左から 5 列目(給与)を取り出す
    ⇒ 4 行目の 270,000
  2. IF で、取り出した給与が 250,000 以上かを判定する
    ⇒ 270,000 は 250,000 以上なので 「250,000以上」
ヒント:「以上」は >= で書く
> と書くと「より大きい」になり、ちょうど 250,000 の人(田中)が「250,000未満」と表示されてしまいます。

よくある落とし穴:数字が文字列で入っている

給与の列が文字列(左寄せの「300000」など)で入力されていると、VLOOKUP(…)>=250000 は値に関係なく常にTRUEになり、全員「以上」と判定されてしまいます(Excelでは文字列は数値より大きいと扱われるため)。セルの左上に緑の三角が出ていたら文字列です。数値に変換してから使ってください。

応用:見つからない場合の対処

検索値が表にないとVLOOKUPは #N/A を返し、IF全体もエラーになります。「見つからない場合」の表示を分けたいときは、IFではなくIFERRORで包みます。

=IFERROR(IF(VLOOKUP(H1, A2:E5, 5, FALSE)>=250000, "250,000以上", "250,000未満"), "該当者なし")

VLOOKUP関数そのものの使い方(列番号・完全一致・別シート)は、エクセルのVLOOKUPの使い方で説明しています。

まとめ

やりたいこと数式の形
検索結果で条件分岐=IF(VLOOKUP(…)>=基準, 真の表示, 偽の表示)
2つの条件で検索作業列で条件を&連結 → その列をVLOOKUPで検索
見つからない場合の表示=IFERROR(…, “該当者なし”)

▶ こんな場合はこちら:VLOOKUPで複数の条件を組み合わせて検索する/XLOOKUPとIF関数の組み合わせ方

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次