「同じ計算式を何度も書いてしまう…」
「数式が複雑で読みにくい…」
そんなExcelユーザーの悩みを解決してくれるのが、LET(レット)関数
です。
Excel 365以降で使えるこの関数を使えば、数式の中で「変数」を定義し、効率よく、見やすく関数を書くことができます。
まるでプログラミングのように、計算に名前を付けて整理できる画期的な機能です。
この記事では、LET関数の使い方をやさしく解説し、実務での活用方法も紹介します。
LET関数ってなに?

LET関数の役割
LET
関数は、1つの数式の中で変数(名前付きの値)を定義し、それを使い回すことができる関数です。
これにより、計算の繰り返しを減らし、数式の読みやすさが向上します。
変数って何?
変数とは、値に名前を付けて保存する仕組みです。
身近な例:
- 「消費税率 = 10%」
- 「基本給 = 25万円」
- 「割引率 = 20%」
このように名前を付けることで、計算式が分かりやすくなります。
基本的な書き方
=LET(名前1, 値1, [名前2, 値2, …], 計算式)
構文の説明
- 名前:変数名(任意の名称、英数字で指定)
- 値:その変数に代入する値や計算式
- 計算式:定義した変数を使った最終的な数式
対応バージョン
- Excel 365:対応
- Excel 2021:対応
- Excel 2019以前:非対応
なぜLET関数が必要?
従来の問題点
// 複雑で読みにくい
=IF(A1*1.1*B1>100000, (A1*1.1*B1)*0.9, A1*1.1*B1)
同じ計算(A11.1B1)を3回も書いています。
LET関数で改善
// 分かりやすく効率的
=LET(税込価格, A1*1.1*B1,
IF(税込価格>100000, 税込価格*0.9, 税込価格))
ポイント
- 数式の中で変数を定義できる
- 同じ計算を繰り返さなくて済む
- 計算式が読みやすくなる
- Excel 365以降で使用可能
まずは構文を押さえることが大切です。次は具体的な例でLET関数の便利さを実感してみましょう。
LET関数の基本的な使い方を覚えよう

最もシンプルな例
=LET(x, A1*2, x + 10)
解説:
x
という変数を定義x
にA1の値×2を代入- 最後にx + 10を計算
結果:A1が5の場合 → x=10 → 結果は20
従来の書き方との比較
LETを使わない場合
=A1*2 + 10
LETを使った場合
=LET(x, A1*2, x + 10)
「あれ?LETを使わない方が短いじゃないか」と思うかもしれません。
確かにシンプルな計算では差は小さいですが、複雑になるほどLETの威力を発揮します。
より実用的な例
消費税込み価格の計算
=LET(tax_rate, 0.1, A1 * (1 + tax_rate))
メリット:
- 消費税率を変更する時は一箇所だけ修正
- 「0.1って何?」がすぐ分かる
割引計算
=LET(
原価, A1,
割引率, 0.2,
原価 * (1 - 割引率)
)
変数名の付け方
良い変数名の例
=LET(
基本給, A1,
残業代, B1,
基本給 + 残業代
)
避けた方が良い変数名
=LET(
a, A1, // 何を表すか分からない
SUM, B1, // 関数名と同じ
a + SUM
)
セル参照との組み合わせ
=LET(
今月売上, B2,
先月売上, B1,
成長率, (今月売上 - 先月売上) / 先月売上,
IF(成長率 > 0.1, "好調", "通常")
)
数式の改行
=LET(
価格, A1,
個数, B1,
小計, 価格 * 個数,
小計
)
Alt + Enter で改行すると、より読みやすくなります。
ポイント
- 変数名は意味が分かるものにする
- 関数名と重複しない名前を使う
- 改行を活用して読みやすく
- 簡単な計算でもLETに慣れることが大切
小さな違いですが、数式が長くなるほど効果的です。次は、変数を複数定義するパターンを紹介します。
複数の変数を使いこなそう

