Excelで複雑なデータ処理を行う際、VLOOKUP関数によるデータの検索・抽出は非常に便利ですが、「条件によって参照する表や列を変えたい」といった場面も多くあります。そんなときに活用できるのが IFS関数とVLOOKUP関数の併用です。
IFS関数は複数条件に応じた処理分岐ができ、VLOOKUP関数は表から値を検索・抽出する機能を持っています。両者を組み合わせることで、条件ごとにVLOOKUPの動作を変える柔軟な処理が可能となります。
この記事では、IFS関数とVLOOKUP関数の基本構文から併用方法、実務で役立つ具体例、注意点、よくあるエラーとその対策まで詳しく解説します。
目次
- ✅ IFS関数とVLOOKUP関数の基本構文
- ・ IFS関数の構文
- ・ VLOOKUP関数の構文
- ✅ IFS関数とVLOOKUP関数の組み合わせパターン
- ・条件に応じてVLOOKUPの検索範囲を切り替える方法
- ・条件に応じてVLOOKUPの列番号を変える方法
- ・条件に応じて異なる検索値を使う方法
- ✅ 実務で役立つIFS×VLOOKUPの使用例
- ・ 顧客種別ごとにマスタを参照して顧客名を取得する方法
- ・ 商品カテゴリに応じたデータ抽出する方法(価格/在庫数など)
- ■ よくあるエラーと対処法
- ・ #N/A(検索値が見つからない)
- ・ #REF!(列番号が参照範囲を超えている)
- ・ FALSEとTRUEの誤用で評価がずれる
- ■ IF関数との違いと使い分け
- ■ IFS×VLOOKUPが活躍する業務シーン
- ■まとめ:IFS×VLOOKUPで条件に応じたデータ検索を柔軟に実現
✅ IFS関数とVLOOKUP関数の基本構文
・ IFS関数の構文
=IFS(条件1, 値1, 条件2, 値2, ..., TRUE, その他)
条件が上から順に評価され、最初に TRUE となったものが実行される
ネスト不要で複数条件を簡潔に記述できる
・ VLOOKUP関数の構文
=VLOOKUP(検索値, 範囲, 列番号, [検索方法])
指定した「検索値」に一致する行から、特定列の値を取得する関数
第4引数に
FALSEを指定すると完全一致検索が行われる
【Excel】IF関数とVLOOKUP関数の併用で柔軟なデータ処理を実現する方法|条件分岐×検索
✅ IFS関数とVLOOKUP関数の組み合わせパターン
IFSとVLOOKUPを組み合わせることで、次のような処理が可能になります。
【Excel】特定の文字列を条件にするVLOOKUPの使い方とは?IFやCOUNTIFと組み合わせて柔軟なデータ取得を実現する方法
・条件に応じてVLOOKUPの検索範囲を切り替える方法
あるセルの値に応じて、別々のマスタ表からデータを参照する方法です。
=IFS(
B2="法人", VLOOKUP(A2, 法人マスタ!A2:C100, 2, FALSE),
B2="個人", VLOOKUP(A2, 個人マスタ!A2:C100, 2, FALSE),
TRUE, "種別不明"
)
A2:検索したいIDやコード
B2:区分(法人/個人)
種別に応じてマスタが切り替わり、正しいデータを抽出できます
【Excel】範囲を指定してPDF化する方法【必要な部分だけをPDFに!】
・条件に応じてVLOOKUPの列番号を変える方法
同じ表を参照するが、カテゴリによって取り出したい列が異なるときに有効です。
=IFS(
C2="価格", VLOOKUP(A2, 商品マスタ!A2:D100, 2, FALSE),
C2="在庫", VLOOKUP(A2, 商品マスタ!A2:D100, 3, FALSE),
C2="仕入先", VLOOKUP(A2, 商品マスタ!A2:D100, 4, FALSE)
)
A2:商品コード
C2:取得したい情報の種類(価格/在庫/仕入先)
→ このように 条件ごとに列番号を動的に切り替えてVLOOKUPを実行できます。
・条件に応じて異なる検索値を使う方法
検索元は共通だが、検索値自体を変えたいときのパターンです。
=IFS(
B2="新規", VLOOKUP(D2, 顧客マスタ!A2:C100, 2, FALSE),
B2="既存", VLOOKUP(E2, 顧客マスタ!A2:C100, 2, FALSE)
)
B2が「新規」ならD2を検索値とし、「既存」ならE2を検索値に使用
✅ 実務で役立つIFS×VLOOKUPの使用例
・ 顧客種別ごとにマスタを参照して顧客名を取得する方法
【Excel】【営業向け】売上金額に応じてランクを自動表示するIF関数の使い方|簡単に業績ランク付け!
| A列:顧客コード | B列:顧客種別(法人/個人) | C列:顧客名(自動取得) |
=IFS(
B2="法人", VLOOKUP(A2, 法人マスタ!A2:C100, 2, FALSE),
B2="個人", VLOOKUP(A2, 個人マスタ!A2:C100, 2, FALSE),
TRUE, "未登録"
)
→ 顧客種別に応じて正しいマスタから名称を取得し、エラー回避のために TRUE を使って「未登録」と表示。
・ 商品カテゴリに応じたデータ抽出する方法(価格/在庫数など)
【Excel】【在庫管理】在庫数に応じて発注判断を自動化するIF関数の設定方法|ムダなく効率的な仕入れを実現
| A列:商品コード | B列:カテゴリ | C列:取得項目 | D列:抽出結果 |
=IFS(
C2="価格", VLOOKUP(A2, 商品マスタ!A2:D100, 2, FALSE),
C2="在庫", VLOOKUP(A2, 商品マスタ!A2:D100, 3, FALSE),
C2="備考", VLOOKUP(A2, 商品マスタ!A2:D100, 4, FALSE),
TRUE, "情報なし"
)
■ よくあるエラーと対処法
・ #N/A(検索値が見つからない)
対処法:
データの整合性をチェック(スペース・全角半角の違いなど)
IFSの内部で
IFERRORを使うとより丁寧な対応が可能
=IFS(
B2="法人", IFERROR(VLOOKUP(A2, 法人マスタ!A2:C100, 2, FALSE), "該当なし"),
B2="個人", IFERROR(VLOOKUP(A2, 個人マスタ!A2:C100, 2, FALSE), "該当なし"),
TRUE, "種別不明"
)
・ #REF!(列番号が参照範囲を超えている)
対処法:
VLOOKUPの列番号が、指定した範囲内に収まっているかを確認
・ FALSEとTRUEの誤用で評価がずれる
IFSは最初にTRUEと判定された条件だけが評価されるため、評価順が正しく設定されていないと期待と異なる動作になります。
■ IF関数との違いと使い分け
| 比較項目 | IFS関数 | IF関数 |
|---|---|---|
| 可読性 | 条件と結果を並列に記述でき、読みやすい | 複数条件になるとネストが深くなり読みにくい |
| ELSE処理 | 最後に "TRUE" を使って代用 | IFの第3引数で簡単に記述可能 |
| 利用シーン | 条件数が多い場合、処理をわかりやすく整理可能 | 条件が1~2個の場合はIFの方が簡潔 |
■ IFS×VLOOKUPが活躍する業務シーン
| 活用シーン | 処理内容 |
|---|---|
| マスタ参照の自動化 | 顧客・商品などの種別に応じて異なるマスタを参照 |
| 見積・請求書作成 | 商品種別によって価格や単価表を切り替える |
| 在庫管理 | 商品のカテゴリごとに抽出項目(在庫/仕入先など)を変える |
| 顧客対応の最適化 | 種別別に連絡先や対応ステータスを切り替えて表示 |
■まとめ:IFS×VLOOKUPで条件に応じたデータ検索を柔軟に実現
IFS関数とVLOOKUP関数を組み合わせることで、1つのセル内で複数の条件に応じたデータ抽出や検索処理が可能になります。
マスタ表が複数ある場合の切り替え
条件に応じた列や検索値の分岐
エラー時の代替表示や処理の安全性向上
といった場面で非常に強力な手段となります。
IF関数のネストが複雑になりすぎる前に、IFS関数に切り替えることで、よりわかりやすく保守性の高いExcelシートを作成できます。ぜひ業務で活用して、効率化と正確性を高めていきましょう。