📊つかえる関数.com

複数のテーブルを順番に検索するフォールバック検索の方法は?

結論

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 2016Excel 2019Excel 2021Excel 2024Microsoft 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. マスタ1で検索→見つかればその値を返す
  2. 見つからなければマスタ2で検索
  3. それでも見つからなければマスタ3で検索
  4. 全てで見つからなければ「見つかりません」