Excelで長い数式を作成していると、同じセル参照や計算式を何度も入力する場面があります。
数式が複雑になるほど、何を計算しているのかを後から見直しにくくなり、修正時のミスも起こりやすくなります。
そのようなときに役立つのが、計算途中の値に名前を付けられるLET関数です。
LET関数を使うと、長い数式の中に変数のような名前を設定でき、同じ計算を繰り返さずに済みます。
売上計算、割引額の算出、日付判定、IF関数と組み合わせた条件分岐など、幅広い場面で活用できる便利な関数です。
LET関数でできること
・計算途中の値へ分かりやすい名前を付ける
・同じ計算式の重複を減らす
・数式の可読性と修正しやすさを高める
この記事では、LET関数の基本構文から実務で使いやすい数式例、名前を付ける際の注意点まで詳しく解説します。
サンプルデータは1行目が見出し行で、2行目以降にデータが入力されているものとして進めます。
LET関数で数式に名前を付ける方法【基本入力】
| A | B | C | D |
|---|---|---|---|
| 商品名 | 単価 | 数量 | 売上 |
| ノート | 120 | 5 | 600 |
| ペン | 80 | 8 | 640 |
それではまず、LET関数で計算式に名前を付ける基本的な入力方法について解説していきます。
LET関数は、名前、名前に対応する値、最後に返す計算結果の順番で入力します。
=LET(名前, 値, 計算式)
たとえばB2の単価とC2の数量を掛け算する場合、通常は=B2*C2と入力します。
LET関数では、単価をprice、数量をqtyという名前で受け取り、最後にprice*qtyを計算できます。
=LET(price,B2,qty,C2,price*qty)
結果は通常の掛け算と同じ600になりますが、数式の意味を読み取りやすくできる点が大きな違いです。
LET関数の構文と引数の並び
LET関数の構文では、最初に定義する名前と値を1組ずつ並べ、最後に計算結果を返す式を指定します。
名前は変数名のような役割を持ち、その数式の内部だけで利用できます。
LET関数で付けた名前は、ワークシート全体に登録される名前ではなく、その数式の中だけで有効です。
そのため、名前の管理画面を開いて削除する必要はなく、数式を削除すれば設定も同時になくなります。
たとえば、税込価格を計算したい場合は、税抜価格と税率に名前を付けてから掛け算を行います。
=LET(price,B2,tax,0.1,price*(1+tax))
この数式ではpriceがB2セルの値、taxが消費税率10パーセントを表します。
最後のprice*(1+tax)が、Excelに返してほしい結果です。
名前と値は複数設定できますが、最後の計算式を忘れると結果が返らないため注意しましょう。

入力時には、関数の候補一覧からLETを選ぶと、引数の順番を確認しながら作業できます。
【操作のポイント】名前と値は必ず対にして入力し、最後に計算結果となる式を置きます。
単価と数量に分かりやすい名前を設定
売上表では、単価と数量を参照する数式が行ごとに並ぶことがあります。
単純な計算では通常のセル参照でも問題ありませんが、送料、割引、税率などの条件が増えると、数式の意味が見えにくくなります。
そこで、B2をunit_price、C2をquantityとして定義する方法が便利です。
=LET(unit_price,B2,quantity,C2,unit_price*quantity)
unit_price*quantityという最後の部分を見るだけで、単価に数量を掛けていることが分かります。
セル番地だけを連続して書くよりも、計算の目的を伝えやすい数式になります。
英単語が難しい場合は、priceやcountのように短く覚えやすい名前でも構いません。
ただし、同じブック内で数式を統一したいなら、priceとamountのような似た意味の名前を混在させないことが大切です。

