最新の Excel で使うことのできる LET 関数について、使いたい場面が出てきたのでご紹介します。というよりも、FILTER 関数を使ってやりたいことがあって、それを実現する 1 つの例として LET 関数で対応できるのでこれを書いておきます。
こちら で書いた FILTER 関数の利用例でご紹介した数式が下記でした。
=CHOOSE({1,2,3},
FILTER(Data[No] , Data[種別]="A"),
FILTER(Data[項目] , Data[種別]="A"),
FILTER(Data[数量] , Data[種別]="A"))
この数式では、[Data] という名前のテーブルで [種別] 列の値が「A」のレコードを抽出したいけれど、テーブルのすべての列ではなくて、[No]、[項目]、[数量] だけを抽出結果として返すための処理をしています。
青い部分は FILTER 関数の抽出条件なのですが、CHOOSE 関数を使った 1 つの数式の中で何度も同じ数式を指定していることがわかります。これをもう少しすっきりとわかりやすくしたいな、という場合に LET 関数が活用できますよ、というお話です。

LET 関数は、いわゆる変数を定義でき、その変数を使ってどんな処理をしたいのかを指定できる関数です。1 つの数式内に何度もでてくる数式による処理がある場合、その処理に名前を付けて繰り返し使える、ということです。
「この値にこういう名前を付けてこうやって使って」と定義できるのですが、構文はこちら↓
=LET(変数名 , 変数にいれる値や数式 , 変数を使った処理)
変数名 : 変数 (入れ物) として定義する名前。
変数に入れる値や数式 : 変数に入れる値や処理。
変数を使った処理 : 定義した変数を使って行いたい処理。
変数名、すなわち 変数に入れる値や数式のセット (ペア) はたくさん作ることができます。(63 個。そんなに作ったら余計使いにく いと思うけれど。)
たとえば、「=LET(data, 100, data*2)」という数式では、100 という値を data という変数に入れて、data を 2 倍しているので結果として「200」が返ります。こちらの数式では変数を 1 つだけ定義しています。
「=LET(data, 100, amount, 2, data*amount)」という数式では、100 という値を data という変数に入れて、2 という値を amount という変数に入れて、data と amount を 乗算しているので結果として「200」が返ります。こちらの数式では変数を 2 つ定義しています。
ということは、冒頭でご紹介した「Data[種別]="A"」 が何度も出てくる数式は、パターンA かパターンB にするとだいぶすっきりします。
● パターンA:定義する変数は 1 つ。これを FILTER 関数の条件として複数回使用する。
=LET( 条件, Data[種別]="A", CHOOSE({1,2,3}, FILTER(Data[No], 条件), FILTER(Data[項目], 条件), FILTER(Data[数量], 条件),)

● パターンB:定義する変数は 4 つ。CHOOSE 関数で指定する値も変数として設定。
=LET( 条件, Data[種別]="A", 列1, FILTER(Data[No],条件), 列2, FILTER(Data[項目],条件), 列3, FILTER(Data[数量],条件), CHOOSE({1,2,3},列1,列2,列3))

LET 関数は IF 関数をたくさんネストさせるような数式などでも利用するとよいでしょう。 最初に作っておいて何度も使うという考え方は、セルに値や数式を入れておいてこれを参照した数式をたくさん作るのと似ているはず。
考え方としてはずっとやってきたことなので使い方は難しくないと思います。使いまわしたい処理をセル参照せずにやりたいのなら LET 関数の出番、ということですね。
石田 かのこ
営業時間:平日9:00~18:00