Excelで作業をしていると、
「もしA列の値が一致したらB列の値を返したい」
「条件に合った行のデータだけを取り出したい」
といった場面が多くあります。
たとえば、次のようなシーンです。
- 社員番号が一致したら、所属部署を自動で表示したい
- 商品コードが一致したら、価格を返したい
- セルの内容が「完了」と一致したら、日付セルを返したい
これらはすべて「条件に一致したら別のセルの値を返す」処理で実現できます。
この記事では、Excelでこの操作を行う代表的な関数 ―
IF関数・VLOOKUP関数・INDEX+MATCH関数・XLOOKUP関数 ― を使った方法を、
初心者にも分かりやすく解説します。
目次
- ✅ 方法①:IF関数で一致したときに別セルの値を返す(最も基本)
- ・IF関数の構文
- ・例1:「A2とB2が一致したらC2の値を返す」
- ・例2:「セルが特定の文字と一致したら別のセルを返す」
- ・例3:複数条件を組み合わせる
- ✅ 方法②:VLOOKUP関数で一致したら隣の列の値を返す
- ・VLOOKUP関数の構文
- ・例1:商品コードが一致したら商品名を返す
- ・例2:エラーを防ぐ(IFERRORとの組み合わせ)
- ・例3:複数列のデータから抽出
- ✅ 方法③:INDEX関数とMATCH関数で左右どちらからでも値を取得
- ・INDEX関数+MATCH関数の構文
- ・例1:商品コードが一致したら商品名を返す
- ・例2:右側から左側を検索
- ✅ 方法④:XLOOKUP関数で簡単に一致検索(Excel 365以降)
- ・XLOOKUP関数の構文
- ・例1:社員番号が一致したら名前を返す
- ・例2:部分一致検索
- ・例3:左方向検索も可能
- ✅ 方法⑤:複数条件で一致したら値を返す(応用)
- ・例1:INDEX+MATCHの複数条件
- ・例2:FILTER関数で複数条件一致を抽出
- ✅ 方法⑥:IFERRORでエラーを回避して見やすくする
- ・IFERROR関数の構文
- ・例:該当データがない場合
- ✅ 実務で使える「一致→値取得」活用例
- ✅ まとめ:Excelで「一致したら別のセルの値を返す」仕組みを完全マスター
✅ 方法①:IF関数で一致したときに別セルの値を返す(最も基本)
まずは、最もシンプルなIF関数を使う方法から。
・IF関数の構文
"=IF(論理式, 真の場合, 偽の場合)"
・例1:「A2とB2が一致したらC2の値を返す」
"=IF(A2=B2, C2, "")"
A列 | B列 | C列 | D列(結果) |
---|---|---|---|
東京 | 東京 | 100 | 100 |
大阪 | 東京 | 200 | (空白) |
この式では、A2とB2が一致した場合にC2の値を返し、
一致しない場合は空欄("")を返します。
・例2:「セルが特定の文字と一致したら別のセルを返す」
"=IF(A2="完了", B2, "")"
A列 | B列 | 結果 |
---|---|---|
完了 | 2024/10/10 | 2024/10/10 |
保留 | 2024/10/12 | (空白) |
A2の値が「完了」と一致した場合だけ、
B2の内容(完了日など)を表示します。
・POINT
- IF関数は1つの条件に対して動作
- 文字列の比較では**「"」で囲む**
- 複数条件を扱う場合はAND/OR関数を組み合わせる
・例3:複数条件を組み合わせる
"=IF(AND(A2="完了",B2="承認済"),C2,"")"
→ 「A列が完了」かつ「B列が承認済み」ならC2の値を返す。
IF関数は、単一条件で「一致したら〇〇を返す」場合に最も使いやすい関数です。
ただし、複数のデータ範囲から一致を探す場合は、次の関数を使います。
✅ 方法②:VLOOKUP関数で一致したら隣の列の値を返す
VLOOKUP関数は、「ある範囲から検索して隣の列の値を返す」関数です。
顧客名や商品コードなど、表形式のデータに最適です。
・VLOOKUP関数の構文
"=VLOOKUP(検索値, 範囲, 列番号, 検索方法)"
・例1:商品コードが一致したら商品名を返す
A列(コード) | B列(商品名) |
---|---|
A001 | りんご |
A002 | みかん |
A003 | バナナ |
C2セルに検索値「A002」を入力し、D2に以下の式を入れます:
"=VLOOKUP(C2, A2:B4, 2, FALSE)"
→ 結果:「みかん」
・解説
- 検索値:C2
- 範囲:A2:B4
- 列番号:2(範囲の2列目=商品名)
- 検索方法:FALSE(完全一致)
参考:【Excel】VLOOKUP関数の使い方をやさしく解説|Excelの検索・参照を自動化しよう!
・POINT
- 一致が見つからない場合は「#N/A」になる
- FALSE指定で完全一致検索
- 範囲の左端列で検索する必要がある
・例2:エラーを防ぐ(IFERRORとの組み合わせ)
"=IFERROR(VLOOKUP(C2,A2:B100,2,FALSE),"該当なし")"
→ 一致がない場合は「該当なし」と表示。
参考:【Excel】IF関数とVLOOKUP関数の併用で柔軟なデータ処理を実現する方法|条件分岐×検索
・例3:複数列のデータから抽出
"=VLOOKUP(C2,A2:D100,4,FALSE)"
→ 「A列の検索値」に一致した行の「4列目」の値を返す。
VLOOKUPは、単純な「一致検索+隣の値取得」では最も手軽で実務向きです。
✅ 方法③:INDEX関数とMATCH関数で左右どちらからでも値を取得
VLOOKUP関数には「左端列でしか検索できない」という制約があります。
これを解決するのが、INDEX関数+MATCH関数の組み合わせです。
・INDEX関数+MATCH関数の構文
"=INDEX(返したい範囲, MATCH(検索値, 検索範囲, 0))"
・例1:商品コードが一致したら商品名を返す
A列 | B列 |
---|---|
A001 | りんご |
A002 | みかん |
A003 | バナナ |
D2に「A002」と入力して、E2に次の式を入力:
"=INDEX(B2:B4, MATCH(D2, A2:A4, 0))"
→ 結果:「みかん」
・POINT
- MATCHが「行番号」を返し、INDEXが「値」を返す
- VLOOKUPのように列順制限がない
- 列の並びが変わっても壊れない
・例2:右側から左側を検索
A列 | B列 |
---|---|
名前 | 社員ID |
佐藤 | 1001 |
鈴木 | 1002 |
検索値「1002」から「鈴木」を取得するには:
"=INDEX(A2:A4, MATCH(1002, B2:B4, 0))"
→ 結果:「鈴木」
INDEX+MATCHは、VLOOKUPの欠点を克服した柔軟な検索方法です。
「左・右どちら方向にも検索できる」点が最大の強みです。
✅ 方法④:XLOOKUP関数で簡単に一致検索(Excel 365以降)
Excel 365または2021以降を使っている場合は、
新関数XLOOKUPを使うのが最もシンプルです。
・XLOOKUP関数の構文
"=XLOOKUP(検索値, 検索範囲, 返す範囲, [見つからない場合], [一致モード])"
・例1:社員番号が一致したら名前を返す
A列 | B列 |
---|---|
1001 | 佐藤 |
1002 | 鈴木 |
1003 | 高橋 |
C2に「1002」を入力し、D2に以下の式を入力:
"=XLOOKUP(C2, A2:A4, B2:B4, "該当なし")"
→ 結果:「鈴木」
・POINT
- 検索列と返す列を自由に指定できる
- 一致しない場合も「#N/A」ではなく「該当なし」と表示可能
- VLOOKUPより構文がシンプル
・例2:部分一致検索
"=XLOOKUP("東", A2:A100, B2:B100,,2)"
→ 「東」を含むセルを検索し、隣の値を返す(ワイルドカード検索)。
参考:【Excel】【トラブル解決】XLOOKUPで見つからない・#N/Aになる原因と対処法|検索失敗時の設定と実務活用のコツ
・例3:左方向検索も可能
"=XLOOKUP(C2, B2:B100, A2:A100)"
→ 「商品名」から「商品コード」を取得。
(VLOOKUPでは不可だった逆方向検索も可能)
XLOOKUPは、「VLOOKUPの進化版」と言える万能関数です。
検索・一致・エラー処理が1式で完結します。
✅ 方法⑤:複数条件で一致したら値を返す(応用)
1つの条件だけでなく、
「名前と日付が一致したら値を返す」などの複数条件検索も可能です。
・例1:INDEX+MATCHの複数条件
"=INDEX(C2:C100, MATCH(1, (A2:A100=E2)*(B2:B100=F2), 0))"
※Ctrl + Shift + Enter で確定(配列数式)
A列 | B列 | C列 |
---|---|---|
東京 | 10月 | 100 |
大阪 | 10月 | 200 |
東京 | 11月 | 150 |
E2に「東京」、F2に「10月」と入力すると、
→ 結果は「100」
・POINT
- 条件を掛け合わせて「両方一致」した行を特定
- FILTER関数でも同様の結果を取得可能(Excel 365以降)
・例2:FILTER関数で複数条件一致を抽出
"=FILTER(C2:C100, (A2:A100=E2)*(B2:B100=F2))"
→ 「E2とF2が一致する行」のC列値を返す。
複数条件の一致検索は、分析・売上集計・顧客抽出などに非常に役立ちます。
✅ 方法⑥:IFERRORでエラーを回避して見やすくする
検索系関数では、一致が見つからない場合に「#N/A」エラーが出ます。
見た目を整えるには、IFERROR関数を組み合わせましょう。
・IFERROR関数の構文
"=IFERROR(元の式, エラー時の表示内容)"
・例:該当データがない場合
"=IFERROR(VLOOKUP(A2, B2:C100, 2, FALSE), "該当なし")"
→ 一致がない場合は「該当なし」と表示。
参考:【Excel】IFERROR関数の使い方を徹底解説!エラーを見やすく整える実務テクニック
・POINT
- 検索結果がない場合の見た目を改善
- ユーザーにとって分かりやすい
- XLOOKUPでは「見つからない場合」を直接指定可能
✅ 実務で使える「一致→値取得」活用例
シナリオ | 使用関数 | 効果 |
---|---|---|
商品コード一致で商品名表示 | VLOOKUP | 最も基本的な使い方 |
社員番号一致で部署名表示 | INDEX+MATCH | 柔軟で壊れにくい |
住所に「東京」が含まれたら担当者名を返す | XLOOKUP(部分一致) | ワイルドカード検索対応 |
名前+日付が一致したら金額を返す | INDEX+MATCH(複数条件) | データ分析に最適 |
一致しなければ「該当なし」と表示 | IFERROR | エラーを見やすく処理 |
✅ まとめ:Excelで「一致したら別のセルの値を返す」仕組みを完全マスター
- IF関数:単一条件でシンプルに判断
- VLOOKUP関数:隣の列の値を取得(左端検索限定)
- INDEX+MATCH関数:列順に制限がなく柔軟
- XLOOKUP関数:Excel 365以降で最強の一致検索
- FILTER関数:複数該当データも一括抽出
- IFERROR:エラーを見やすく整える
これらを組み合わせれば、
「検索 → 一致 → 値取得 → 表示」までを完全に自動化できます。
日常の事務処理・売上分析・顧客管理など、あらゆる場面で時短効果が得られるでしょう。
一度テンプレートを作っておけば、入力するだけで自動結果表示が可能です。