クイック修正
#NUM! エラーは通常、数式で不可能な計算が要求されているか、計算結果が Google Sheets で処理できないほど巨大な場合に発生します。すぐに解決するには、以下の一般的な原因を確認してください。
- 不可能な計算: 負の数の平方根や、0の対数を求めることはできません。これを避けるには
=SQRT(ABS(A1))を使用します。 - DATEDIF の順序: この関数は、開始日が終了日よりも後の日付である場合にエラーになります。順序を入れ替えてください。
- 財務ロジック:
IRRなどの関数では、範囲内に少なくとも1つの負の値と1つの正の値が必要です。すべての数値が正の場合、計算は失敗します。
#NUM! エラーとは何か?
#NUM! は、スプレッドシートが「数値は認識できるが、計算が成立しない」と伝えている状態だと考えてください。これは #VALUE! エラーとは異なります。#VALUE! は数値と「Apple」のような文字列を足そうとした場合に発生しますが、#NUM! は提供されたデータは数値であるものの、特定の操作が無効であることを示します。
1. 数学的な制限と「虚数」の結果
ほとんどの標準的なスプレッドシート関数は実数のみを扱います。計算結果が虚数になる場合、Google Sheets は処理を停止します。例えば、負の数の平方根は標準的な算術には存在しないため、=SQRT(-16) は常に #NUM! を返します。
2. 数値が大きすぎる場合
Google Sheets には技術的な上限があります。扱える数値の最大値はおよそ 1.79 x 10^308 です。=2^1024 のような計算をしようとすると、結果がソフトウェアのメモリ容量を超えるため、セルには #NUM! と表示されます。同様に、極端に小さい数値(0に近い数値)も「アンダーフロー」問題を引き起こすことがあります。
3. 財務関数と反復計算
IRR(内部収益率)や RATE などの関数は、即座に答えを出すわけではありません。これらは「反復計算」と呼ばれる試行錯誤の手法を用います。まず推測値から始め、それを何度も修正していきます。数式が100回繰り返しても安定した結果が得られない場合、計算を断念してエラーを返します。これは、コストばかりで収益がまったくないプロジェクトのように、キャッシュフローのデータが論理的に不可能な場合に頻繁に起こります。
4. DATEDIF の「開始日と終了日」の問題
DATEDIF 関数はレガシーなツールであり、非常に制約が厳しいことで知られています。2つの日付の間の期間を計算しますが、一方向にしか機能しません。=DATEDIF(TODAY(), TODAY()-1, "D") のように、今日から昨日の間の日数を求めようとすると失敗します。
修正方法
方法1:入力を整理する
データソースが整理されていない場合は、数式の耐久性を高める必要があります。ABS()(絶対値)関数を使用して、必要に応じて数値が正になるようにします。または、数式を論理チェックで囲みます。
// まず値が正であるかを確認することでエラーを防ぐ
=IF(A1 > 0, LOG(A1), "入力値は 0 より大きくする必要があります")
// 数値を強制的に正にする
=SQRT(ABS(A1))
方法2:DATEDIF 関数を堅牢にする
年齢や勤続年数を計算する場合、どの日付列が正しく入力されているかを常に保証できるわけではありません。MIN と MAX を使用して、常に小さい方の日付が先にくるように設定します。
// A1 と B1 の日付が入れ替わっていても動作する
=DATEDIF(MIN(A1, B1), MAX(A1, B1), "D")
方法3:反復計算の設定を調整する
複雑な財務モデルでエラーが発生する場合は、Google Sheets の計算の「余裕」を増やす必要があるかもしれません。手動で計算制限を増やすことができます。
- ファイル > 設定 を開きます。
- 計算 タブを選択します。
- 反復計算 を オン に切り替えます。
- 最大反復回数 を 1,000 に設定します。これにより、
IRRなどの関数がデフォルト設定よりも10倍多く計算を試行できるようになります。
方法4:IFERROR を使用してレポートを綺麗に保つ
大規模なデータセットでは、#NUM! エラーが予想される場合があります(実績のない新設会社の成長率を計算する場合など)。ダッシュボードの外観を綺麗に保ちたい場合は、数式をラップして、代わりにダッシュやゼロを表示するようにします。
=IFERROR(IRR(B2:B20), "計算待ち")
修正の確認方法
エラーが本当に解消されたか確認するために、データの境界値でテストしてください。DATEDIF のエラーを修正した場合は、1900年の日付と2099年の日付を入力して、ロジックが維持されるか確認します。財務関数の場合は、IRR 数式の第2引数として「推定値」引数(10% の場合は 0.1 など)を追加してみてください。ヒントを与えることでエラーが消える場合、問題は単に計算がデフォルト設定では複雑すぎたことにあります。

