【Excel】LETで#NAME?が出る時|対応版・名前・定義順を確認

【Excel】LETで#NAME?が出る時|対応版・名前・定義順を確認
🛡️ 超解決

LETの#NAME?は、未対応のExcelで開いた場合や、式の中で認識できない名前を使った場合などに発生します。まず短い式が動くかを確かめ、長い式は名前と値の組に分けて確認します。

ADVERTISEMENT

1. LETを使える環境か確認する

LETはMicrosoft 365、Excel 2024、Excel 2021などの対応する版で使えます。古い版で開いて_xlfn.が付く場合は、スペルを直すだけでは解決しません。利用している版と、ファイルを渡す相手の版を確認してください。

空いたセルで=LET(amount,10,amount*2)を試します。20になるなら基本構文は使えます。これも失敗する場合は、全角記号や引数の区切り文字なども確認します。

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

2. 名前と値を組にして読む

LETは名前、値、名前、値と並べ、最後に返したい計算を書きます。例は=LET(price,100,qty,3,price*qty)で、結果は300です。最後の計算が抜けていないか確認します。

名前自体を引用符で囲みません。一方、値として文字列を使う時は引用符が必要です。=LET(label,"完了",label)のように、名前と文字列の役割を分けます。

3. 使う名前を先に定義する

=LET(price,100,total,price*3,total)なら、priceを定義した後でtotalの計算に使っています。順番を逆にすると、未定義の名前を参照する原因になります。

ただしブックに同名の定義名があると、その名前を参照して別の結果になる場合もあります。#NAME?が出なければ正しいとは限りません。途中結果を最後の引数へ置いて、どの段階で値が変わるか確認します。

priceに100を定義し、totalにprice掛ける3を定義して、最後のtotalで300を返す。先に定義したpriceを後の計算で使う対応
priceを先に定義すると、後のtotalの計算で使えます。最後の引数で返す結果を指定します。

4. セル番地と衝突する名前を避ける

A1やR1C1のようなセル参照と同じ名前は使えません。cはR1C1形式の参照と競合するため不適切です。price、qty、tax_rateなど、役割が分かる名前を使います。

大文字と小文字だけの違いは別名になりません。Priceとpriceを別の変数として管理しないでください。SUMなど関数名と同じ表記がすべて一律に禁止される、という説明も正確ではありませんが、読み違いを避ける名前を選ぶ方が扱いやすくなります。

5. 短い式から段階的に戻す

元の式を別の場所へ保存し、まず1組の名前と計算だけで動かします。次に名前を1組ずつ追加し、結果を確認します。名前のlと数字の1、全角と半角の混在などを見比べます。

LET内で参照する別の数式が#NAME?を返していることもあります。名前の並びだけで原因を決め付けず、参照先のセルや関数の対応状況も確認してください。

6. 結果と共有先での動作を確認する

修正後は、0、空欄、通常値など業務で出る入力を使って結果を検算します。LETを使わない元の計算と比較すると、名前の取り違えを見つけやすくなります。

構文と名前の条件はMicrosoftのLET説明を参照できます。エラー表示を消すだけでなく、必要な値が返ることを確認して保存します。

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

超解決 Excel・Word研究班

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

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