【エクセル】LET関数の使い方。数式に名前を付けて、数式を短く作成する方法

エクセルのLET関数で数式を短く分かりやすくする方法

Excel(エクセル)のLET関数は、Excel2021から登場した新関数です。

LET関数は、セルや値や数式の結果に名前を付けることで、数式を分かりやすくしたり、数式を短くすることが出来る関数です。

例えば、1つの数式内で同じ関数や値や数式を何回も使い回していることがあります。

そんな時に、LET関数を使えば、数式を短くして簡略化することができます。

この記事では、LET関数の基本的な使い方と事例を解説します。

エクセルのLET関数とは?

LET関数の読み方は、「レット関数」です。

英語の「Let」が、「許可する」「~させる」という意味です。

LET関数とは、セルや値や数式の結果に名前を付けることで、数式を分かりやすくしたり、数式を短くすることが出来る関数です。

ただ、LET関数で設定した名前は、そのLET関数の中だけで有効です。他のセルでは、設定した名前は利用できないので注意が必要です。

例えば、下のLET関数では、B3セルの値を「単価」という名前に、C3セルの値を「数量」という名前に設定しています。そして、「単価*数量」という計算式で、B3×C3の計算を行っています。

=LET(単価,B3,数量,C3,単価*数量)

LET関数を確定すると、「単価*数量」の答えが算出されました。

LET関数を使用した結果
LET関数を使用した結果

このように、LET関数の数式を見れば【単価×数量】を計算していることが一目で分かります。

この例では、LET関数を使わずに、単純に「=B3*C3」と入力した方が計算式は短く作成することができます。

しかし、数式内に同じ数式を複数回挿入している場合などに、LET関数は活躍します。これらの使い方を以降の見出しで詳しく解説していきます。

LET関数が使えるバージョン

LET関数は、Excel2021、Excel2024、Microsoft365(サブスクリプション)で使える新関数です。

LET関数が使えない場合、ExcelのバージョンがExcel2019以前のバージョンになっていないか確認してください。

バージョンは、「ファイル」タブの「その他」の「アカウント」から確認することができます。

LET関数の書式と引数

LET関数の書式と引数は以下のとおりです。

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

引数「名前」:値や計算結果につける名前を指定します。(例:単価、数量、X)

引数「値」:指定した名前に割り当てる数式を指定します。(例:B3*C3、B3、MID(B3,3,2))

引数「数式」:最後の引数に、名前を使った計算式を設定します。(例:単価*数量、X+Y)

名前と値を1セットとして、最大126個まで作成することが可能です。

LET関数の基本的な使い方

LET関数を使った基本的な使用例を1つ紹介します。

下の表のF3セルにLET関数を使って、売上と費用から利益率を計算してみます。

LET関数を使う元データ
LET関数を使う元データ

手順1.売上高に名前を付ける

まず、C列の売上高の合計に「売上高」という名前を付けるため、以下のようにLET関数の第1引数「名前1」、第2引数「値1」を設定します。