基本的な複数変数の定義
=LET(
価格, A2,
個数, B2,
税率, 0.1,
価格 * 個数 * (1 + 税率)
)
解説:
- 価格、個数、税率の3つの変数を定義
- 最後に消費税込みの合計金額を計算
変数の順序
=LET(
基本価格, A1,
割引価格, 基本価格 * 0.8, // 前の変数を使用
税込価格, 割引価格 * 1.1, // 前の変数を使用
税込価格
)
重要:後で定義する変数で、前に定義した変数を使うことができます。
実用的な給与計算例
=LET(
基本給, D2,
残業時間, E2,
残業単価, 1500,
残業代, 残業時間 * 残業単価,
総支給額, 基本給 + 残業代,
社会保険料, 総支給額 * 0.15,
所得税, 総支給額 * 0.05,
手取り額, 総支給額 - 社会保険料 - 所得税,
手取り額
)
売上分析の例
=LET(
今月売上, B2,
前月売上, B1,
前年同月, C2,
前月比, (今月売上 - 前月売上) / 前月売上,
前年比, (今月売上 - 前年同月) / 前年同月,
IF(AND(前月比 > 0.05, 前年比 > 0.1), "好調", "普通")
)
在庫管理の例
=LET(
現在庫, A2,
安全在庫, B2,
発注点, C2,
発注量, D2,
在庫状況, IF(現在庫 <= 発注点, "要発注", "適正"),
推奨発注量, IF(現在庫 <= 発注点, 発注量, 0),
在庫状況 & "(発注量:" & 推奨発注量 & ")"
)
条件分岐での活用
=LET(
点数, A2,
出席率, B2,
基準点, 60,
基準出席率, 0.8,
点数合格, 点数 >= 基準点,
出席合格, 出席率 >= 基準出席率,
IF(AND(点数合格, 出席合格), "合格", "不合格")
)
文字列処理での活用
=LET(
姓, A2,
名, B2,
部署, C2,
役職, D2,
氏名, 姓 & " " & 名,
所属, 部署 & " " & 役職,
氏名 & "(" & 所属 & ")"
)
日付計算での活用
=LET(
開始日, A2,
終了日, B2,
日数, 終了日 - 開始日,
営業日数, NETWORKDAYS(開始日, 終了日),
期間種別, IF(日数 <= 7, "短期", IF(日数 <= 30, "中期", "長期")),
"期間:" & 日数 & "日(営業日:" & 営業日数 & "日)" & CHAR(10) & "分類:" & 期間種別
)
変数の数に制限はある?
Excelの技術的な制限内であれば、多数の変数を定義できます。ただし、読みやすさを考慮して適度な数に留めることをお勧めします。
ポイント
- 変数は順番に定義される
- 後の変数で前の変数を使用可能
- 複雑な計算ほどLETの効果が大きい
- 変数名で計算の意味を明確化
変数を複数使えば、読みやすく再利用しやすい数式が書けます。次は、よくある利用シーンを紹介します。
実務での活用シーンを知ろう

