[Power BI] DAX 入門 (5) 累計、年度をまたいだ累計
Microsoft Japan Data Platform Tech Sales Team
土井
DAX 入門 第 5 回目では累計について説明していきます。
■年度累計、四半期累計、月度累計
DAX では非常に簡単に累計を求めることができます。まずあらかじめ用意されている累計関数として以下の関数があります。
TOTALYTD 関数 ・・・ 年度累計値を算出します
TOTALQTD 関数 ・・・ 四半期累計値を算出します
TOTALMTD 関数 ・・・ 月度累計値を算出します
では実際にサンプルデータで使い方を見ていきましょう。今回は 気象庁 で公開されている 台風のデータ を使います。
Web 上の情報を簡単に取り込むことができるのも Power BI の特徴です。今回はデータを取得するところは省略しますが、こちら や こちら を参照していただければ、
下記赤枠部分でどんなステップを適用しているかがお分かりいただけるかと思います。サンプルは こちら からダウンロードしてお試しください。
上記の サンプル をダウンロードいただくと、下記のように カレンダーテーブル と 台風の発生数テーブル があることが確認できます。カレンダーテーブルの作成方法は 以前の記事 を参照ください。
では早速累計メジャーを作成していきます。”モデリング” メニューから “新しいメジャー” をクリックします。
ここでは以下の二つのメジャーを作成します。(今回のサンプルデータは月次データのため、月度累計 TOTALMTD は省略します)
年度累計 = TOTALYTD([発生数計],'カレンダー'[日付])
四半期累計 = TOTALQTD([発生数計],'カレンダー'[日付])
では、作成したメジャーが正しく計算されているか、レポートで確認してみましょう。レポート画面に移動し、下図のようにフィールドから “年月” 、”年度累計” を選択し、視覚化メニューから ”縦棒グラフ” を選択します。
同様に、四半期累計のグラフも作成します。
年度累計は 1 月 ~ 12 月の累計を、四半期累計は 1 月 ~ 3 月、4 月 ~ 6 月、・・・、という形で正しく累計を計算できていることがわかります。
なお、TOTALYTD 関数 のパラメータとして、<year_end_date> に任意の値を入力することで、会計年度での計算をすることもできます。
たとえば、日本のお客様で一般的な 4 月はじまりを想定すると、以下のような式となります。
会計年度累計 = TOTALYTD([発生数計],'カレンダー'[日付],”3/31”)
■年度をまたいだ累計
1 年間の累計でなく、複数年にまたがった累計を算出したい、というケースもあるかと思います。
この場合、いくつかやり方はありますが、今回は CALCULATE 関数 、 FILTER 関数 、ALLSELECTED 関数 を使って計算します。
CALCULATE 関数 ・・・ 後続のパラメータによって指定されたフィルター条件によって計算結果を返します。
FILTER 関数 ・・・ あるテーブルを後続の条件でフィルタリングします。戻り値はテーブルです。
ALLSELECTED 関数 ・・・ スライサーや、フィルタで指定された条件を反映させた状態でテーブルを返します。
これらを使って、累計は以下のように定義できます。
累計 = CALCULATE([発生数計],FILTER(ALLSELECTED('カレンダー'),[日付]<=MAX([日付])))
さきほどと同じように、レポートで確認してみましょう
2015 年初から 2016 年末までの累計を計算できています。スライサーで期間を指定すれば動的に計算されます。
■まとめ
累計は標準の DAX 関数を使うことで簡単に定義ができます。また、特殊な要件があった場合でも少し工夫をすれば計算が可能なケースが多いです。
サンプルの完成形は こちら からダウンロードいただけます。
関連記事