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

