当サイト主催のセミナーの受講後にいただいた質問とその回答をブログ記事としてまとめるシリーズの第三弾です。
なお、当サイトのセミナーにご参加いただいた方からは、特に期限などなく、セミナー内容に関するご質問やPowerBIに関する疑問や困りごとに関するご相談などを無料で承っていますので、ご受講いただいた方は遠慮なくご質問ください。
受講者からの質問内容
棒グラフで年月を軸にしてビジュアルを表示させると、並びが1月~12月の表示となってしまう。
それを4月~3月(4月~5月~6月……1月~2月~3月)の並びで表示させたいが可能でしょうか?
グラフを自社の決算月に合わせて表示させたいというニーズほとんどの組織で出てきます。
例えば、自分の所属する組織が、会計年度で4月はじまりだ仮定すると、グラフでは、当然ながら4月始まり3月終わりで並び替えて表示させる必要が出てきますね。
でも、Power BIで何もせずに月の名前で並び替えると、1月スタートになってしまいます。
というわけで、今回は年月以外のマスタ項目の並べ替えにも応用できる、自分の希望の並び替え順を実現するTipsをご紹介いたします。
大まかな手順としては、
1.自分が並び替えたい順番通りのデータを用意する
2.並び替えたいデータと並び替え順が含まれるデータを紐づける
3.並び替え順を指定する
といったイメージです。
1.自分が並び替えたい順番通りのデータを用意する
まずは、以下のようなテーブルをPowerBIに取り込みます。
なお、多くの場合、日付を使って柔軟に集計や並び替え順を変更する場合、すべての日付を含んだカレンダーテーブル(もしくは日付テーブルなど)と呼ばれるテーブルを用意して、必要な名称や並び替え順を用意することが多いですが、今回は説明を簡単にするために、そのあたりを省略して説明します。
「トランザクションテーブル(月ごとの売上金額の表)」は売上の日付と金額が含まれたテーブルで、そこに月を軸として日本語表示させるために、列【表示月1】を用意しています。
「並び替えマスタ(月の表示順を入力した表)」は、並び替え順を含んだテーブルです。表示月に対して、並び替えたい順番である列【並び順】を用意しています。
なお、表示月1は、元データに用意せずPowerBIに取り込んだ後に日付をもとにDAX関数を使って作成する方法もありますが、今回は取り込む前のデータに用意しています。
また、表示月1,2を半角数字で作成してPowerBIに取り込むと、PowerBIDesktopが気を利かせて、日付型に変換して取り込んでくれてしまうため、今回は表示月を全角数字で作成してあります。
(日付型に変換されても、手動でデータ型を変更すればよいのですが、サンプルデータの取り込みの手間を省くために、全角にしています)
上記データを含むサンプルファイルを用意していますので、必要な方は以下からダウンロードしてください。
Excelファイルサンプル:PBI用データ_日付並び.xlsx
2.並び替えたいデータと並び替え順が含まれるデータを紐づける
Excelファイルを取り込んだあとのリレーションシップはこんな感じになっているかと思います。
最新版の表示月1と表示月2のリレーションシップが自動で出来ています。
リレーションシップが作成されない場合は、手動でリレーションシップを作成します。
リレーションシップを作成する場合は、以下のイメージです。
軸に【日付】、値に【売上】を設定します。
そして、軸に【日付】を設定すると、年・四半期・月・日の階層がセットされるので、ここではいったん月だけ残しておきます。
すると、以下のようなビジュアルができあがります。
月表示が英語表記で、しかも1月からの順番に並んでいますね。
1月は、2019年1月のデータですので、これは正しい並び順とは言えません。
今度は、軸に【表示月1】、値に【売上】を設定します。
すると、今度は売上の高い順に並び替えられて表示されてしまいました。
【表示月1】で並び替えたい場合は、ビジュアルの右上の「・・・」アイコンをクリックして、並び替え条件で【表示月1】を選択し、昇順で並び替えます。
すると、以下のように【表示月1】の順番になり、月名が日本語として表現されていますが、並び替え順はやはり1月からのままです。
さて、ここからが今回の記事のポイントです。
今度は、「並び替えマスタ(月の表示順を入力した表)」を使って並び順を指定してみます。
感覚的には、リレーションシップが張られた状態で、軸を【表示月2】に設定すれば、うまく並び替えられるのではないかと考えるところですが、軸を「並び替えマスタ」の【表示月2】にしただけでは、要望通りの並び順にはなりません。
上記のように並び替え順として指定できるのは、あくまで軸に設定した【表示月2】のみです。
ビジュアルの軸や値に設定していない項目で並び替えを行う場合には、別の場所で、並び替え順を指定してあげる必要があります。
まず、レポートモードからデータモード(PowerBIDesktopの左側の表のアイコン)を選択して、並び替えマスタのテーブルを表示させて、列【表示月2】を選択します。
この状態で、リボンでメニューを「モデリング」に変更し、メニュー内の「列で並び替え」を選択すると、【表示月2】と【並び順】を選択できます。
【表示月2】を選択した状態で、並び替えの基準となる項目を【並び順】とすることで、軸に【表示月2】を選択しても、その並び替えの順番の基準が【並び順】となっているため、希望通りの順番に並び替えることが可能となります。
04月~順に並び替えることができました。
PowerBIDesktopのサンプルファイルもダウンロードできますので、必要な方は以下よりダウンロードしてみてください。
まとめ
いかがでしたでしょうか?
今回のポイントは、ビジュアルの設定に使っていない項目を並び順として使う場合には、データモード側でデータ項目に「列で並び替え」を設定してあげるということです。
PowerBIでは、ビジュアルで設定できそうでできなくて、データ側で設定してあげなければいけないことがいくつかあったりますので注意しましょう。(例:カンマを表示させるとか、%表示にするとか)
今回は月の並び順で並び替え順の設定機能を利用しましたが、
・日付以外にも社員を任意の順番で並び替えたい
・商品を商品名称以外の順で並び替えたい
・並び替えのために名称に01,02という番号を頭に着けていたのを省略したい
といったときにも使える設定ですので、ぜひお試しください。
弊社のセミナーを受講済みの方は、このような細かな部分の質問でも可能な限りご質問に回答していますので、設定できそうでできないなようなことがあれば、遠慮なくご質問ください。
たまたまこの記事を見られた方PowerBIに関して、ちょっとした質問先が欲しいんだよねーという方がいらっしゃれば、ぜひ弊社のセミナーの受講をご検討ください。
※受講後に、セミナー内容に直接関係のない内容に関する質問をお受けするサービスは、今後受講後の期限を設けたり、有料となる可能性がございます。