LET 関数

LET 関数

Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel for the web Excel 2021 Excel 2021 for Mac その他…表示数を減らす

LET 関数は、計算結果に名前を割り当てます。 これにより、中間計算、値、定義名などを数式内に格納できます。 これらの名前は LET 関数の範囲内にのみ適用されます。 プログラミングの変数と同様に、LET は Excel のネイティブな数式構文を使用して実行されます。

Excel の LET 関数を使用するには、名前と関連する値のペア、そのすべてを使用する計算を定義します。 少なくとも 1 つの名前/値のペア (変数) を定義する必要があり、LET は最大 126 組をサポートします。

利点

  • パフォーマンスの向上 1 つの数式内に同じ式を複数回記述した場合、Excel はその結果を複数回計算します。 LET を使用して式を名前で呼び出し、Excel で 1 回だけ計算させることができます。

  • 快適な閲覧と構成 特定の範囲参照またはセル参照で何を参照したか、何を計算していたか、同じ式をコピー/貼り付けしたかなどを覚えておく必要はもうありません。 変数を宣言して名前を付ける機能を使用して、自分と式のコンシューマーにとってわかりやすいコンテキストを割り当てることができます。

__

構文

= LET (name1、name_value1、calculation_or_name2、[name_value2、calculation_or_name3…])

引数説明
name1 必須最初に割り当てる名前。 文字で始まる必要があります。 数式の出力であったり、範囲の構文と競合していたりしてはなりません。
name_value1 必須name1 に割り当てられている値。
calculation_or_name2 必須以下のいずれかになります。
  • LET 関数内のすべての名前を使用する計算。 LET 関数の最後の引数でなければなりません。
  • 2 番目の name_value に割り当てる 2 番目の名前。 名前が指定されている場合、name_value2 と calculation_or_name3 が必須です。

name_value2 任意 | calculation_or_name2 に割り当てられている値。
calculation_or_name3 任意 | 以下のいずれかになります。

  • LET 関数内のすべての名前を使用する計算。 LET 関数の最後の引数は計算でなければなりません。
  • 3 番目の name_value に割り当てる 3 番目の名前。 名前が指定されている場合、name_value3 と calculation_or_name4 が必須です。

注:

  • 最後の引数は、結果を返す計算である必要 があります。

  • 変数の名前は、名前マネージャーで使用できる有効な名前と一致します。 たとえば、"a" は有効ですが、"c" は R1C1 形式の参照と競合するため有効ではありません。

使用例

使用例 1

単純な式 "SUM(x、1)" の場合、x は値を割り当てることができる名前付きの変数です (この場合、x には値 5 が割り当てられます)。

= LET (x、5、SUM(x、1))

この数式をセルに入力すると、値 6 が返されます。

使用例 2

たとえば、未加工の売上データがあり、そのデータをフィルター処理して 1 人のユーザーを表示し、空白セルにダッシュを追加するとします。

フィルター処理されていないデータフィルター処理されたデータ

LET を使用しなくても上記の処理は可能ですが、LET を使用すると数式の読みやすさが向上し、LET を使用しない場合の 2 倍の速さで計算することができます。

サンプル データ

この例を自分で調べる場合は、次の表を空白のワークシートのセル A1 にコピーします。

社員名地域製品利益
Amy東部りんご$1.33
Fred南部バナナ$0.09
Amy西部マンゴー$1.85
Fred北部$0.82
Fred西部バナナ$1.25
Amy東部りんご$0.72
Fred北部マンゴー$0.54

元の数式

=IF(ISBLANK(FILTER(A2:D8,A2:A8="Fred")),"-", FILTER(A2:D8,A2:A8="Fred"))

** LET を使用した数式**

=LET(filterCriteria ,"Fred" , filteredRange , FILTER(A2:D8,A2:A8=filterCriteria), IF(ISBLANK(filteredRange),"-", filteredRange))

上部へスクロール