Excelでよく使われるVLOOKUP関数は、「検索値をもとに表から該当データを取得する」機能を持っていますが、条件が“特定の文字列”だった場合にどう対応すべきか迷ったことはありませんか?
たとえば、「商品カテゴリが“食品”なら価格を表示」「顧客ステータスが“VIP”なら割引率を表示」といったように、特定の文字列を条件にしてVLOOKUPの動作を制御したい場面は、実務で頻繁に登場します。
この記事では、特定の文字列を条件にしたVLOOKUPの使い方を中心に、IF関数・COUNTIF関数との連携やエラー対策、活用例までを解説します。
目次
- VLOOKUP関数の基本をおさらい
- ✅ 特定の文字列を条件にする場合の考え方
- ✅ 「カテゴリが○○なら」VLOOKUPで取得
- ✅ 文字列に「部分一致」する場合だけVLOOKUPを実行
- ・「商品名に“パン”が含まれる場合だけVLOOKUPを実行」
- ✅ COUNTIFで特定の文字列の出現を条件にVLOOKUP
- ・「ステータス列に“未対応”が含まれていれば担当者名を取得」
- ✅ IFS関数とVLOOKUPで文字列ごとに別処理
- ■ よくあるエラーとその対処法
- ■ 特定文字列×VLOOKUPの活用シーン
- ■ VLOOKUPの置き換え候補:XLOOKUPとの違いも知っておこう
- ■まとめ:文字列を条件にしたVLOOKUPで柔軟なデータ処理を実現しよう
VLOOKUP関数の基本をおさらい
まずは、VLOOKUP関数の基本的な構文を確認しておきましょう。
=VLOOKUP(検索値, 範囲, 列番号, [検索方法])
- 検索値:探したい文字列や数値(例:「商品コード」や「顧客ID」など)
- 範囲:検索対象となる表
- 列番号:取り出したい列の番号(左から数えて何列目か)
- 検索方法:FALSEで完全一致、TRUEで近似一致
✅ 特定の文字列を条件にする場合の考え方
VLOOKUP関数自体は数値でも文字列でも検索可能ですが、「ある文字列のときだけ検索を実行したい」といった処理にはIF関数との併用が効果的です。
たとえば、「顧客ランクが“VIP”のときだけ割引率をVLOOKUPで取得し、それ以外は0%とする」といった処理は以下のように書けます。
=IF(B2="VIP", VLOOKUP(A2, VIPマスタ!A2:C100, 3, FALSE), 0)
- A2:顧客ID
- B2:顧客ランク
- VIPマスタ:IDと割引率を管理している表
【Excel】文字列の含有チェックと色分けを行う方法|SEARCH関数と条件付き書式で業務を見える化!
✅ 「カテゴリが○○なら」VLOOKUPで取得
たとえば、商品カテゴリに応じて価格情報を取り出すケースを考えます。
| A列:商品コード | B列:カテゴリ | C列:価格(自動取得) |
=IF(B2="食品", VLOOKUP(A2, 食品マスタ!A2:C100, 3, FALSE), "")
- B列のカテゴリが「食品」の場合だけ、A列の商品コードを使って食品マスタから価格を取得します。
- その他のカテゴリなら空欄を返します。
【Excel】IFS関数とVLOOKUP関数の併用方法とは?条件ごとに参照表を切り替えて柔軟なデータ処理を実現する方法
✅ 文字列に「部分一致」する場合だけVLOOKUPを実行
文字列が完全一致ではなく、「あるキーワードを含む」かどうかで処理を分けたい場合は、SEARCH関数やISNUMBER関数との併用がおすすめです。
【Excel】条件付き書式とIF関数で視覚的に判断しやすくする方法とは?
・「商品名に“パン”が含まれる場合だけVLOOKUPを実行」
=IF(ISNUMBER(SEARCH("パン", B2)), VLOOKUP(A2, パンマスタ!A2:C100, 3, FALSE), "")
SEARCH("パン", B2)
は「パン」が含まれているかを判定- TRUEならVLOOKUP実行、FALSEなら空欄
✅ COUNTIFで特定の文字列の出現を条件にVLOOKUP
「他の列に特定の文字列が存在するかどうか」を調べてVLOOKUPの実行を制御したい場合には、COUNTIF関数と組み合わせる方法があります。
・「ステータス列に“未対応”が含まれていれば担当者名を取得」
=IF(COUNTIF(C2:C100, "未対応")>0, VLOOKUP(A2, 担当者マスタ!A2:C100, 2, FALSE), "")
- C列に「未対応」がある → 担当者を表示
- なければ空欄
※特定の1セルだけでなく範囲全体を条件にできるのがポイント
✅ IFS関数とVLOOKUPで文字列ごとに別処理
文字列の種類が複数ある場合、IFS関数を使うとよりシンプルに分岐できます。
=IFS(
B2="食品", VLOOKUP(A2, 食品マスタ!A2:C100, 3, FALSE),
B2="衣料", VLOOKUP(A2, 衣料マスタ!A2:C100, 3, FALSE),
B2="医薬品", VLOOKUP(A2, 医薬品マスタ!A2:C100, 3, FALSE),
TRUE, "対象外"
)
カテゴリに応じて参照先のマスタを切り替えることで、ひとつの数式で複数の文字列条件に対応できます。
■ よくあるエラーとその対処法
エラーの種類 | 原因 | 対処法 |
---|---|---|
#N/A | 該当するデータがない | IFERROR関数で「該当なし」などに置換 |
#REF! | VLOOKUPの列番号が範囲外 | 列番号が表の範囲内か確認 |
FALSEを指定し忘れた | データが近似一致で検索される | VLOOKUPの第4引数に FALSE を明示的に設定 |
例:IFERRORでエラーを見やすく処理
=IFERROR(VLOOKUP(A2, マスタ!A2:C100, 3, FALSE), "該当なし")
■ 特定文字列×VLOOKUPの活用シーン
シーン | 活用例 |
---|---|
見積書 | 商品カテゴリが「工事」の場合だけ工事単価マスタから取得 |
売上管理 | 顧客ステータスが「VIP」の場合のみ特別価格を表示 |
在庫確認 | 商品名に「冷蔵」を含む場合にだけ冷蔵品マスタから在庫を抽出 |
業務進捗 | ステータスが「未完了」の場合に担当者をVLOOKUPで取得 |
■ VLOOKUPの置き換え候補:XLOOKUPとの違いも知っておこう
Excel 365 / 2021以降では、XLOOKUP関数がVLOOKUPの後継関数として推奨されています。
文字列条件での処理もさらに柔軟になります。
VLOOKUPとXLOOKUPの主な違い
項目 | VLOOKUP | XLOOKUP |
---|---|---|
左方向検索 | 不可 | 可能 |
列番号指定 | 必要 | 不要(範囲で指定) |
エラー時の処理 | IFERRORで補完 | 関数内で第4引数で対応可 |
読みやすさ | ネストが増えやすい | 条件ごとに範囲指定で見やすい |
■まとめ:文字列を条件にしたVLOOKUPで柔軟なデータ処理を実現しよう
VLOOKUP関数は数値だけでなく文字列とも相性が良く、IFやCOUNTIFなどの関数と組み合わせることで条件分岐型の検索処理が可能になります。
- IF関数と組み合わせて「この文字列のときだけ検索」
- SEARCHやISNUMBERで部分一致に対応
- COUNTIFで「存在するかどうか」に基づいた制御
- IFSで複数文字列に対応したマスタ切り替え
といった方法を使えば、より柔軟で実務的なデータ自動化が実現します。
正確な検索結果と視認性の高い表を構築するために、ぜひ本記事を参考に、文字列条件のVLOOKUP活用をマスターしてください。