LET関数で数式を読みやすく整理する方法

「同じ計算を数式の中で2回、3回と繰り返して書いていて長く読みにくい」というとき、結論から言うとLET関数を使えば、数式の中に名前付きの変数を定義できるため、同じ計算を1回書くだけで複数箇所から参照でき、数式が短く読みやすくなります。この記事では基本の書き方、LETを使わない場合との比較、複数の変数を定義する書き方まで解説します。

目次

LET関数で数式に変数を定義する基本の書き方

基本の形は次の通りです。

=LET(名前1,値1,名前2,値2,...,計算)

「名前」に「値」(数値や別の数式の結果)を割り当て、最後の「計算」の中でその名前を変数のように使う関数です。名前と値のペアは複数定義でき、最後の引数だけが実際に返される計算結果になります。

なぜLETを使わない書き方では不便なのか

LETを使わない場合、同じ計算を数式の中で複数回使いたいときは、その計算式をそのままコピーして繰り返し書く必要があります。数式が長くなって読みにくくなるだけでなく、後から計算方法を1箇所修正するときに他の箇所を直し忘れるミスも起きやすくなります。また、同じ計算をExcelが複数回評価するため、計算量が多い数式では動作が遅くなることもあります。LETで一度だけ計算して名前を付けておけば、数式が短くなり、修正箇所も1箇所で済みます。

具体例:担当者の平均と全体平均の差を求める

次のような売上データ(A1:C9)があるとします。A列が日付、B列が担当者、C列が金額です。

A(日付) B(担当者) C(金額)
2 2026/6/3 佐藤 12000
3 2026/6/10 鈴木 8500
4 2026/6/15 佐藤 15000
5 2026/6/20 田中 9800
6 2026/7/2 鈴木 11000
7 2026/7/8 佐藤 13500
8 2026/7/15 高橋 7200
9 2026/7/22 田中 13500

B列(担当者)が「佐藤」の平均金額が、全体の平均金額に比べて何%高い(または低い)かを求めたい場合、AVERAGEIFSで複数条件の平均を計算する方法で紹介したAVERAGEIFSを使ってLETなしで書くと次のようになります。

=(AVERAGEIFS(C2:C9,B2:B9,"佐藤")-AVERAGE(C2:C9))/AVERAGE(C2:C9)

AVERAGE(C2:C9)(全体平均)をそのまま2回書いており、あとから集計範囲を変える場合は2箇所とも直す必要があります。LETを使うと次のように書けます。

=LET(全体平均,AVERAGE(C2:C9),佐藤平均,AVERAGEIFS(C2:C9,B2:B9,"佐藤"),(佐藤平均-全体平均)/全体平均)

「全体平均」という名前にAVERAGE(C2:C9)の結果を、「佐藤平均」という名前にB列(担当者)が「佐藤」の平均金額を割り当て、最後にその2つの名前を使って差の割合を計算する、という意味の数式です。

全体平均は8件の金額の平均で11,312.5円、佐藤平均は3件(12,000円・15,000円・13,500円)の平均で13,500円になるため、結果は約19.3%(佐藤さんの平均が全体平均より高い)になります。

名前は日本語でも使える

LETで定義する名前には、上記の「全体平均」「佐藤平均」のように日本語も使えます。xやyのような1文字の名前よりも、何を表しているかが分かる名前を付けたほうが、数式の見通しが良くなります。

よくあるエラー・注意点

  • 名前と値のペアの数を間違えると#N/Aや#VALUE!になる: LETは「名前,値」のペアを1組以上、最後に「計算」を1つ指定する構成です。ペアの数が合っていないとエラーになります。
  • 定義した名前は同じLETの中でしか使えない: LETで定義した名前は、その数式の中だけで有効な一時的な名前です。別のセルの数式から参照することはできません。
  • 古いExcelでは使えない: LETはExcel 2021・Microsoft 365以降で追加された関数です。それより古いバージョンでは#NAME?エラーになります。

まとめ

LET関数は数式の中に名前付きの変数を定義できるため、同じ計算の重複を避けて数式を短く、読みやすく整理できます。担当者や期間で条件付きの平均を求める考え方はAVERAGEIFSで複数条件の平均を計算する方法、参照先を柔軟に切り替えたい場合はINDIRECT関数でシート名を可変にして参照する方法もあわせてご覧ください。

目次