🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Excel LET 関数 — 変数に名前を付けて、読みやすく速い数式を書く

|

Excel LET 関数 — 変数に名前を付けて、読みやすく速い数式を書く

TL;DRLET は 1 つの数式の中で名前付き変数を宣言します: =LET(name1, value1, name2, value2, …, result)。名前は必ずペアで並べ、 結果は常に最後の引数、そして Excel は名前付きの各値を一度だけ計算します。 だから LET は読みやすいだけでなく、同じ部分式を繰り返すよりも速いのです。 Excel 365 と 2021 以降。

=LET(revenue, B2, cost, C2, margin, (revenue-cost)/revenue, margin)
=LET(total, SUMIF(A:A,G1,B:B), IF(total>0, total, "none"))   ' 列のスキャンは 2 回ではなく 1 回

長い Excel 数式は、変数のない小さなプログラムのようなものです。すべての値がその場で 計算され、しかも何度も計算されることが多く、どこにも名前がありません。LET は、その プログラムに欠けていた冒頭の数行を補います。つまり、値を使う前に変数を宣言する場所 です。見返りは一石二鳥。読める数式が手に入り、しかも多くの場合は実行が速くなります。

この記事でわかること

  • LET が腑に落ちる考え方の軸:変数を宣言する、関数の冒頭部分
  • LET を壊すたった 1 つのルール:名前はペア、計算は最後 — そして外したときに出るエラー
  • LET が読みやすさだけでなくパフォーマンスのツールである理由(各値は一度しか計算されない)
  • LET をいつ使うか — そして命名の落とし穴(A1 は有効な名前ではない)

考え方の軸:LET は変数を宣言する場所

本物のプログラミング言語で関数の冒頭を思い浮かべてください。いくつかのものに名前を付け、 それから使います。LET はそれをセルに持ち込みます。形は決して変わりません。名前と値の ペアが並び、最後にそれらを使う 1 つの計算が来ます:

=LET(name1, value1, name2, value2, calculation)

上から下へこう読みます。rate を 0.2 とし、net を A2-B2 とし、それから net * rate を返す」。LET を宣言、そして結果と捉えた瞬間、3 つのことが導かれます:

  1. 定義した名前は、最後の計算の中で好きなだけ何度でも使い回せます。ただし Excel がその値を評価するのは一度だけです。
  2. 名前は上から下へ組み立てます。後ろの名前は前の名前を参照できますが、その逆はできません。
  3. 最後の引数が答えです。 その手前はすべて名前と値のペアになります。

LET を壊すルール:ペア、そして結果

これは LET で最もよくあるエラーです。最後の引数より前は、すべて名前と値のペアでなければ なりません。 数えてみてください。名前、値、名前、値、…、結果。計算の前には偶数個の 引数が並び、最後に 1 つの計算で締めくくります。

=LET(x, 10, y, 20, x+y)      ' ペア 2 組、そして結果 -> 30
=LET(x, 10, y, 20)           ' 最後の計算がない -> 意図に反して 20 を返す
=LET(x, 10, x*2, y, x+y)     ' "x*2" が名前として解釈される -> エラー

LET が入力値のどれかに似た数値を返したら、ほぼ確実に最後の計算を書き忘れていて、 Excel が最後の値をそのまま返しています。#VALUE!#NAME? が出たら、計算を途中に 入れてしまったか、無効な名前を使った可能性が高いです。

命名の落とし穴:

  • 名前はセル参照のように見えてはいけませんA1R2Q4 はすべて拒否されます。Q4 ではなく qtr4 を使いましょう。
  • 名前にスペースは使えず、数字で始めることもできません。
  • 名前は前の名前を参照できますが、自分自身や後ろの名前は参照できません — 必要な順序で宣言してください。

LET が本当はパフォーマンスのツールである理由

読みやすさは目に見える利点です。隠れた利点は速度です。Excel は名前付きの各値を、何度 参照されても一度だけ評価します。次の数式を比べてみましょう:

=IF(SUMIF(A:A,G1,B:B)>0, SUMIF(A:A,G1,B:B), "none")