複雑なIF文での共通値使用
LETを使わない場合(読みにくい)
=IF(A1*B1*1.1>100000, (A1*B1*1.1)*0.9, IF(A1*B1*1.1>50000, (A1*B1*1.1)*0.95, A1*B1*1.1))
LETを使った場合(読みやすい)
=LET(
小計, A1*B1,
税込金額, 小計*1.1,
IF(税込金額>100000, 税込金額*0.9,
IF(税込金額>50000, 税込金額*0.95, 税込金額))
)
重い計算の最適化
VLOOKUP を複数回使う場合
=LET(
商品情報, VLOOKUP(A2, 商品マスタ, {2,3,4}, FALSE),
商品名, INDEX(商品情報, 1),
単価, INDEX(商品情報, 2),
在庫, INDEX(商品情報, 3),
商品名 & ":" & 単価 & "円(在庫:" & 在庫 & ")"
)
データ変換とフォーマット
=LET(
生年月日, A2,
今日, TODAY(),
年齢, DATEDIF(生年月日, 今日, "Y"),
年代, IF(年齢<30, "20代", IF(年齢<40, "30代", IF(年齢<50, "40代", "50代以上"))),
年代 & "(" & 年齢 & "歳)"
)
財務計算での活用
=LET(
売上, A2,
変動費, B2,
固定費, C2,
限界利益, 売上 - 変動費,
営業利益, 限界利益 - 固定費,
限界利益率, 限界利益 / 売上,
損益分岐点, 固定費 / 限界利益率,
"営業利益:" & 営業利益 & "円" & CHAR(10) &
"損益分岐点:" & ROUND(損益分岐点, 0) & "円"
)
品質管理での活用
=LET(
測定値, A2,
基準値, B2,
許容誤差, C2,
上限値, 基準値 + 許容誤差,
下限値, 基準値 - 許容誤差,
判定, IF(AND(測定値>=下限値, 測定値<=上限値), "合格", "不合格"),
誤差, ABS(測定値 - 基準値),
判定 & "(誤差:" & 誤差 & ")"
)
顧客分析での活用
=LET(
購入金額, A2,
購入回数, B2,
最終購入日, C2,
今日, TODAY(),
経過日数, 今日 - 最終購入日,
平均購入額, 購入金額 / 購入回数,
顧客ランク, IF(AND(購入金額>=500000, 購入回数>=10), "VIP",
IF(AND(購入金額>=100000, 購入回数>=5), "優良", "一般")),
アクティブ度, IF(経過日数<=30, "アクティブ", IF(経過日数<=90, "注意", "非アクティブ")),
顧客ランク & "(" & アクティブ度 & ")"
)
プロジェクト管理での活用
=LET(
開始予定, A2,
終了予定, B2,
実際開始, C2,
実際終了, D2,
予定期間, 終了予定 - 開始予定,
実際期間, IF(実際終了="", TODAY()-実際開始, 実際終了-実際開始),
進捗率, IF(実際終了="", 実際期間/予定期間, 1),
遅延日数, 実際期間 - 予定期間,
状況, IF(実際終了<>"", "完了",
IF(進捗率>1, "遅延",
IF(進捗率>0.8, "順調", "要注意"))),
状況 & IF(遅延日数>0, "(+" & 遅延日数 & "日)", "")
)
動的なレポート作成
=LET(
期間, A1,
売上, SUMIFS(売上データ, 日付列, ">="&期間),
目標, B1,
達成率, 売上/目標,
評価, IF(達成率>=1.2, "優秀", IF(達成率>=1, "達成", IF(達成率>=0.8, "惜しい", "要改善"))),
"【" & 期間 & " 売上レポート】" & CHAR(10) &
"売上:" & TEXT(売上, "#,##0") & "円" & CHAR(10) &
"達成率:" & TEXT(達成率, "0%") & CHAR(10) &
"評価:" & 評価
)
ポイント
- 同じ計算を繰り返す場面で威力発揮
- 複雑な条件分岐を整理
- 重い計算の最適化
- 名前を付けて数式の意味を明確化
- レポートやメッセージの動的生成
LET関数を使えば、数式の整理整頓ができ、メンテナンスも簡単になります。最後に、注意点を確認しましょう。
LET関数の注意点と制限を知っておこう

