複数のテーブルを順番に検索するフォールバック検索の方法は?
結論
IFERROR関数を入れ子にして複数のVLOOKUPを連結することで、フォールバック検索を実現できます。
詳しい解説
IFERROR関数を入れ子にすることで、複数のテーブルを順番に検索するフォールバック検索を実現できます。`=IFERROR(VLOOKUP(A2, マスタ1!A:B, 2, FALSE), IFERROR(VLOOKUP(A2, マスタ2!A:B, 2, FALSE), "未登録"))` とすると、マスタ1で見つからなければマスタ2を検索し、それでも見つからなければ「未登録」を表示します。複数のマスタデータがあり、優先順位をつけて検索したい場合に便利です。XLOOKUP関数の場合は `=XLOOKUP(A2, マスタ1!A:A, マスタ1!B:B, XLOOKUP(A2, マスタ2!A:A, マスタ2!B:B, "未登録"))` のように記述できます。
執筆・検証:田中 けんた|Excel歴15年・MOS資格保持
バージョン対応
| Excel 2016 | Excel 2019 | Excel 2021 | Excel 2024 | Microsoft 365 |
|---|---|---|---|---|
| 対応 | 対応 | 対応 | 対応 | 対応 |
実務での使用例
新旧マスタの順次検索
新マスタになければ旧マスタを検索し、どちらにもなければ「未登録」
=IFERROR(VLOOKUP(A2, 新マスタ!A:B, 2, FALSE), IFERROR(VLOOKUP(A2, 旧マスタ!A:B, 2, FALSE), "未登録"))3つのマスタを順次検索
マスタ1→マスタ2→マスタ3の順で検索
=IFERROR(VLOOKUP(A2, マスタ1!A:B, 2, 0), IFERROR(VLOOKUP(A2, マスタ2!A:B, 2, 0), IFERROR(VLOOKUP(A2, マスタ3!A:B, 2, 0), "見つかりません")))- マスタ1で検索→見つかればその値を返す
- 見つからなければマスタ2で検索
- それでも見つからなければマスタ3で検索
- 全てで見つからなければ「見つかりません」