Excel関数 逆引き集 | 処理可読性向上 → LET

Excel VBA Excel
スポンサーリンク
スポンサーリンク

概要

Excel の数式が長くなると、
「どこが何をしているのか分からない」
「同じ計算を何度も書いていてミスしやすい」
という問題が必ず出てきます。

こうした “数式の可読性を上げる” ために登場したのが LET 関数です。

LET は、
「一度計算した値に名前を付けて再利用する」
という仕組みを Excel に持ち込みます。
プログラミングでいう「変数」を使えるようになるイメージです。

ここでは、初心者でも理解しやすいように、
LET の基本・テンプレート・実務的な使い方を例題つきで丁寧に解説します。


LET 関数の基本

LET の構文

=LET(名前1, 値1, 名前2, 値2, ..., 最終的に返す式)

ポイントは次の3つです。

  1. 名前(変数)を定義できる
  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 でも“変数を使う感覚”を取り入れてみてください。

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