この列全体に対する SUMIF2 回実行されます。そうした数式が何百もある大きな シートでは、作業量が倍になります。これを一度だけにまとめましょう:

=LET(total, SUMIF(A:A,G1,B:B), IF(total>0, total, "none"))

これで列のスキャンは一度で済みます。上級者が繰り返す部分式を LET で包む本当の理由は これです。整理のためではなく、再計算を半分(あるいはそれ以下)に減らすためです。 目安はこうです。同じ部分式が数式の中に 2 回以上出てくるなら、それは LET に入れるべきです。

動的配列のチェーンで、各ステップに名前を付ける

LET は現代のスピル数式の中でこそ真価を発揮します。各段階に名前を付ければ、解読不能な ネストが、読めて、しかも 1 行ずつデバッグできるものに変わります:

=LET(
   data, FILTER(Sales, Sales[Region]="West"),
   top,  SORT(data, 3, -1),
   TAKE(top, 5)
)

それぞれの名前はチェックポイントです。数式バーで data を選んで F9 を押せば、その段階 だけを確認できます。FILTERSORTTAKE と組み合わせれば、LET は 5 ステップのクエリを破綻させずに保つ要になります。

判断のポイント:LET は 1 つのセルに収まる — それを超えるなら LAMBDA

状況 使うもの 理由
1 つの数式の中で部分式が繰り返される LET N 回ではなく一度だけ計算
誰にも読めないネスト数式 LET ステップに名前を付け、1 行ずつデバッグ
他のセルやブックでもそのロジックを再利用したい LAMBDA LET は数式ごと、LAMBDA は呼び出せる
1 ステップだけの単純な数式 どちらも不要 LET はノイズになるだけで見返りなし

LET は 1 つの数式の中で生きます。同じロジックを多くのセルから — あるいは別のブックから — 呼び出したくなった瞬間、LET では手狭になり、LAMBDA の出番です。実際、優れた LAMBDA の中身はほとんどが LET です。1 ステップの数式に LET を 持ち出すのもやめましょう。=A1*2 に名前を付けても、誰の役にも立ちません。

ExcelMaster はどう役立つか

LET は、Excel の数式がコードのように読め始める地点です。そしてコードは、AI コパイロット が書くのが得意なものそのものです。ExcelMaster は、長くて 読めないネスト数式を、名前付きのステップを持つきれいな LET へと、Excel の中でそのまま リファクタリングします。しかも、一度だけ計算すべき繰り返しの部分式も見つけ出します。 計算したいことを普通の言葉で説明すれば、名前まで付いた LET を返してくれます。 ご自身のデータで試す

よくある質問

Excel の LET 関数は何をする関数ですか?

LET は 1 つの数式の中で名前付き変数を宣言します。部分式を繰り返す代わりに =LET(name, value, …, result) と書けます。数式が読みやすくなり、名前付きの各値を一度 しか計算しません。

LET の数式が間違った値を返すのはなぜですか?

ほぼ必ず、最後の引数が計算になっていないからです。最後の引数より前はすべて名前と値の ペアでなければならず、最後の引数が結果です。=LET(x,10,y,20) がペアの後に計算がないため 20 を返してしまうのがその例です。

LET を使うと数式は速くなりますか?

部分式が繰り返される場合は速くなります。Excel は名前付きの各値を一度だけ評価するので、 =LET(t, SUMIF(A:A,G1,B:B), IF(t>0,t,0)) は列を 2 回ではなく 1 回だけスキャンします。 大きなシートでは、これは見た目がきれいになるだけでなく、本物の高速化になります。

LET で #NAME? エラーが出るのはなぜですか?

無効な名前を使ったからです。名前はセル参照のように見えてはならず(A1Q4)、スペースを 含めることも、数字で始めることもできません。qtr4ratenet_sales のように付け直して ください。

LET はどの Excel バージョンで使えますか?

LET は Excel 2021、Excel 2024、Microsoft 365 の Windows 版と Mac 版で使えます。 Excel 2016 や 2019 では使えません。

検証環境

検証環境: Excel 365(Windows 11)— 最終確認 2026年6月22日

関連ガイド: Excel LAMBDA · Excel MAP, REDUCE & BYROW · Excel FILTER · Excel SORT