Excel一覧 Excel操作 検索・参照関数(VLOOKUP) 検索・抽出

【Excel】IFS関数とVLOOKUP関数の併用方法とは?条件ごとに参照表を切り替えて柔軟なデータ処理を実現する方法

Excelで複雑なデータ処理を行う際、VLOOKUP関数によるデータの検索・抽出は非常に便利ですが、「条件によって参照する表や列を変えたい」といった場面も多くあります。そんなときに活用できるのが IFS関数とVLOOKUP関数の併用です。

IFS関数は複数条件に応じた処理分岐ができ、VLOOKUP関数は表から値を検索・抽出する機能を持っています。両者を組み合わせることで、条件ごとに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シートを作成できます。ぜひ業務で活用して、効率化と正確性を高めていきましょう。

    -Excel一覧, Excel操作, 検索・参照関数(VLOOKUP), 検索・抽出