ExcelでVLOOKUPやMATCH、INDEXを使って検索する際、「該当データがない場合に#N/Aを別の値に置き換えたい」ときに役立つのがIFNA関数です。しかし、実務では「複数条件で検索したい」「複数条件で判断した上でIFNAでエラー処理を行いたい」というケースが非常に多くあります。
この記事では「ifna 複数条件」というキーワードに対応し、以下の内容を徹底解説します。
✅ IFNAの基礎と役割
✅ IFNAで複数条件を扱う基本的な考え方
✅ VLOOKUPとの複数条件検索
✅ INDEX/MATCHとの複数条件検索
✅ IF関数と組み合わせる方法
✅ 実務で使える応用例と注意点
目次
- ✅ IFNA関数とは?
- ✅ IFNAで複数条件を扱う基本方針
- ① 複数条件で検索できる構造を作る(列結合など)
- ② INDEX/MATCHの組み合わせで複数条件検索
- ③ IF関数で複数条件分岐を作り、エラー処理だけIFNAで行う
- ✅ VLOOKUP×IFNAで複数条件検索を行う方法
- ・商品コード+取引先コードの両方が一致する単価を取得する方法
- 1️⃣ 補助列で複数条件を結合
- 2️⃣ IFNA×VLOOKUPで検索
- ✅ INDEX/MATCH×IFNAで複数条件検索
- ・ 配列計算による複数条件検索の基本形
- ・部門コードと社員番号の両方が一致する給与を検索する方法
- ・ 数式(Ctrl + Shift + Enter不要:Excel 365/2021以降は通常のEnterで可)
- ✅ IF関数と組み合わせて複数条件分岐+IFNAで処理
- ・部署が「営業」で売上が基準以上なら単価取得、該当がなければ空白にする方法
- ■ IFNA複数条件の注意点
- ・ IFNAは「#N/A」以外のエラーは処理できない
- ・ 処理速度に注意
- ・ Excelのバージョン対応
- ■ IFNA複数条件活用シーンまとめ
- ■ まとめ:IFNA関数を使った複数条件検索は実務効率化の強力な武器
✅ IFNA関数とは?
◆ 基本構文
=IFNA(数式, #N/A時の代替値)
数式の結果が「#N/A」エラーの場合に、任意の代替値を返す関数です。
◆ 対応バージョン
Excel 2013以降
◆ 使う場面
- VLOOKUPで該当がないときに「未登録」「0」「空白」などを返したい
- MATCHで順位が見つからないときに空白を返したい
- #N/Aのみ処理し、それ以外のエラーは残したい
✅ IFNAで複数条件を扱う基本方針
IFNA関数自体は単独で複数条件検索を行う機能を持っていません。
そのため、以下のようなアプローチで扱います。
① 複数条件で検索できる構造を作る(列結合など)
→ VLOOKUP×IFNAの複数条件対応
② INDEX/MATCHの組み合わせで複数条件検索
→ MATCHの中で複数条件検索を作成し、IFNAでエラー処理
③ IF関数で複数条件分岐を作り、エラー処理だけIFNAで行う
→ 処理の流れを整理しながら使う
✅ VLOOKUP×IFNAで複数条件検索を行う方法
・商品コード+取引先コードの両方が一致する単価を取得する方法
VLOOKUPは単一条件でしか検索できないため、以下の方法で対応します。
1️⃣ 補助列で複数条件を結合
検索表(商品マスタ)側:
- A列:商品コード
- B列:取引先コード
- C列:単価
D列に以下の式を作成:
=A2 & "-" & B2
→ 商品コードと取引先コードを結合した「複合キー」を作る
検索する側(請求書など):
同様に商品コードと取引先コードを結合した検索キーを作成
=B2 & "-" & C2
2️⃣ IFNA×VLOOKUPで検索
=IFNA(VLOOKUP(D2, 商品マスタ!D:E, 2, FALSE), "該当なし")
- D2:複合キー
- 商品マスタのD列(キー列)で検索し、E列(単価)を返す
- 見つからないときは「該当なし」を返す
【Excel】IFNA関数とは?VLOOKUPとの組み合わせで使い方を完全解説!
◆ メリット
✅ 複数条件でのVLOOKUP検索が可能
✅ IFNAで#N/Aを処理し、表の見た目がきれい
✅ データ照合業務で活用できる
✅ INDEX/MATCH×IFNAで複数条件検索
複数条件検索はINDEX/MATCHの方が柔軟で推奨されます。
・ 配列計算による複数条件検索の基本形
=INDEX(返す範囲, MATCH(1, (条件1範囲=条件1)*(条件2範囲=条件2), 0))
この式に IFNA関数 を組み合わせます。
【Excel】XLOOKUP関数で複数条件を扱う方法とは?INDEX・FILTERとの違いも解説【実務対応】
・部門コードと社員番号の両方が一致する給与を検索する方法
- A列:部門コード
- B列:社員番号
- C列:給与
条件:
G2:部門コード
H2:社員番号
・ 数式(Ctrl + Shift + Enter不要:Excel 365/2021以降は通常のEnterで可)
=IFNA(INDEX(C:C, MATCH(1, (A:A=G2)*(B:B=H2), 0)), "未登録")
処理内容:
- 部門コードがG2、社員番号がH2の両方に一致する行の給与を取得
- 見つからなければ「未登録」と表示
◆ メリット
✅ VLOOKUPではできない柔軟な複数条件検索
✅ IFNAでエラーを処理し、報告書・集計表の見た目を整えられる
✅ IF関数と組み合わせて複数条件分岐+IFNAで処理
IF関数で複数条件を分岐させ、検索時の「#N/A」エラーだけIFNAで処理する方法も実務で役立ちます。
・部署が「営業」で売上が基準以上なら単価取得、該当がなければ空白にする方法
=IF(AND(D2="営業", E2>=1000000), IFNA(VLOOKUP(B2, 商品表!A:C, 3, FALSE), ""), "")
- D2:部署名
- E2:売上
- B2:商品コード
- 条件を満たす場合のみVLOOKUPで単価を検索し、該当がなければ空白
【Excel】【保存版】IFERROR関数で空白を返す方法|Excelでエラー時にすっきり見せる実務テクニック
■ IFNA複数条件の注意点
・ IFNAは「#N/A」以外のエラーは処理できない
例えば除算エラー(#DIV/0!)や参照エラー(#REF!)は処理できません。
・ 処理速度に注意
INDEX/MATCHの配列計算で複数条件検索を行う場合、範囲が広いと処理速度が低下することがあります。必要に応じて範囲を絞る(例:A2:A1000)ことをおすすめします。
・ Excelのバージョン対応
IFNA関数はExcel 2013以降のみ使用可能。旧バージョンでは IF(ISNA(...), 値, ...) を使う必要があります。
■ IFNA複数条件活用シーンまとめ
✅ 商品管理(商品コード+取引先別の単価・納期の検索)
✅ 給与計算(部門+社員番号別の給与情報検索)
✅ 在庫管理(倉庫コード+商品コード別の在庫数検索)
✅ 報告資料の自動化(条件を満たすデータを自動抽出)
✅ 「#N/A」を排除したきれいな帳票印刷
■ まとめ:IFNA関数を使った複数条件検索は実務効率化の強力な武器
✅ IFNAは「#N/A」だけを処理できる安全なエラー処理関数
✅ 複数条件検索は「列結合」または「INDEX/MATCH」で実現可能
✅ IF関数との組み合わせでさらに柔軟に制御できる
✅ 在庫・売上・顧客管理など幅広い業務で活躍
IFNA×複数条件検索を使いこなすことで、エラーがない見やすい表と、条件に合致した正確なデータ取得を両立できます。
ぜひあなたのExcel作業に取り入れ、「探さなくても自動で欲しいデータが出てくるExcel環境」を実現してください。