Excel関数 逆引き集 | エラー対策設計まとめ → LET+IFERROR

Excel
スポンサーリンク

概要

Excel の数式が複雑になってくると、
「どこでエラーが出ているのか分からない」
「IFERROR を乱用して式が読めなくなる」
「途中計算のエラーが後半まで伝染してしまう」

こうした問題が一気に解決するのが
LET + IFERROR を組み合わせた“エラー対策設計” です。

LET で途中計算に名前を付けて整理し、
IFERROR で“安全な値”に変換してから後続の計算に使うことで、
読みやすく・壊れにくく・修正しやすい数式 が作れます。

ここでは、初心者でも迷わないように
「型」「考え方」「実務でよくあるパターン」を丁寧に解説します。


LET+IFERROR の基本構造

基本テンプレート

=LET(
  変数1, IFERROR(計算1, 代替値1),
  変数2, IFERROR(計算2, 代替値2),
  …,
  最終計算式(変数を使う)
)

ポイントは次の 3 つです。

  • エラーが出る可能性のある計算を最初に“安全化”する
  • 安全化した値に名前を付けて後半で使う
  • 後半の計算はエラーを気にせず書ける

これにより、
「エラー処理」と「本来の計算処理」が分離され、
数式が劇的に読みやすくなります。


パターン1:割り算の分母チェックを LET にまとめる

分母が 0 のときだけ NA() を返す“安全分母”を作る

=LET(
  num, C2,
  den, D2,
  safe_den, IFERROR(IF(den=0, NA(), den), NA()),
  num / safe_den
)

動き:

  • 分母が 0 → safe_den は NA()
  • 分母が正常 → safe_den は D2
  • 最後の割り算は safe_den を使うので安全

後半の計算式がスッキリします。


パターン2:VLOOKUP を複数回使うときのエラー対策

同じ検索を何度も書かず、LET でまとめる

=LET(
  key, A2,
  v2, IFERROR(VLOOKUP(key, マスタ!A:D, 2, FALSE), 0),
  v3, IFERROR(VLOOKUP(key, マスタ!A:D, 3, FALSE), 0),
  v4, IFERROR(VLOOKUP(key, マスタ!A:D, 4, FALSE), 0),
  v2 + v3 - v4
)

メリット:

  • VLOOKUP を 3 回書かなくてよい
  • エラー処理が最初にまとまっている
  • 後半は「v2 + v3 – v4」だけで読みやすい

パターン3:複雑な計算を“安全な中間値”に分解する

途中計算のどこでエラーが出るかを切り分けられる

=LET(
  mul, IFERROR(B2*C2, NA()),
  num, IFERROR(mul + D2, NA()),
  den, IFERROR(E2 - F2, NA()),
  IFERROR(num / den, NA())
)

途中の mul・num・den が
どれも“安全化された値”なので、
最終計算が壊れにくくなります。


パターン4:動的配列 × LET × IFERROR

FILTER の空結果(#CALC!)を安全化してから使う

=LET(
  raw, IFERROR(FILTER(A2:A100, A2:A100>50), ""),
  raw
)

FILTER が空配列を返しても、
raw は空文字になり、後続処理が安定します。


パターン5:エラー理由をメッセージ化して返す

LET で判定 → IFERROR で安全化 → 最後にメッセージ

=LET(
  qty, A2,
  price, B2,
  amt, IFERROR(qty*price, NA()),
  IFERROR(amt, "数量または単価が不正です")
)

計算が正常なら金額、
エラーならメッセージを返す“本番用の仕上げ”です。


パターン6:LET で“エラー対策ブロック”を共通化する

どんな計算でも使えるテンプレート

=LET(
  safe1, IFERROR(計算1, 代替値1),
  safe2, IFERROR(計算2, 代替値2),
  safe3, IFERROR(計算3, 代替値3),
  最終計算式(safe1・safe2・safe3 を使う)
)

この型を覚えておけば、
どんな複雑な数式でも
「まず安全化 → 後で計算」という流れにできます。


例題

問題1

C2 ÷ D2 を計算したい。
D2 が 0 のときは NA() を返し、
それ以外は C2/D2 を返す LET+IFERROR の式を書いてください。

=LET(
  num, C2,
  den, D2,
  safe_den, IFERROR(IF(den=0, NA(), den), NA()),
  num / safe_den
)

問題2

A2 をキーに VLOOKUP を 2 回行い、
どちらもエラーなら 0 として扱いたい。
LET で「v2」「v3」という名前を使って式を書いてください。

=LET(
  key, A2,
  v2, IFERROR(VLOOKUP(key, マスタ!A:D, 2, FALSE), 0),
  v3, IFERROR(VLOOKUP(key, マスタ!A:D, 3, FALSE), 0),
  v2 + v3
)

問題3

=(B2*C2 + D2) / (E2 - F2) を LET で分解し、
mul・num・den を安全化してから計算する式を書いてください。

=LET(
  mul, IFERROR(B2*C2, NA()),
  num, IFERROR(mul + D2, NA()),
  den, IFERROR(E2 - F2, NA()),
  IFERROR(num / den, NA())
)

問題4

A2:A100 の中から 50 より大きい値だけ FILTER し、
該当なしなら空白を返す LET+IFERROR の式を書いてください。

=LET(
  raw, IFERROR(FILTER(A2:A100, A2:A100>50), ""),
  raw
)

問題5

A2(数量)× B2(単価)を計算し、
エラーなら「不正入力」と表示する LET+IFERROR の式を書いてください。

=LET(
  amt, IFERROR(A2*B2, NA()),
  IFERROR(amt, "不正入力")
)

まとめ

「エラー対策設計 → LET+IFERROR」の本質は次の 3 つです。

  • エラーが出る可能性のある計算を最初に“安全化”する
  • 安全化した値に名前を付けて後半の計算をシンプルにする
  • エラー処理と本来の計算処理を分離して、読みやすく壊れにくい数式にする

まずはこの型を覚えておくと、
どんな複雑な数式でも整理して書けるようになります。

=LET(
  safe1, IFERROR(計算1, 代替値1),
  safe2, IFERROR(計算2, 代替値2),
  …,
  最終計算式
)

Excel の“エラー対策設計”をしっかり組むことで、
本番でも安心して使える強いシートが作れるようになります。

タイトルとURLをコピーしました