Power BIでの累計のデータ作成方法について解説します。
下のグラフの折れ線が累計データです。
4月から金額を積み上げて、3月末にリセットしています。
知っていれば簡単なのですが知らないとすごく苦労します。
累積はよく使いますので参考にしてください。
累計はクィックメジャーから作成できます。
それではさっそく累計を作成していきましょう。
【累計の作成手順】
年度累計のメジャーを作成します
作成した年度累計を線グラフで表示すると次のようになります。
作成した年度累計を12月末でデータがリセットされています。
多くの会社は4月が年度開始日ではないでしょうか?
年度末を変更する手順を紹介します。
【累計の年度開始日を4月に変更】
年度末を3月31日に変更します
以上で累計の項目作成ができました。
グラフを作成するときに一つ注意点があります。
軸の項目は、クィックメジャーを作成した「日付」と同じ項目を使用してください。
違う項目を使うとグラフに累計が表示されません。
クィックメジャーで累計を作成するのが筆者としておすすめです。
ですが、自分の要望と合わないときがあると思います。
クィックメジャーで使っている関数は、累計専用の関数なので細かい指定はできません。
そのようなときのために、手動でDAXを作成する方法を紹介します。
【累計の関数を手動で作成する方法】
項目名 = CALCULATE(SUM(集計項目),FILTER(ALLSELECTED(テーブル名), 日付項目 <= MAX(日付項目)))
サンプル
累計金額 = CALCULATE(SUM('テーブル1'[金額]),FILTER(ALLSELECTED('テーブル1'), 'テーブル1'[年月] <= MAX('テーブル1'[年月]))
この累計を理解するにはDAXの考え方を知っている必要があります。
この式だけを見て理解するのは難しいでしょう。
私もいろいろ調べて式は他の方が提供されている式を見てわかったのですが、どうしてそのような結果になるのか理解できなくて3日間悩みました。
次に同じ内容をクエリの形に書き直してみました。
これで処理ステップを説明します。
累計 = VAR __currentDate = MAX(日付項目) VAR __workTable = FILTER(ALLSELECTED(テーブル名),日付項目 <= __currentDate ) RETURN CALCULATE(SUM('テーブル1'[金額]),__workTable)
1.__currentDate = MAX(日付項目)
この式では計算対象とするレコードの日付を保存します
2行目の2019/5/1のレコードの累計データを計算するとします。
その場合2019/5/1が_currentDateに保存されます。
MAXと書いていますがMINでも同じです。
単純に「__currentDate=日付項目」とするとテーブルデータが保存されてしまいます。
値のパラメータとして変換するために、MAXを利用しています。
2.__workTable = FILTER(ALLSELECTED(テーブル名),日付項目 <= __currentDate )
この式では集計対象のテーブルを取得しています。
累計なので、日付項目のデータが2019/5/1以下のレコードのテーブルを取るようにしています。
3.CALCULATE(SUM(‘テーブル1′[金額]),__workTable)
集計した結果を累計として返します
以上で完了です。ステップ1がポイントです。
最大値をとりたいのでなく、現在のレコードの値を取るためにしかたなくMAXを使っています。
累計はクィックメジャーからタイムインテリジェンスの関数を使って作成することができます。
複雑な計算をするときはDAX関数を使用して作成します。
Power BIの機能一覧の目次はPower BI記事のまとめから参照できます。
についてまとめてあります。
また「Power BIの教科書」の書籍では、Power BIを一から学べるようにまとめて書いています。
本からですと全体像がわかりやすいのと、学ぶ時間を大幅に節約できます。
効率的に勉強したい方はぜひこちらの本の紹介ページもご参照ください。