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-vlookup-if-1.xlsx(ダウンロード)

数式の組み立て方

手順1:VLOOKUPで給与を取り出す

=VLOOKUP("003佐藤", A2:E5, 5, FALSE) → 270000

範囲 A2:E5 の左端(A列)から「003佐藤」を探し、左から5列目(E列=給与)を返します。

手順2:IF関数で判定する

=IF(VLOOKUP("003佐藤", A2:E5, 5, FALSE)>=250000, "250,000以上", "250,000未満") → 250,000以上

IFの条件部分に「VLOOKUPの結果 >= 250000」を書き、TRUEなら「250,000以上」、FALSEなら「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未満"), "該当者なし")

まとめ

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

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

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

この記事を書いた人

コメント

コメントする

目次