10/27/2015

Excel。Average。平均は平均でも、移動平均を指定した日数で算出する方法


Excel。平均は平均でも、移動平均を指定した日数で算出する方法

<移動平均>


平均を算出するなかでも、場合によっては、
ただ単に平均を算出すればOKというものばかりではないですよね。

例えば、移動平均などがそうですよね。

移動平均は、一定期間の平均を連続的に求めることで、データの変動を吸収できるので、
全体の方向性を掴みやすいツールですが、
この移動平均を指定した期間で変更できる表を作ろうとすると、なかなか大変なので、
今回は、移動平均表の作り方をやってみましょう。

まずは、下記の表があります。

B1には、平均日数が入力されています。
ここを変えると、平均日数が変わって、その日数で移動平均を出せるようにします。

C列には、移動平均を算出することになります。

さて、C4の移動平均は、平均日数が、3日なので、B4:B6の数値の平均値ですから、
単純にAVERAGE関数で算出することは可能です。

C4には、=AVERAGE(B4:B6) という数式が設定されていて、オートフィルハンドルを使って、
数式をコピーした結果が表示されております。

これで、全く持って問題は無いのですが、これでは、汎用性がないので、
今回は、B1に数値を入力した期間で移動平均を算出しようというものなのです。

では、C4に数式を作っていくことにしましょう。

まず問題になるのが、どうやったら、3日間分の範囲選択が出来るのか?ということですよね。
このような場合には、OFFSET関数を使うといいですね。

このOFFSET関数は、起点から指定した行や列を参照することが出来る関数なのです。

では、先程AVERAGE関数を使って算出しましたら、小数点以下が表示されましたので、
INT関数を使って整数化するようにしてみましょう。

C4をクリックして、INT関数ダイアログボックスを表示しましょう。

数値にAVERAGE関数を設定してきます。

数値1に、OFFSET関数ダイアログボックスを設定してきましょう。

いよいよ、OFFSET関数ですね。引数が多くてわかりにくいですが、
一つずつ設定していきましょう。

参照には、起点となるB4 を入力します。
行数は、0(ゼロ)

列数も、0(ゼロ)

高さは、平均日数が格納されている、B1ですが、
オートフィルハンドルを使って数式をコピーしますので、絶対参照を設定しますので、$B$1

幅は、ありませんので、省略します。

あとは、OKボタンをクリックしましょう。

これで、数式は完成しましたね。
C4には、

=INT(AVERAGE(OFFSET(B4,0,0,$B$1)))

という数式が設定されています。

移動平均が算出できましたね。では、B1を6に変更してみましょう。

移動平均が変わりましたね。このようにOFFSET関数を組合すことで、
範囲選択をする関数も汎用性をアップすることが出来るようになりますよ。