Excel関数 逆引き集 | 数値処理まとめ → LET

Excel
スポンサーリンク

概要

LET 関数は、「数式の中で一時的な“変数”に名前を付けて、計算処理をまとめる」ための関数です。
同じ計算を何度も書かなくてよくなり、数式が短く・読みやすく・速くなります。
「複雑な数式を 1 本で書きたいけれど、ぐちゃぐちゃになってきた…」というときの“整理箱”だと思ってください。


LET 関数の基本

構文と意味

LET の基本構文はこうです。

=LET(名前1, 値1, 名前2, 値2, …, 最後の計算式)

流れはシンプルで、

  1. 「名前1 に 値1 を入れる」
  2. 「名前2 に 値2 を入れる」
  3. 最後の計算式の中で、その名前たちを使って計算する

というイメージです。

たとえば、

=LET(x, 10, y, 20, x+y)

なら、「x=10、y=20 として、x+y を計算する → 30」という動きになります。


典型パターン:平均・標準偏差・偏差値を 1 本にまとめる

LET なしの式が「長くて読みにくい」例

B2:B31 にテストの点数が入っていて、C2 に偏差値を出したいとします。
LET を使わないと、よくある式はこうなります。

=(B2-AVERAGE($B$2:$B$31))/STDEV.P($B$2:$B$31)*10+50

これでも動きますが、

  • 平均の範囲を 2 回書いている
  • 標準偏差の範囲も 2 回書いている
  • 何をしている式なのか、一目で分かりにくい

という弱点があります。

LET で「名前を付けて整理」した例

同じことを LET で書き直すと、こうなります。

=LET(
  scores, $B$2:$B$31,
  avg, AVERAGE(scores),
  sd, STDEV.P(scores),
  (B2-avg)/sd*10+50
)

ここでやっていることは、

  • scores という名前に「$B$2:$B$31」を入れる
  • avg に「scores の平均」を入れる
  • sd に「scores の標準偏差」を入れる
  • 最後に「(B2-avg)/sd*10+50」を計算する

という流れです。

同じ範囲を何度も書かなくてよくなり、「この式は偏差値を出しているんだな」という意図も読み取りやすくなります。


数値処理をまとめるテンプレート

例1:外れ値判定を LET で 1 本にまとめる

B2:B101 にデータがあり、「平均±2×標準偏差から外れたら“外れ候補”」としたいケースです。
LET を使わないと、C2 にこんな式になりがちです。

=IF(ABS(B2-AVERAGE($B$2:$B$101))>2*STDEV.P($B$2:$B$101),"外れ候補","通常")

これを LET で整理すると、こう書けます。

=LET(
  data, $B$2:$B$101,
  avg, AVERAGE(data),
  sd, STDEV.P(data),
  diff, ABS(B2-avg),
  IF(diff>2*sd,"外れ候補","通常")
)

「data=データ範囲」「avg=平均」「sd=標準偏差」「diff=平均からのズレ」と名前を付けておくことで、
最後の IF の意味がとても読みやすくなります。

例2:合計・件数・平均をまとめて計算する

B2:B101 に売上が入っていて、「合計」「件数」「平均」を 1 本の式で出したいとします。
たとえば、D2 に「平均」を出す式を LET で書くと、こうなります。

=LET(
  sales, $B$2:$B$101,
  total, SUM(sales),
  cnt, COUNTA(sales),
  total/cnt
)

ここでは、

  • sales:売上の範囲
  • total:売上合計
  • cnt:データ件数
  • 最後に「total/cnt」で平均

という流れです。

もちろん、合計だけなら SUM で十分ですが、
「途中の値も別セルに出したい」「同じ計算を何度も使う」ような場面では、LET でまとめておくと後からの修正が楽になります。


LET を使うときのコツ

「繰り返し出てくるもの」に名前を付ける

LET の一番の使いどころは、「同じ範囲・同じ計算が何度も出てくるとき」です。
たとえば、

  • 同じ範囲の AVERAGE と STDEV を何度も使う
  • 同じフィルター条件を何度も書く
  • 同じ中間計算を何度も使う

といったときに、それらに名前を付けておくと、数式が短く・安全になります。

「途中の意味」を名前に込める

avgsddiff のように、「その値が何を表しているか」が分かる名前を付けると、
数式が「コード」ではなく「文章」に近づきます。

  • avg:平均
  • sd:標準偏差
  • diff:差・ズレ
  • total:合計
  • cnt:件数

など、自分なりのルールで構いませんが、一貫性を持たせると読みやすさが一気に上がります。


例題

問題1

B2:B31 に 30 人分のテスト点数が入っています。
C2 に「B2 の偏差値」を出したいとき、LET を使わずに書く式と、LET を使って「scores」「avg」「sd」という 3 つの名前を定義して書く式を、それぞれ答えてください。
そのうえで、「LET を使った方が読みやすい」と感じるポイントを、自分の言葉で説明してください。

問題2

B2:B101 に売上データが入っています。
F2 に平均、F3 に標準偏差を別セルで計算する代わりに、C2 に LET を使って「data」「avg」「sd」「diff」を定義し、
「平均からのズレが標準偏差の 2 倍を超えたら“外れ候補”、それ以外は“通常”」と判定する式を書いてください。
その式の中で、ABSSTDEV.P がそれぞれどんな役割をしているかも説明してください。

問題3

B2:B101 に売上データがあり、D2 に「売上合計 ÷ 件数(平均)」を出したいとします。
LET を使って「sales」「total」「cnt」という 3 つの名前を定義し、最後に total/cnt で平均を計算する式を書いてください。
また、「SUM(sales)/COUNTA(sales)」と直接書く場合と比べて、LET の方が有利になる場面をイメージして説明してください。

問題4

あなたがよく書いてしまう「長くて読みにくい数式」を 1 つ思い浮かべてみてください(VLOOKUP+IF+ROUND など、何でも構いません)。
その数式の中で、「ここに名前を付けておくとスッキリしそうだ」と思う部分を 2 箇所挙げ、
それぞれにどんな名前を付けると分かりやすくなりそうかを言葉で整理してみてください。

問題5

LET は「数式の中だけで使える一時的な名前付け」であり、名前定義(数式タブの「名前の管理」)とは役割が少し違います。
両者の違いを、「ブック全体で使う名前」と「そのセルの数式の中だけで完結する名前」という観点から整理し、
「どんなときに LET を選ぶべきか」を自分の言葉でまとめてみてください。

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