概要
Excel の数式が長くなると、
「どこが何をしているのか分からない」
「同じ計算を何度も書いていてミスしやすい」
という問題が必ず出てきます。
こうした “数式の可読性を上げる” ために登場したのが LET 関数です。
LET は、
「一度計算した値に名前を付けて再利用する」
という仕組みを Excel に持ち込みます。
プログラミングでいう「変数」を使えるようになるイメージです。
ここでは、初心者でも理解しやすいように、
LET の基本・テンプレート・実務的な使い方を例題つきで丁寧に解説します。
LET 関数の基本
LET の構文
=LET(名前1, 値1, 名前2, 値2, ..., 最終的に返す式)
ポイントは次の3つです。
- 名前(変数)を定義できる
- 定義した名前は後続の式で何度でも使える
- 最後の式が LET 全体の結果になる
たとえば、A2 の値を 2 回使う式を LET なしで書くと:
=(A2*2) + (A2*3)
LET を使うとこう書けます。
=LET(x, A2, (x*2) + (x*3))
A2 を x として一度だけ定義し、後は x を使うだけ。
これだけで 読みやすさ・修正のしやすさが段違い になります。
LET のメリット
可読性が上がる
長い式でも「名前」を付けることで意味が分かりやすくなります。
同じ計算を何度も書かなくてよい
A2 の TRIM を何度も書く必要がなくなります。
修正が一か所で済む
「計算ロジックを変えたい」とき、変数の定義部分だけ直せばOK。
基本パターン:前処理を変数化する
例:A2 の前後スペースを削除し、
その文字数と先頭2文字を使う式
LET を使わない場合:
=LEN(TRIM(A2)) & "-" & LEFT(TRIM(A2),2)
TRIM(A2) を2回書いていて読みにくいです。
LET を使うと:
=LET(
cleaned, TRIM(A2),
LEN(cleaned) & "-" & LEFT(cleaned,2)
)
- cleaned = TRIM(A2)
- cleaned を後続の式で再利用
という構造になり、圧倒的に読みやすくなります。
応用1:複雑な計算式を分解する
例:売上の計算
売上 = 数量 × 単価 × (1 + 税率)
LET なし:
=(B2*C2)*(1+D2)
LET あり:
=LET(
qty, B2,
price, C2,
tax, D2,
qty * price * (1 + tax)
)
「qty」「price」「tax」と名前が付くことで、
式の意味が一目で分かります。
応用2:文字列処理の共通部分を変数化
例:A2 の文字列を
- 前後スペース削除
- 小文字化
- その文字数と末尾3文字を返す
LET なし:
=LEN(LOWER(TRIM(A2))) & "-" & RIGHT(LOWER(TRIM(A2)),3)
LET あり:
=LET(
cleaned, LOWER(TRIM(A2)),
LEN(cleaned) & "-" & RIGHT(cleaned,3)
)
cleaned を使い回すことで、
式が短くなり、修正も簡単になります。
応用3:複雑な条件式を整理する
例:
- A2 の前処理済み文字列を cleaned
- cleaned が「OK」なら 1
- cleaned が「NG」なら 0
- それ以外は -1
LET なし:
=IF(LOWER(TRIM(A2))="ok",1,IF(LOWER(TRIM(A2))="ng",0,-1))
LET あり:
=LET(
cleaned, LOWER(TRIM(A2)),
IF(cleaned="ok",1,IF(cleaned="ng",0,-1))
)
条件式の読みやすさが大幅に向上します。
応用4:複数の中間計算を整理する
例:
- A2 の値を2倍した値を x
- x に 5 を足した値を y
- y を 3 で割った値を返す
=LET(
x, A2*2,
y, x+5,
y/3
)
計算の流れが明確になり、
「何をしている式なのか」がすぐ分かります。
LET のテンプレート集
前処理を変数化するテンプレート
=LET(
cleaned, TRIM(A2),
最終式(cleaned)
)
数値計算を分解するテンプレート
=LET(
a, A2,
b, B2,
c, C2,
a + b * c
)
文字列処理の共通化テンプレート
=LET(
s, LOWER(TRIM(A2)),
LEFT(s,3) & "-" & RIGHT(s,3)
)
条件式を読みやすくするテンプレート
=LET(
v, TRIM(A2),
IF(v="OK",1,IF(v="NG",0,-1))
)
例題
問題1
A2 の前後スペースを削除した値を cleaned として定義し、
その文字数を返す LET 式を書いてください。
=LET(
cleaned, TRIM(A2),
LEN(cleaned)
)
問題2
A2 の値を x として定義し、
x の 2 倍と 3 倍の合計(= x2 + x3)を返す LET 式を書いてください。
=LET(
x, A2,
x*2 + x*3
)
問題3
A2 の文字列を小文字化した値を s として定義し、
s の先頭2文字と末尾2文字を結合して返す LET 式を書いてください。
=LET(
s, LOWER(A2),
LEFT(s,2) & RIGHT(s,2)
)
問題4
A2 の値を base として定義し、
base×1.1 の結果を返す LET 式を書いてください。
=LET(
base, A2,
base * 1.1
)
問題5
A2 の前処理済み文字列(TRIM+LOWER)を cleaned として定義し、
cleaned が “ok” なら 1、”ng” なら 0、それ以外は -1 を返す LET 式を書いてください。
=LET(
cleaned, LOWER(TRIM(A2)),
IF(cleaned="ok",1,IF(cleaned="ng",0,-1))
)
LET は「数式を読みやすくする」「修正しやすくする」ための強力な武器です。
一度使い始めると、複雑な式を書くときのストレスが一気に減ります。
ぜひ、あなたの Excel でも“変数を使う感覚”を取り入れてみてください。
