ExcelのLET関数を完全マスター!計算の効率化と読みやすさを両立する新機能

Excel

「同じ計算式を何度も書いてしまう…」
「数式が複雑で読みにくい…」
そんな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)

解説

  1. xという変数を定義
  2. xにA1の値×2を代入
  3. 最後に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 + 税率)
)

解説

  1. 価格、個数、税率の3つの変数を定義
  2. 最後に消費税込みの合計金額を計算

変数の順序

=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関数の効果

  1. 可読性向上:数式の意味が明確になる
  2. 保守性向上:修正箇所が分かりやすい
  3. 効率性向上:重い計算の繰り返しを防止
  4. エラー削減:計算ミスの可能性を減らす

コメント

タイトルとURLをコピーしました