LET関数 ● 数式や値、セル範囲に名前を付けて関数内で使用する

[Excel 2021以降]

Excelの LET(レット)関数の使い方を紹介します。

Excel 2021の新関数であるLET関数を使用すると、数式の中に何度も出てくる式や値、セル範囲などに名前を付け、その名前を使った計算を行えます。

スポンサーリンク

書式

数式や値、セル範囲に名前を付けて関数内で使用する
=LET(名前1, 式1,[名前2, 式2], …, 計算式)

式1]に[名前1]、[式2]に[名前2]……、という名前を付け、その名前を使った[計算式]の結果を返します。[名前]と[]は必ずペアで指定します。少なくとも1組指定する必要があります。

引数

引数 説明
名前 ]に付ける名前を指定する。
名前]に対応する式を指定する。式や定数、セル範囲を指定できる。
計算式 LET関数の戻り値を求めるための式を指定する。[計算式]の中で[]の代わりに[名前]を使用できる。

例えば次の数式は、

=▼*○○○○○+■/○○○○○+▲^○○○○○

LET関数を使用して「○○○○○」に「x」という名前を付けると、

=LET(x, ○○○○○, ▼*x+■/x+▲^x)

のように書き換えることができます。

計算式]の中に同じ[]が複数存在する場合、同じ計算を何度もすることになります。[]に[名前]を付けておけば、その[]の計算は1回で済み、パフォーマンスの向上を期待できます。また、数式の修正も1カ所で済むのでメンテナンス性も上がります。

なお、[名前]には、英数字、日本語、アンダースコア「_」を使用できます。ただし、先頭に数字を指定することはできません。また、「A1」のようなセル番号と重複する名前も使用できません。

使用例1…数式中に何度も出てくるセル範囲に名前を付ける

具体例を見ていきましょう。図1のセル I3の数式には「B3:H3」が 4回出現します。

セル I3 | =(SUM(B3:H3)-MAX(B3:H3)-MIN(B3:H3))/(COUNT(B3:H3)-2)

図1 セルB3~H3に、7人の審判員の採点が入力されている。セルI3に、最高点と最低点を除いた平均点を求めている。セルI3の数式の中に「B3:H3」が4回出てくる。

LET関数を使用して、セル I3の数式を書き換えてみましょう。ここでは「B3:H3」に「s」という名前を付けます。引数[名前1]に「s」、[式1]に「B3:H3」を指定します。さらに、図1の数式の「B3:H3」を「s」で置き換えて、[計算式]に指定します。

=LET(名前1, 式1, 計算式)

セル I3 | =LET(s,B3:H3,(SUM(s)-MAX(s)-MIN(s))/(COUNT(s)-2))

図2 LET関数を使用して、セルI3の数式を書き換えた。

計算対象のセル範囲「B3:H3」を変更する場合、図1の数式では4カ所の修正が必要なのに対して、図2の数式では1カ所で済みます。

メモ

図1の数式の意味
図1の数式の意味がわからなくてもLET関数の使い方は理解できると思いますが、一応説明しておきます。図1ではセルB3~H3の数値を対象に、SUM関数で合計、MAX関数で最高点、MIN関数で最低点、COUNT関数で数値の個数を求めています。「合計 - 最高点 - 最低点」を計算すると、最高点と最低点を除く5人の採点の合計が求められます。これを「数値の個数 - 2」、つまり「5」で割ると、最高点と最低点を除いた平均値が求められます。
=(SUM(B3:H3)-MAX(B3:H3)-MIN(B3:H3))/(COUNT(B3:H3)-2)
同じ最高点または最低点を付けた審判員が複数いる場合でも、取り除かれるのはそれぞれ1人分です。

使用例2…数式中の一部の式に名前を付ける

次に、数式中の特定の式に名前を付ける例を紹介します。以下の数式には「FIND("市",B3)」が2回出てきます。

セルC3 | =MID(B3,FIND("市",B3)+1,FIND("区",B3)-FIND("市",B3))

図3 市名や区名に「市」「区」の文字が含まれていないものとして、住所から区名を取り出している。

「FIND("市",B3)」に「shi」という名前を付けて図3の数式を書き換えると以下のようになります。

=LET(名前1, 式1, 計算式)

セルC3 | =LET(shi,FIND("市",B3),MID(B3,shi+1,FIND("区",B3)-shi))

「FIND("区",B3)」にも名前を付けた場合、数式は以下のようになります。

=LET(名前1, 式1, 名前2, 式2, 計算式)

セルC3 | =LET(shi,FIND("市",B3),ku,FIND("区",B3),MID(B3,shi+1,ku-shi))

図4 LET関数を使用して、セルC3の数式を書き換えた。

なお、引数[名前]は、定義した以降の[]と[計算式]でしか使用できません。例えば、[名前2]は[式2]と[計算式]で使用できますが、[式1]では使用できません。

以下では、図4の数式中の「B3」に「r」(「range」の頭文字)という名前を付けて、[式2]と[式3]と[計算式]で使用しています。[式2]と[式3]で使用するので、「r」は[名前1]で指定する必要があります。

=LET(名前1, 式1, 名前2, 式2名前3, 式3計算式)

セルC3 | =LET(r,B3,shi,FIND("市",r),ku,FIND("区",r),MID(r,shi+1,ku-shi))

今回はLET関数の使い方の説明なので[]自体は平易なものを使用ましたが、実際に便利さが実感できるのは長く複雑な[]を指定するときでしょう。

メモ

図3の数式の意味
図3では、次の数式を使用して区名を取り出しています。
=MID(B3,FIND("市",B3)+1,FIND("区",B3)-FIND("市",B3))
FIND関数は、[検索文字列]が[文字列]の何文字目にあるのかを求める関数です。「FIND("市",B3)」では、「横浜市神奈川区泉町x-x-x」から「市」の位置である「3」が求められます。また、「FIND("区",B3)」では、「横浜市神奈川区泉町x-x-x」から「区」の位置である「7」が求められます。
=FIND(検索文字列, 対象, [開始位置])
MID関数は、[文字列]の[開始位置]から[文字数]分の文字列を取り出す関数です。図3の数式では、「横浜市神奈川区泉町x-x-x」の「3+1」文字目から「7-3」文字分の文字列「神奈川区」が取り出されます。
=MID(文字列, 開始位置, 文字数)
なお、この数式は市名や区名に「市」「区」の文字が含まれていないことを前提に作成しています。
スポンサーリンク

関連記事