Excelの小技 ~関数で変数を使用する~
こんにちは、システム革新Gのgrandpa Hamaです。
やっと過ごしやすくなってきましたね。
でも、秋はあっと言う間に過去り、すぐに冬になるんでしょうね。
季節の二季化が心配です。
本題です。
みなさんは、ExcelのLET関数をご存じですか。
LET関数はExcel365またはExcel2021以降のバージョンで使用できる比較的新しい関数の1つです。
目次
Excelの小技 ~関数で変数を使用する~
LET関数
LET関数は、関数の範囲内で変数を定義し、その変数を使って計算を行うことができる関数です。
少なくとも1つの変数(名前/値のペア)を定義する必要があり、最大で126組定義できます。
下記のようなメリットがあります。
・関数内で一時的な名前(変数)を定義できます。
・複雑な数式を分かりやすく整理できます。
・同じ計算を何度も行う必要がなくなり、処理速度が向上します。
・数式の修正が容易になります。
構文は下記の通りです。
=LET(名前1,値1,[名前2,値2,…],計算)
・名前1,名前2,… :数式内で使用する名前(変数名)を指定します。
・値1,値2,… :定義した名前に割り当てる値、または計算式を指定します。
・計算 :定義した名前を使って実行する計算式を指定します。
下記のような表があり、1月~3月の平均を40以下⇒D、50以下⇒C、70以下⇒B、71以上⇒Aで分類する計算式を考えてみましょう。

一般的な数式だと以下のようななると思います。
=IF(AVERAGE(A2:C2)<=40,”D”,
IF(AVERAGE(A2:C2)<=50,”C”,
IF(AVERAGE(A2:C2)<=70,”B”,”A”)))
これを、LET関数使った数式にすると以下のようになります。
=LET(avg,AVERAGE(A2:C2),
IF(avg<=40,”D”,
IF(avg<=50,”C”,
IF(avg<=70,”B”,”A”)))
)
いかがですか。
スッキリと見やすい数式になったと思いませんか。
AVERAGE関数も1回しか実行されないため、速度も上がります。
また、税込み金額を求めるサンプルは下記のようになります。
=LET(tax,0.1,amount,1250,amount+(amount*tax))
tax、amount変数に直接、値を設定して計算を行うこともできます。
おわりに
この関数を知ってから私は多用するようになりました。
プログラミング言語を知らない方は、変数と聞くとハードルがあがるかもしれませんが、
便利なので、皆さんも是非使ってみてください。