Excel。新しく追加された「LET関数」ってどういう時に使ったらいいの?
<LET関数>
Office365に新しく追加された関数に、「LET関数」というのがあります。
ただ、使い勝手がわからないというか、どこで使ったらいいのかイマイチわかりにくい関数なんですね。
Microsoftさんの説明には、「LET 関数は、計算結果に名前を割り当てます。 これにより、中間計算、値、定義名などを数式内に格納できます。」とあります。
きっと、色々な使い方があるのでしょうけど、簡単に言ってしまえば、一度別のセルに計算結果を算出して、その算出結果を使って、回答を求めるような2段階なことはしなくてもいいということなんだと思います。
LET関数がもっている引数はというと、
LET(名前1,名前1の値,計算または名前2…)
です。
とりあえず、動きを確認してみましょう。
次の表を用意しました。
やりたいことは、H列に、C列・E列・G列の合算値が200点以上ならば、「Good!」と表示したいわけです。
早速、H2にLET関数をつかった数式を作っていきます。
=LET(W,C2,L,E2,H,G2,IF(SUM(W,L,H)>=200,"Good!",""))
C2には、Writingの「W」。
E2には、Listeningの「L」。
G2には、Hearingの「H」と名前を設定して、その名前を使って、IF関数。
WLHの合算値が200以上だったら「Good!」と表示する数式です。
オートフィルで数式をコピーしてみましょう。
ご覧のように、200点以上のものに、「Good!」と表示することができました。
普通ならば、C列とE列とG列の合算値を算出する列を用意して、算出された合算値をつかって、IF関数をつかった判定を行うことが多いと思いますが、合算値を算出する作業である、中間計算を合わせて、行っています。
しかし、よく考え見ると、別にIF+SUM関数のネストでも同じように結果を算出することができます。
=IF(SUM(C2,E2,G2)>=200,"Good!","")
まぁ、たしかに、SUM関数の引数が「,(カンマ)」で選択するのは大変面倒なのと、対象件数が増えてしまうと、わかりにくくなる傾向からミスを誘発しかねないことを考えれば、LET関数を使う方がいいのかもしれませんね。
とくに今回のように、途中途中に、日付の列があったりすると、次の数式のように
=IF(SUM(C2:F2)>=200,"Good!","")
とSUM(C2:F2)のように範囲選択してしまうと、日付はシリアル値であるために、合算対象になってしまうので、結果が200を超過してしまうために、すべてが「Good!」と表示されてしまいます。
新しく登場したLET関数。
新しく追加された理由があるはずなので、Excel VBAや、スピル機能との連動や新しく追加された関数などと、ネストしたり組み合わせて使ったりすることで、きっと効果を発揮するのではないかなぁ~思っています。