6/12/2024

Excel。最大値と最小値を除いた平均値をLET関数で算出してみる【Excluding】

Excel。最大値と最小値を除いた平均値をLET関数で算出してみる

<SUM+MAX+MIN+COUNT関数・LET関数>

最大値と最小値を除いた平均値は、AVERAGE関数では算出することができません。


AVERAGE関数をつかわないで、平均値を算出するには、範囲の総和を範囲の総和した件数で除算すれば、算出することができます。

LET関数で算出してみる

C2:C6まで、売上金額が入力されています。


この範囲の最大値と最小値を除いた平均値を算出するために、D8に数式を設定しました。


=(SUM(C2:C6)-MAX(C2:C6)-MIN(C2:C6))/(COUNT(C2:C6)-2)


長いですが、シンプルな関数しかつかっていません。

だけど、C2:C6という範囲選択が何度も登場してきます。


数式を説明すると、

SUM(C2:C6)-MAX(C2:C6)-MIN(C2:C6)

SUM関数で、合計を算出します。

その値から、MAX関数で最大値をMIN関数で最小値を減算します。


この値を

COUNT(C2:C6)-2 の算出結果で除算します。


COUNT関数で数値の件数を算出することができます。

「-2」するのは、最大値と最小値のデータを除いた件数にする必要があるからです。


この数式で算出して、何ら問題はありません。


今回は、この数式をLET関数で、算出してみます。


LET関数は、数式内に「名前の定義」というか、「変数」を設定することができる関数です。


ただ、どのように使うのか、わかりにくい関数といわれています。


そこで、比較的わかりやすい 範囲選択 を名前に設定してみます。


D9にLET関数をつかって数式をつくります。

LET関数

=LET(rg,C2:C6,(SUM(rg)-MAX(rg)-MIN(rg))/(COUNT(rg)-2))


数式の文字数としては、差はあまりありませんが、C2:C6を何度もつかわないので、可読性は改善されています。


では、この数式の説明をします。


LET関数の最初の引数は、名前。

プログラムでいうところに変数。あるいは、名前の定義です。


今回は、範囲選択なので、Excel VBAでお馴染みのRangeの「rg」としました。


2つ目の引数は、式。

式となっていますが、数式でもいいし、範囲でも指定できます。

繰り返し設定するところを設定するといいので、「C2:C6」としました。


この名前と式を複数設定することも出来ます。


3つ目は、計算式。

SUM(rg)-MAX(rg)-MIN(rg))/(COUNT(rg)-2


C2:C6だったところが、rgという名前を設定しましたので、rgにすることで、C2:C6と入力しなくてもいいわけです。


このように、LET関数をつかうと、複雑な数式の時に、可読性の改善と、数式もコンパクトにすることができるかもしれません。