作成した数式をD2に入力した後は、フィルハンドルを下方向へドラッグしてオートフィルを実行します。
各行ではB列とC列の参照先が自動的に変わり、売上をまとめて計算できます。
【操作のポイント】名前は短くても意味が分かる表現にし、表内で呼び方を統一します。
LET関数を入力できるExcelのバージョン
LET関数は、Microsoft 365版のExcelやExcel 2021以降などで利用できる関数です。
古いバージョンのExcelでファイルを開くと、LET関数を含むセルにエラーが表示される可能性があります。
共有相手が古いExcelを使っている場合は、LET関数を使った数式が正常に計算できるか確認が必要です。
利用可否を調べるには、空いているセルへ=LET(a,1,a)と入力してみましょう。
結果として1が表示されれば、LET関数を使用できます。
関数名が認識されずにエラーになる場合は、Excelの更新状況や利用しているバージョンを確認します。
互換性が重要な提出用ファイルでは、通常の数式に置き換える選択も必要になるかもしれません。
一方で、社内のMicrosoft 365環境など、利用するExcelの条件がそろっているなら、LET関数は数式を整理する有効な選択肢です。
【操作のポイント】共有前には、ファイルを開く相手のExcel環境とLET関数の対応状況を確認します。
LET関数で同じ計算を繰り返さない数式【計算の整理】
| A | B | C | D |
|---|---|---|---|
| 商品名 | 売上 | 原価 | 利益率 |
| ノート | 1200 | 720 | 40% |
| ペン | 900 | 540 | 40% |
続いては、LET関数で同じ計算を繰り返さない数式の作り方を確認していきます。
数式内に同一の計算が何度も登場する場合、LET関数で一度だけ計算して名前に保存すると、数式を見やすく整理できます。
計算回数を減らせるため、大量のデータを扱う表では処理負荷の軽減にもつながることがあります。
売上から利益率を求める数式
利益率は、売上から原価を引いた利益を売上で割ることで求められます。
通常の数式では、=(B2-C2)/B2と入力できます。
この程度の短い式なら問題は少ないものの、利益額を複数回使う計算では途中の結果に名前を付けると便利です。
=LET(sales,B2,cost,C2,profit,sales-cost,profit/sales)
salesは売上、costは原価、profitは利益額を表しています。
最後にprofit/salesを計算しているため、数式の流れを上から順に読み取れます。
計算途中の利益額をprofitとして定義することで、売上から原価を引く処理を何度も書かずに済みます。
利益率をパーセントで表示するには、数式を入力したセルの表示形式をパーセンテージに変更します。

表示桁数は、ホームタブの小数点以下の表示桁数を増減するボタンで調整できます。
利益率が小数点以下まで必要な場合は、40パーセントではなく40.0パーセントや40.00パーセントで表示しましょう。
【操作のポイント】途中で使う利益額のような計算結果に名前を付けると、数式の構造が明確になります。
割引と消費税をまとめて計算する方法