=LET(売上高,SUM(C3:C7),

手順1.LET関数で1つ目の名前を設定
手順1.LET関数で1つ目の名前を設定

手順2.費用に名前を付ける

次に、D列の費用の合計に「費用」という名前を付けるため、以下のようにLET関数の第3引数「名前2」、第4引数「値2」を設定します。

=LET(売上,SUM(C3:C7),費用,SUM(D3:D7),

手順2.LET関数で2つ目の名前を設定
手順2.LET関数で2つ目の名前を設定

手順3.名前を使って計算式を作成

LET関数の最後の引数に、設定した名前を使って計算式を作成します。利益率は「(売上高-費用)/売上高*100」で算出することができるので、LET関数は以下のとおりです。

=LET(売上高,SUM(C3:C7),費用,SUM(D3:D7),(売上高-費用)/売上高*100)

手順3.LET関数で名前を使った計算式を作成
手順3.LET関数で名前を使った計算式を作成

手順4.LET関数を確定

EnterキーでLET関数を確定します。そうすると、LET関数で利益率が24%と計算することができました。

手順4.LET関数を確定して利益率を求める
手順4.LET関数を確定して利益率を求める

このように、LET関数の最後の引数を確認すれば、利益率が「(売上高-費用)/売上高*100」で計算されていることが簡単に分かります。

仮に、LET関数を使わずに数式を作成すると以下のようになり、どういった計算式なのかを紐解くのが難しくなってしまいます。

=(SUM(C3:C7)-SUM(D3:D7))/SUM(C3:C7)*100

LET関数の数式は改行することで見やすく!

LET関数でセットする名前を増やすと、数式バーに表示されるLET関数が長くなってしまいます。

そんなときは、数式の途中で「Alt」キー+「Enter」キーを押して数式を改行してください。

さらに、スペースキーを使って文字の先頭の位置を調整すると、下のスクリーンショットのように、名前がどのようにセットされているかなど、把握しやすくなります。

LET関数を改行して数式を見やすくする
LET関数を改行して数式を見やすくする

数式を改行すると数式が隠れて一瞬見えなくなってしまいますが、数式バーの右端の⇩矢印ボタンを押すことで数式バーの2行目以降を表示することができます。

LET関数を使った事例を紹介

LET関数は、複雑な数式の場合に利用することで、その利便性を感じることができます。

LET関数の使用例を3つの事例を使って紹介します。

LET関数/事例1:FILTER関数に使用する

FILTER関数は、表から特定の条件に合うデータを抽出することができる関数です。

※FILTER関数の使い方を知らない方は、下の記事を参考にしてください。

下の表のE7セルに「#DIV/0!」エラーがあるため、FILTER関数を使うとエラーとなってしまいます。

そのため、ISERROR関数とIF関数を組み合わせて、以下のように、FILTER関数を利用することがあります。

=IF(ISERROR(FILTER(B3:E8,C3:C8<50000)),"-",(FILTER(B3:E8,C3:C8<50000)))

FILTER関数とISERROR関数を組み合わせた事例
FILTER関数とISERROR関数を組み合わせた事例

しかし、数式の中には抽出条件である「FILTER(B3:E8,C3:C8<50000)」が2回使われているため、数式がどうしても長くなってしまいます。

こんな時、LET関数を用いて、FILTER(B3:E8,C3:C8<50000)」を「抽出」という名前に設定することで、以下のように数式を短くすることができます。

=LET(抽出,FILTER(B3:E8,C3:C8<50000),
IF(ISERROR(抽出),"-",(抽出)))

LET関数を使って、FILTER関数に名前を設定
LET関数を使って、FILTER関数に名前を設定

LET関数/事例2:IF関数に使用する

IF関数を用いると、論理式が長くなることがあり、どのように条件を分岐させているか分かりづらくなることがあります。

例えば、下の表でB列の売上高の合計が、目標の「300,000」に達しているかを判定する場合は、以下のようにLET関数を使用して、数式を分かりやすくします。

=LET(売上高,SUM(C3:C7),
目標,300000,
達成率,売上高/目標,
IF(達成率>1,"達成","未達成"))

IF関数とLET関数を組み合わせた事例
IF関数とLET関数を組み合わせた事例

LET関数の第6引数「値3」を「売上高/目標」と設定しているように、名前を使った数式の結果に別の名前(達成率)を設定することも可能です。

そうすることで、LET関数の中のIF関数を見れば、達成率が100%かどうかを判定していることが一目で分かるようになります。

LET関数/事例3:FIND関数に使用する

FIND関数とMID関数を組み合わせて利用することで、特定の文字と文字の間の文字を抽出することができます。

=MID(B3,FIND("(",B3,1)+1,(FIND(")",B3,1)-FIND("(",B3,1)-1))

FIND関数とMID関数を使った事例
FIND関数とMID関数を使った事例

この文字の抽出方法は以下の記事で紹介しているので、合わせて参考にしてください。

しかし、数式の中にFIND関数を3回利用しているため、数式が長くなっていて、どういった数式なのか分かりづらい状態です。

そのため、LET関数を用いて、FIND関数に名前を設定して、以下のように数式を作成します。

=LET(先頭のカッコ,FIND("(",B3,1),
末尾のカッコ,FIND(")",B3,1),
MID(B3,先頭のカッコ+1,末尾のカッコ-先頭のカッコ-1))

LET関数を用いて、FIND関数に名前を設定
LET関数を用いて、FIND関数に名前を設定

LET関数の中の最後の引数を確認すると、文字を抽出するMID関数を用いて、先頭のカッコの次の文字から、末尾のカッコの手前までの文字を抽出しようとしていることが分かります。

-Excel(エクセル), 数式・関数