VLOOKUPで取り出した値をIF関数の条件にすると、検索結果に応じて表示を切り替えられます:=IF(VLOOKUP("003佐藤", A2:E5, 5, FALSE)>=250000, "250,000以上", "250,000未満")。逆に「見つからなければ〇〇」ならIFではなく IFERROR を使います。
VLOOKUPで取り出した値を「そのまま表示」するだけでなく、基準と比べて判定したい——例えば「給与が25万円以上か」「在庫が発注点を下回っていないか」などは、VLOOKUPをIF関数の中に入れることで1つの数式で実現できます。この記事では、社員番号と名前の2条件で検索した給与をIF関数で判定する例で解説します。

サンプルデータ
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 社員番号&名前 | 社員番号 | 名前 | 部署 | 給与 |
| 2 | 001山田 | 001 | 山田 | 営業 | 300000 |
| 3 | 002田中 | 002 | 田中 | 経理 | 250000 |
| 4 | 003佐藤 | 003 | 佐藤 | 営業 | 270000 |
| 5 | 004鈴木 | 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関数の組み合わせ方

コメント