5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Power BI】同じ折れ線グラフ上で前年度比較をする

Posted at

集計じゃなく、前年度比較・前月比較を出したいんだ

折れ線グラフで前年比較したいときってありますよね。
去年の傾向とどう違うのかしら?ていうのを、重ねて表示したい。
だってせっかくPowerBI使っているんだもの。
グラフを二つ別々に出すなんてスマートじゃないですわ。

でも、調べてみても、なかなか出てこない。
メジャーを使って集計するやり方はわかったよ。
PreviousYearとか、DateADDとか、
僕がやりたいのは集計しないやり方なんだ。
10分おきの細かいデータを、カテゴリとか、センターとか、いろんなフィルタ使える状態で見たいんだ。

viewrating.png
▲弊社で独自分析しているコミュニティチャンネルの視聴率データ。今年度と前年度を重ねて出したい。何ならヒント機能で今年・去年でそれぞれ何の番組やっていたかマウスオーバーするだけでわかるようにしたい。

そうだ、列をつくろう

はい、スマートじゃないですね。
だってそれしか思いつかないんですもの。
例えば2020年8月7日23:50の視聴率データがあったら、2019年8月7日の視聴率もデータで持ってしまおうというもの。
名称未設定-1.png

でも、こうしておけば、重ねて表示することもできます。
今回つかうDAX関数はこちら

前年度時刻 = CONVERT(EDATE('テーブル名'[時間],-12)&" "&TIMEVALUE('テーブル名'[時間]),DATETIME)
前年度データ = LOOKUPVALUE('テーブル名'[対象データのカラム名],
                'テーブル名'[条件列のカラム名],'テーブル名'[条件列のカラム名],
                'テーブル名'[時間],'テーブル名'[前年度時刻],
              0)

あとは、グラフの「値」「第2の値」に今年度データと前年度データを読み込ませればOKです。

解説

前年度時刻の追加

前年度時刻 = CONVERT(EDATE('テーブル名'[時間],-12)&" "&TIMEVALUE('テーブル名'[時間]),DATETIME)

列を追加して強引にデータを持ってしまおうというのは先に述べた通り。
前年度時刻を算出するために、EDATE関数を使って時間を12か月分さかのぼります。
ただし、EDATE関数はDATE型を返すので、TIME部分が抜け落ちてしまいます。
そのため、TIMEVALUEで時間部分を抜き出して、&でつないでやっています。
このままだと文字列型になっているので、最後にCONVERTでDATETIME型に変換しています。
(じぶんは日時に重複あるデータを使ったので怒られましたが、日時がユニークな方はもしかしたらDATEADD関数とかでいけるかも?)
ちなみに、前月比較したいときは、EDATEの二つ目の引数の-12ってなっているところが月なので、-1に変えてやればいけます。

前年度データ列の追加

前年度データ = LOOKUPVALUE('テーブル名'[対象データのカラム名],
                'テーブル名'[条件列のカラム名],検索条件,
                'テーブル名'[時間],'テーブル名'[前年度時刻],
              0)

LOOKUPVALUE関数は、検索条件に一致するデータを探してきてくれます。
最初に対象データを指定、カンマで区切って、次に条件列のカラム名、検索条件を書きます(検索条件は複数OK)。
今回じぶんは時刻だけじゃなく、ほかのデータでも条件つけたのでこう書きましたけど、条件が時刻だけという方は2行目は不要です。
なお、時刻以外条件を変化させないときは(その行と同じ条件で時刻だけ前年度にしたデータを持ってきたい場合)、二行目を

'テーブル名'[条件列のカラム名],'テーブル名'[条件列のカラム名],

と変えてやればうまくいきます。

毎回言っていますが、ヒント機能は楽しいですね。
とりあえずマウスオーバーしたときに前年度と今年度のデータを出せるようにしてみましたが、本当はもう少し凝りたいところです。
それでは素敵なPowerBIライフを!

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?