【Excel】LAMBDAが#CALC!になる時|呼び出しと名前登録を確認

【Excel】LAMBDAが#CALC!になる時|呼び出しと名前登録を確認
🛡️ 超解決

セルにLAMBDAの定義だけを入力すると、呼び出していないため#CALC!になります。まず値を渡して短い式を試し、繰り返し使う場合は名前として登録します。ただし#CALC!には別の原因もあるので、呼び出し済みの式は計算内容も調べます。

ADVERTISEMENT

1. 対応版と簡単な計算を確認する

LAMBDAはMicrosoft 365やExcel 2024など対応する環境で使います。LETが使える版でも、LAMBDAまで必ず対応するとは限りません。共有先を含めて版を確認してください。

まず=LAMBDA(x,x*2)(100)を空いたセルに入力します。200になれば、定義に値を渡す基本形は動いています。#NAME?や_xlfn.が出る場合は、未対応の関数や名前の誤りを確認します。

※ お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

2. 定義の後ろへ値を渡す

=LAMBDA(x,x*2)は、xを2倍する関数の定義です。セルで結果を表示するには、続けて(100)などを付けて呼び出します。定義だけの式が#CALC!になることと、100の計算が失敗することは別です。

引数が2つなら、呼び出しにも2つの値を渡します。=LAMBDA(price,qty,price*qty)(100,3)の結果は300です。カッコの対応と引数の個数を確認してください。

LAMBDA x x掛ける2という定義だけならCALC、後ろに100を渡すとxに100が入り200を返す対応
セルに定義だけを置く場合と、値を渡して呼び出す場合を区別します。

3. 名前の管理へ登録する

  1. 「数式」→「名前の管理」→「新規作成」を開きます。
  2. 名前をDoubleValueなどにし、使用する範囲を確認します。
  3. 参照範囲へ=LAMBDA(x,x*2)を入力します。
  4. 保存後、セルで=DoubleValue(100)を試します。

参照範囲には試験用の(100)を付けません。計算済みの定数を登録することと、関数の定義を登録することを区別します。既に同名の定義がある場合は上書きせず用途を確認します。

4. エラーの種類を分ける

定義だけなら#CALC!、引数の数が合わない場合などは#VALUE!、再帰呼び出しが多すぎる場合などは#NUM!が出ることがあります。表示されたエラーに合わせて確認箇所を変えます。

名前を登録しただけで、内部の計算エラーまで直るわけではありません。LAMBDAの中で使う式を単独で試し、空配列など別の#CALC!原因がないか調べます。

5. 再帰は停止条件を確認する

自分自身の名前を呼び出す再帰を使う場合は、名前として登録する形が分かりやすい方法です。名前登録があらゆる再帰表現で唯一の方法というわけではありませんが、まず読みやすい定義で確認しましょう。

入力を小さくして、必ず終了する条件を設定します。回数が増え続ける式を大きな範囲へ一括適用せず、少数の例で結果を検算してから使います。

6. 使う範囲と入力例を残す

ブック全体で使う名前か、特定シート内だけの名前かを確認します。関数の用途、受け取る値、返す値を名前のコメントなどへ記録すると、共有先でも扱いやすくなります。

対応版とエラー条件はMicrosoftのLAMBDA説明にあります。0や負の値、空欄も含めて、利用目的に合う結果か確認してください。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。
この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】