見出し画像

Power BI Desktopで移動平均クイックメジャーを使って困ったこと

DAXを利用した移動平均式を生成

「Power BI Desktop」では、「新しいクイックメジャー」機能を使用し、移動平均の「DAX」(Data Analysis Expressions)式を生成できます。
今回使用したデータは、厚生労働省のサイト「データからわかる-新型コロナウイルス感染症情報-」から「新規陽性者数の推移」を取得しています。

「新しいクイックメジャー」を選択

「移動平均」を選びます。

「移動平均」を選択

クイックメジャーに使うフィールドを配置すれば、計算式を生成してくれます。
下記の画面では、7日間移動平均を計算しています。
「前の期間」を「6」とすることで「7日目とその前の6日間 = 7日間」となるようです。

時間要素、数値要素、移動平均の集計期間のフィールドを配置

生成されたDAX式が以下です。

Newly confirmed cases 移動平均 = 
IF(
	ISFILTERED('calender'[Date]),
	ERROR("タイム インテリジェンスのクイック メジャーは、Power BI が指定する日付階層またはプライマリの日付列でのみグループ化またはフィルターできます。"),
	VAR __LAST_DATE = LASTDATE('calender'[Date].[Date])
	RETURN
		AVERAGEX(
			DATESBETWEEN(
				'calender'[Date].[Date],
				DATEADD(__LAST_DATE, -6, DAY),
				__LAST_DATE
			),
			CALCULATE(SUM('pcr_positive_daily'[Newly confirmed cases]))
		)
)


グラフを作成すると6日分余計に

DAX式をY軸に配置し、移動平均のグラフを作成します。
元データは県別の値が取得できます。
県から地方を参照できるテーブルを別途用意し、地方別のグラフにしています

X軸に時間要素、Y軸にクイックメジャーで作成したDAX式フィールドを配置

ただ、上記のグラフは、6日先までプロットしています。
日付を降順に並べたのが下の表です。
最新の日付は「2023年1月31日」です。
一方、グラフの先端は「2023年2月6日」になっています
「2023年1月31日」を視点とした7日間移動平均の値までを描くようです。

今回は「ヒント」を使って修正

グラフを「2023年1月31日」までにしようと、スライサーやフィルターを使いましたが、コントロールできませんでした。

※コントロールできないのは、日付=DATEが「年」「四半期」「月」「日」の階層構造になっていることが関係してるようです。
ただ、今回のクイックメジャーでは階層型のデータを使う必要があるので、ここは変えられませんでした。

他に効率の良い方法があるかもしれませんが、今回は「ヒント」フィールドを利用しました。
「ヒント」にX軸に使った時間要素を配置します。
グラフの上にマウスオーバーすると表示される要素を追加したい場合、「ヒント」を使えます。
「最も古い・・・」という表記になりますが、このまま進めます。

「ヒント」にX軸に使った時間要素を配置

「フィルター」を使って、「最も古いDate」に対し「空白でない」という条件を加えます。
こうすることで、「存在するDateの値のみX軸として表示」と設定できます。

「最も古いDate」に対し「空白でない」という条件を追加

上記条件を反映したグラフです。

フィルター条件を反映したグラフ

終点が「2023年1月31日」になっています。

終点が「2023年1月31日」に変わった

この記事が気に入ったらサポートをしてみませんか?