【EXCEL | LET関数】数式を分り易くする

スポンサーリンク

数式を分りやすくする

数式を分りやすくするために使えるLET関数を紹介します。

これまでEXCELでは、数式内で同じ参照や数式を表すためには、あたり前ですが同じ数式を必要な数だけ記述する必要がありました。

しかし、このLET関数が登場したことで、その繰り返し登場する参照や数式を別の名前で登録しておき、その名前を使うことで表現することが出来るようになりました。

言葉で書くと分かりにくいと思いますので、実際にケースで見ていきましょう!

LET関数

構文

=LET(名前, 名前にする参照や数式[, 名前2, 名前2にする参照や数式......],計算)

「名前」と「名前にする参照や数式」はセットで記述します。※最大126組使えます。

「計算」部分で実際に行いたい数式を記述しますが、ここでは「名前にする参照や数式」を「名前」で表現することが出来ます。

サンプル

例えば次のような表があるとします。

F2セルでidを選択して、G2セルに次のような文章を作ろうとするとします。

そのidは(●さん)で、年齢は(○)歳で性別は(■)です。

idを基準にA1:D11の範囲から、VLOOKUP関数でデータを取得してきて、&で繋げて文章を組みたてます。

普通にやると、こんな感じですね。

="そのidは" & VLOOKUP(F2, $A$1:$D$11, 2, FALSE) &
"で、年齢は" & VLOOKUP(F2, $A$1:$D$11, 4, FALSE) &
"歳で性別は" & VLOOKUP(F2, $A$1:$D$11, 3, FALSE) &
"です。"

まあこれくらいのことなら、そんなに複雑ではないので良いんですが、例えば何度も出てきているVLOOKUP関数の中の$A$1:$D$11という範囲は、同じことを何回も記述していますよね。

LET関数を使うことでこういった繰り返し記述しているものを、分かりやすい名前に付け替えることが可能です。

では、LET関数を利用してこの数式を書き直してみましょう。

=LET(range, $A$1:$D$11,
  "そのidは" & VLOOKUP(F2, range, 2, FALSE) &
  "で、年齢は" & VLOOKUP(F2, range, 4, FALSE) &
  "歳で性別は" & VLOOKUP(F2, range, 3, FALSE) &
  "です。"
)

1行目の”LET(range, $A$1:$D$11, ”の部分で、 $A$1:$D$11,の範囲を”range”という名前を付けています。

2行目以降で、実際の数式を組み立てていますが、この中のVLOOKUP関数に登場する、セル範囲指定は”range”と記述するだけで、 $A$1:$D$11 を指定することと同じになります。

この例では、分りやすく1つの範囲だけにしていますが、例えば、参照範囲が2つ3つあった場合、複雑な数式を組み立てていると、どれがどこの範囲だったのか混乱してくることもよくあります。

LET関数を使って、

=LET(stafflist, $A$1:$D$11, memberlist, $A$21:$D$31,

計算

)

のように、使用する範囲を分かりやすい名前で付けておくと、数式を組み立てる際にも、どの範囲を指定するのかが格段に分りやすくなります。

また、名前つけは、数式に対しても可能です。

次の数式をご覧下さい。

=LET(male,FILTER($A$2:$D$11,$C$2:$C$11="男"),
female,FILTER($A$2:$D$11,$C$2:$C$11="女"),
"年齢の平均は、男性が"&AVERAGE( male )&"歳 "&
"女性が"&AVERAGE(female)&"歳です。"
)

この数式は、先程の表で、

年齢の平均は、男性が(●●)歳 女性が(●●)歳です。

という文章を組み立てようとした場合の数式のサンプルです。

male, FILTER($A$2:$D$11,$C$2:$C$11="男"),

で、一覧表の男だけのリストを配列で取得した結果を、maleに

female, FILTER($A$2:$D$11, $C$2:$C$11="女"),

で、一覧表の女だけのリストを配列で取得した結果を、femaleと名前付けを行っています。

組み立ての文章の中では、AVERAGE関数の引数に、各配列を渡すことで平均を出していることがよく分かりますね(^o^)

LET関数を仕様しなかった場合とも比較してみましょう。

= "年齢の平均は、男性が"&AVERAGE(FILTER($A$2:$D$11,$C$2:$C$11="男"))&"歳 "&
 "女性が"&AVERAGE(FILTER($A$2:$D$11,$C$2:$C$11="女"))&"歳です。"

わかり易さは一目瞭然だと思いますがいかがでしょう??

まとめ

LET関数を使うことで、繰り返し出現する数式や参照範囲をまとめたり、名前を付けることで数式を読みやすくする方法を紹介しました。

プログラミングをやっている人には、馴染み易い方法だと思います(^o^)

使い始めは慣れないこともあるかと思いますが、慣れると逆になくてはならないものになると思います!