商品の販売価格を求めるときは、定価から値引きを行い、その後に消費税を加算する場合があります。
通常の数式で同じ処理を何度も書くと、括弧の位置や割引率の参照先を間違えやすくなります。
LET関数では、定価、割引率、割引後価格、税率を順番に定義できます。
=LET(list_price,B2,discount,C2,after_discount,list_price*(1-discount),tax,0.1,after_discount*(1+tax))
この式ではB2に定価、C2に割引率が入っている想定です。
after_discountは値引き後の価格であり、最後の計算式で消費税を加算します。
途中の変数名を使うと、定価から割引、税計算という販売価格の流れを数式内に表現できます。
割引率を20パーセントとして入力する場合、セルには20ではなく20パーセント、または0.2を入力します。
セルの表示形式をパーセンテージにしておけば、0.2と入力して20パーセントと表示できます。
税率を別セルで管理するなら、固定値の0.1ではなく、税率が入ったセル参照を指定すると更新しやすくなります。
【操作のポイント】価格、割引後価格、税率の順に名前を付けると、計算順序を見失いにくくなります。
長い数式を分割して確認する考え方
LET関数の利点は、数式を短く見せることだけではありません。
複数の計算段階を名前ごとに区切ることで、どこで想定と異なる結果になったのかを考えやすくなります。
たとえば、売上、手数料、送料、利益を計算する場合は、それぞれに名前を付けて段階的に定義します。
=LET(sales,B2,fee,sales*0.1,shipping,C2,profit,sales-fee-shipping,profit)
最後にprofitだけを指定すれば、最終的な利益額を返せます。
一時的にfeeやshippingを最後の位置へ置き換えると、それぞれの途中計算が正しいか確認できます。
複雑な数式の検証では、最後に返す名前を切り替えて途中結果を確認する方法が役立ちます。
数式全体を一度に見直すよりも、計算工程を小さく分けて確認したほうが、入力ミスを発見しやすいでしょう。
ただし、名前を増やしすぎると逆に読みにくくなるため、意味のある計算単位で整理することが重要です。
【操作のポイント】数式が長いときは、途中結果を名前として分け、最後に返す値を切り替えて検証します。
LET関数とIF関数を組み合わせる方法【条件分岐】
| A | B | C | D |
|---|---|---|---|
| 商品名 | 売上 | 目標額 | 判定 |
| ノート | 1200 | 1000 | 達成 |
| ペン | 900 | 1000 | 未達成 |
続いては、LET関数とIF関数を組み合わせて条件分岐を分かりやすくする方法を確認していきます。
IF関数は条件によって表示内容や計算結果を変える関数ですが、条件式が複雑になると数式が長くなりがちです。
LET関数を先に使って必要な値へ名前を付けると、IF関数の判定内容を読み取りやすくできます。
目標額の達成と未達成を判定する数式
売上が目標額以上なら達成、目標額未満なら未達成と表示したい場合を考えます。
通常のIF関数では、=IF(B2>=C2,”達成”,”未達成”)と入力できます。
LET関数を組み合わせると、売上と目標額の意味を名前で表せます。
=LET(sales,B2,target,C2,IF(sales>=target,”達成”,”未達成”))
salesがtarget以上かどうかを判定しているため、セル番地の意味を考えずに数式を確認できます。
条件式に名前を使うと、何を比較しているのかがひと目で分かりやすくなります。
文字列を返す場合は、達成や未達成のような表示内容を半角の二重引用符で囲みます。
数式をD2へ入力したら、セル右下のフィルハンドルを下へドラッグして、他の行にもコピーします。
行ごとの売上と目標額を使って判定が自動更新されるため、データの追加にも対応しやすくなります。
【操作のポイント】IF関数の比較対象をsalesとtargetのような名前に置き換えると、判定条件が読みやすくなります。
空白セルを除外してエラーを防ぐ設定
データ入力前の行まで数式をコピーすると、空白行に未達成と表示されることがあります。
見た目を整えるには、商品名や売上セルが空白かどうかを先に確認する式を加えます。
=LET(sales,B2,target,C2,IF(sales=””,””,IF(sales>=target,”達成”,”未達成”)))
最初のIF関数では、salesが空白なら空文字列を返しています。
空文字列は何も表示しないという意味なので、まだデータがない行には判定結果が出ません。
空白判定を先に置くと、未入力行に不要な文字や計算結果が表示されるのを防げます。
売上が数式で空文字列を返しているケースでも、この方法は使えます。
ただし、売上として0を入力する可能性がある場合は、0と空白を区別する必要があります。
0を未入力として扱いたいか、実際の売上ゼロとして扱いたいかを、表の運用に合わせて決めましょう。
【操作のポイント】データがない行を非表示にしたい場合は、最初に空白かどうかをIF関数で判定します。
複数条件を扱う場合の名前の付け方
判定条件が増える場合は、AND関数やOR関数もLET関数と組み合わせられます。
たとえば、売上が目標以上で、かつ利益率が30パーセント以上なら優秀と表示するケースです。
=LET(sales,B2,target,C2,rate,D2,IF(AND(sales>=target,rate>=0.3),”優秀”,”確認”))
sales、target、rateのように、条件ごとに名前を用意します。
最後のAND関数を読むだけで、売上と利益率の両方を確認していることが分かります。
複数条件の数式ほど、LET関数で各項目に名前を付ける効果が大きくなります。
条件が多いときは、名前を付ける順番も業務の流れに合わせると理解しやすくなります。
売上、原価、利益率、判定という順に並べれば、後から数式を修正する人も処理の意図を追いやすいでしょう。
【操作のポイント】条件が複数ある場合は、比較する値ごとに名前を付け、AND関数やOR関数の中で使用します。
LET関数で文字列と日付を扱う方法【データ処理】
| A | B | C | D |
|---|---|---|---|
| 氏名 | 申込日 | 期限日 | 状態 |
| 山田 花子 | 2026/10/01 | 2026/10/15 | 期限内 |
| 佐藤 恒一 | 2026/09/20 | 2026/10/05 | 期限超過 |
続いては、LET関数で文字列や日付を扱う方法について確認していきます。
LET関数は数値計算だけでなく、文字列の結合、日付の比較、抽出関数と組み合わせたデータ処理にも使えます。
作業用の列を増やさずに処理したいときにも便利です。
氏名に敬称を付けて表示する数式
A2セルに氏名が入力されている場合、表示用に敬称を追加したいことがあります。
単純な結合なら=A2&” 様”で対応できますが、LET関数を使えば氏名部分の役割を明確にできます。
=LET(customer,A2,customer&” 様”)
customerという名前へA2の氏名を代入し、最後に敬称を連結しています。
文字列を扱う場合でも、名前を付ける考え方は数値計算と同じです。
氏名の前後に余分な空白が入りやすいデータでは、TRIM関数と組み合わせる方法もあります。
=LET(customer,TRIM(A2),customer&” 様”)
TRIM関数で不要な空白を整理してから敬称を追加するため、表示のばらつきを抑えられます。
住所、部署名、商品コードなどを結合する場合も、各要素へ名前を付けると式を管理しやすくなります。
【操作のポイント】結合する文字列が複数ある場合は、氏名や部署名などの役割ごとに名前を付けます。
期限日と今日の日付を比較する方法
申請期限や納品期限を管理する表では、期限日が過ぎているかどうかを判定したいことがあります。
TODAY関数は、ファイルを開いた日のシリアル値を返す関数です。
期限日がC2にある場合は、期限日と今日の日付へ名前を付けて比較できます。
=LET(deadline,C2,today,TODAY(),IF(today>deadline,”期限超過”,”期限内”))
todayがdeadlineより大きいとき、つまり今日が期限日より後なら期限超過と表示されます。
日付は表示が文字のように見えても、Excel内部では数値として比較できます。
期限当日も期限内として扱うこの式では、大なり記号だけを使用します。
期限当日を超過扱いにしたい場合は、比較条件をtoday>=deadlineに変更します。
日付セルが文字列として入力されていると正しい比較ができないため、日付形式で入力されているかも確認しましょう。
【操作のポイント】期限日と今日を比較するときは、期限当日をどちらの扱いにするかを先に決めます。
検索結果を一度だけ計算して使う方法
XLOOKUP関数やVLOOKUP関数の検索結果を、判定と表示の両方で使いたい場面があります。
同じ検索式を複数回書くと、検索範囲の修正漏れや数式の長文化につながります。
たとえば、A2の商品コードを検索し、見つかった単価が0より大きいか確認する場合を考えます。
=LET(price,XLOOKUP(A2,F:F,G:G,””),IF(price=””,”未登録”,price))
priceにはXLOOKUP関数の検索結果が一度だけ格納されます。
検索結果が空白なら未登録、そうでなければ単価を返す仕組みです。
検索関数の結果に名前を付けると、検索処理を繰り返さずに判定と表示へ利用できます。
参照範囲は実際の表に合わせて指定し、商品コード列と単価列の対応を確認しましょう。
検索結果が数値か文字列かによって空白判定の方法も変わるため、テスト用のデータで結果を確認すると安心です。
【操作のポイント】検索結果を複数回使うときは、検索関数全体をLET関数の名前と値として定義します。
LET関数の名前を付ける際の注意点【エラー対策】
| A | B | C |
|---|---|---|
| 名前の例 | 使用可否 | 理由 |
| sales | 使用可 | 意味が分かりやすい名前 |
| total_price | 使用可 | アンダースコアを使用可能 |
| C | 注意 | R1C1形式と重なる可能性 |
続いては、LET関数で名前を付ける際の注意点と、エラーを避ける考え方を確認していきます。
LET関数は便利ですが、名前の付け方や引数の順番を誤ると、数式エラーや意図しない結果につながります。
基本的なルールを押さえておくと、長い数式でも安定して作成できます。
セル参照と区別しやすい名前の選び方
LET関数の名前には、計算内容を想像しやすい英単語やアンダースコアを使うのがおすすめです。
sales、cost、tax_rate、total_priceのような名前なら、数式を読む人にも役割が伝わりやすくなります。
一方で、A1やB2のようにセル番地と見分けがつかない名前は使えません。
名前にはセル参照と誤認される表現を避け、計算内容を示す文字列を使うことが基本です。
また、RやCはR1C1参照形式と関係するため、単独の名前としては避けたほうが安全です。
英字だけでなく数字を含めることもできますが、名前の先頭を数字にはできません。
たとえばrate2026は使いやすい一方、2026rateのような書き方は適しません。
日本語の名前を使える環境もありますが、共有や他システムとの連携を考えるなら、半角英字とアンダースコアで統一すると扱いやすいでしょう。
【操作のポイント】セル番地に見える名前は避け、salesやtax_rateのように意味が伝わる表現を選びます。
名前と値の組み合わせを崩さない確認
LET関数は、名前、値、名前、値という順番で入力する必要があります。
途中で値だけを追加したり、最後の計算式を書き忘れたりすると、数式が正しく動作しません。
入力後にエラーが出た場合は、名前と値が必ず対になっているか確認しましょう。
=LET(price,B2,quantity,C2,price*quantity)
この式ではpriceとB2、quantityとC2が対応しています。
最後のprice*quantityは、名前の定義ではなく計算結果を返すための式です。
LET関数の末尾には、定義した名前を使った最終結果の式が必要です。
関数をネストする場合は、括弧の対応も確認します。
Excelの数式バーでは、編集中の括弧に対応する括弧が表示されるため、長い式ほど数式バーを広げて確認するとよいでしょう。
【操作のポイント】名前と値は必ずセットで並べ、最後には計算結果を返す式を配置します。
計算結果が変わらない場合の確認項目
LET関数を入力しても期待した結果にならないときは、名前に代入したセル参照を最初に確認します。
相対参照と絶対参照の指定が原因で、オートフィル後に参照先がずれている場合があります。
たとえば税率をF1セルで固定するなら、tax,$F$1のように絶対参照を使います。
=LET(price,B2,tax,$F$1,price*(1+tax))
この式を下方向へコピーしても、priceはB3、B4へ変わり、taxは常にF1を参照します。
行ごとに変える値と、全行で共通に使う値を分けて参照することが重要です。
また、計算方法が手動になっていると、値を変更してもすぐに再計算されないことがあります。
数式タブの計算方法の設定を確認し、必要に応じて再計算を実行しましょう。
関数名そのものがエラーになる場合は、利用中のExcelがLET関数に対応しているかを再確認します。
【操作のポイント】オートフィル後の結果がおかしいときは、相対参照と絶対参照の使い分けを見直します。
まとめ エクセルのLET関数で数式に名前を付ける方法
エクセルのLET関数は、数式の中で使う値や途中計算に名前を付けられる関数です。
単価と数量、売上と原価、割引後価格、税率、検索結果などに意味のある名前を付けることで、長い数式でも内容を理解しやすくなります。
特に同じ計算や検索処理を何度も使う数式では、LET関数による整理が効果的です。
基本構文は、名前、値を必要な数だけ並べ、最後に計算結果を返す式を記述する形です。
IF関数、AND関数、TODAY関数、XLOOKUP関数などと組み合わせれば、条件判定や日付管理、データ検索も分かりやすく作成できます。
名前はsalesやtax_rateのように役割が分かる表現にし、セル番地と紛らわしい名前は避けましょう。
また、共有するファイルでは、利用者のExcelがLET関数に対応しているかを確認することも大切です。
複雑な計算式を見直す機会があれば、途中の値を一つずつLET関数で名前に置き換えてみてください。
数式の可読性が上がり、修正、検証、引き継ぎがしやすい表へ近づけるはずです。