利用可能なバージョン
対応バージョン
- Excel 365:完全対応
- Excel 2021:対応
- Excel 2019以前:非対応
確認方法
=LET(test, 1, test)
この式を入力してエラーが出なければ使用可能です。
変数名のルール
使用可能な文字
- 英字:A-Z、a-z
- 数字:0-9(最初は不可)
- アンダースコア:_
良い変数名の例
=LET(
基本給, A1, ✅ 日本語も使用可能
overtime_rate, 1.25, ✅ アンダースコア使用
tax_rate_2024, 0.1, ✅ 数字を含む
基本給 * overtime_rate
)
避けるべき変数名
=LET(
SUM, A1, ❌ 関数名と重複
IF, B1, ❌ 関数名と重複
123abc, C1, ❌ 数字で始まる
A1, D1, ❌ セル参照と同じ
SUM + IF
)
構文エラーの対処
出力式がない場合
=LET(x, A1*2) ❌ エラー:出力式がない
=LET(x, A1*2, x) ✅ 正しい:xを出力
カンマの数が合わない場合
=LET(x, A1, y, B1) ❌ エラー:出力式がない
=LET(x, A1, y, B1, x+y) ✅ 正しい:x+yを出力
括弧の対応が取れていない場合
=LET(x, (A1+B1, x*2) ❌ エラー:括弧が合わない
=LET(x, (A1+B1), x*2) ✅ 正しい:括弧が対応
スコープ(有効範囲)の理解
変数は LET 内でのみ有効
// セルA1
=LET(x, 10, x) → 結果:10
// セルB1
=x ❌ エラー:xは定義されていない
ネストしたLETでの変数
=LET(
x, 10,
y, LET(z, 5, x + z), // 外側のxを使用可能
x + y
)
パフォーマンスの考慮
重い計算での効果
// 非効率:VLOOKUP を3回実行
=VLOOKUP(A1,table,2,0) + VLOOKUP(A1,table,3,0) + VLOOKUP(A1,table,4,0)
// 効率的:VLOOKUP を1回だけ実行
=LET(
data, VLOOKUP(A1,table,{2,3,4},0),
INDEX(data,1) + INDEX(data,2) + INDEX(data,3)
)
軽い計算では逆効果の場合も
// シンプルな計算では従来の方が良い場合も
=A1 + B1 ✅ シンプル
=LET(sum, A1 + B1, sum) ❌ 逆に複雑
デバッグのコツ
段階的な確認
// 複雑な計算を段階的にチェック
=LET(
step1, A1 * 2,
step2, step1 + 10,
step3, step2 * 0.8,
step3 // 最終結果
)
中間結果の表示
// 途中の計算結果を確認
=LET(
x, A1 * 2,
y, x + 10,
"x=" & x & ", y=" & y // デバッグ用の出力
)
互換性の問題
他のユーザーとのファイル共有
- Excel 2019以前のユーザーには#NAME?エラーが表示される
- 共有前にバージョンを確認
- 必要に応じて従来の書き方に戻す
代替案の準備
// LET版(Excel 365/2021)
=LET(x, A1*2, x+10)
// 従来版(Excel 2019以前)
=A1*2+10
エラーメッセージの対処
よくあるエラー
エラー | 原因 | 対処法 |
---|---|---|
#NAME? | LET関数が認識されない | バージョン確認 |
#VALUE! | 構文エラー | カンマや括弧を確認 |
#REF! | 参照エラー | セル参照を確認 |
ポイント
- Excel 365または2021でのみ使用可能
- 変数名は英数字(関数名と重複不可)
- 必ず出力式が必要
- 共有ファイルでは互換性に注意
- デバッグ時は段階的に確認
構文と条件にさえ気をつければ、LET関数は非常に強力なツールになります。
まとめ
ExcelのLET関数は、Excelでの計算や分析を効率化・整理整頓するための画期的な関数です。
覚えるべきポイント
- 基本構文:
=LET(名前1, 値1, 名前2, 値2, 計算式)
- 変数定義:計算に名前を付けて再利用
- 読みやすさ:複雑な数式を整理整頓
- 効率化:重い計算の繰り返しを削減
実務での活用場面
- 複雑な条件分岐:IF文での共通計算の整理
- 重い計算の最適化:VLOOKUP等の繰り返し防止
- データ変換:段階的な計算処理
- レポート作成:動的なメッセージ生成
よく使われるパターン
// 基本的な変数定義
=LET(税率, 0.1, A1*(1+税率))
// 複数変数の活用
=LET(
基本価格, A1,
割引価格, 基本価格*0.8,
税込価格, 割引価格*1.1,
税込価格
)
// 条件分岐での活用
=LET(
合計額, A1*B1,
IF(合計額>100000, 合計額*0.9, 合計額)
)
注意すべきポイント
- 対応バージョン:Excel 365/2021のみ
- 変数名のルール:英数字、関数名と重複不可
- 必須の出力式:計算結果を返す式が必要
- 互換性:古いバージョンではエラー
LET関数の効果
- 可読性向上:数式の意味が明確になる
- 保守性向上:修正箇所が分かりやすい
- 効率性向上:重い計算の繰り返しを防止
- エラー削減:計算ミスの可能性を減らす
コメント