【意外と小難しい移動平均をDAXで簡単に、しかも算出日数をスライサーで変動させる】
移動平均の計算はエクセルなら関数を入れれば簡単に計算できます。ただPower BIだとDAXを使用する必要があります。DAXを使用する代わり、DAXにパラメーター機能を組み込めば算出日数を可変で表示できます

目次
使用データ
下の画像のように、日別に金額が集計されたデータを活用します

同じ日のデータが複数存在するデータを使用する場合については、最後のまとめで解説します

何故、別途に解説するかというと、上記の画像の場合には普通の計算方法だと日別の平均金額が薄まってしまうからです
それでは本題に戻します
DATESINPERIOD関数
移動平均の計算では、基準の日から複数前までの期間が計算の対象になります
複数の日付を計算するのには、DATESINPERIOD関数が適しています
このDATESINPEROD関数を、条件付きで合計を計算するSUMX関数の平均版であるAVERAGEX関数と組み合わせます
下記は7日間の移動平均を算出するメジャー式です
移動平均_7日間 =
AVERAGEX(
DATESINPERIOD(①’Calendar'[Date],
②MAX(‘Calendar'[Date]),
③ -7,
④ DAY ),
[TotalSales])
①ではカレンダーテーブルに日付を指定します
②では計算期間の最終日を指定し、③で算出期間を計算します(30日間の場合は-30で指定します)
④は上記ではDAYで指定していますがMONTHでも指定できます
*[TotaSales]のように事前に合計を計算するメジャーを設定しておきます

パラメーターとの組み合わせ
それでは、上記で作成した移動平均を算出するメジャーをパラーメーターと組み合わせてみましょう

パラメーターでは値の範囲を設定します

パラメーターを設定したら、データの箇所に次のようなデータが追加されます

こちらの「パラメーターの値」を前述のDAXに組み込みます

これで移動平均の算出日数が可変になります

<まとめ>
今回はDAXを使用して移動平均を計算する方法を解説しました
更にパラメーターと組み合わせて移動平均の算出日数を可変にしましました
移動平均を可変にすることで、数値の見方も今までと違った切り口で見ることができるはずです
最後に、元データで同一日に複数のデータがある場合です

この場合は、一旦、Calculate関数で合計を計算します。その後に割り算をします

7日間の移動平均を算出する場合には、上記の画像のように7で割ります
但しこの計算方法の場合には、グラフの最初の箇所がいびつになりますので注意が必要です

コメントを残す