PowerBI のスライサーで使う曜日を並び替える

2020/04/18

経緯

龍が如くオンラインのドンパチデータを PowerBI にかけて遊んでいるのですが、その際に曜日を切り口に可視化しようとしてスライサーを入れたところ、並び順が残念な感じになりました…

スライサーで扱うデータの並び順を変更したい時の備忘録になります

サンプルデータ作成

  • [データ] → [モデリング] → [新しいテーブル] をクリック
  • 2019/05/01 ~ 2019/05/31 までのデータが入った、テーブル「ほげ」を作成
ほげ = CALENDAR("2019/05/01", "2019/05/31")
  • [新しい列] をクリック
  • 2 で作成した列の日時データに対する「曜日」列を作成する
曜日 = SWITCH(WEEKDAY([Date],1), 1, "日", 2, "月", 3, "火", 4, "水", 5, "木", 6, "金", 7, "土")
  • [レポート] → [スライサー] をクリックし、フィールドに「曜日」をセットする

    ※ここで並び順が思ったとおりになっていないのが確認できる

対応方法

  • 並び替え用のテーブルを作成する
    サンプルデータ作成の時と同じく、[データ] → [モデリング] → [新しいテーブル] をクリックして、曜日マスタテーブルを作成
曜日マスタ = DATATABLE("OrderNum", INTEGER, "曜日", STRING, {{1, "日"},{2, "月"},{3, "火"},{4, "水"},{5, "木"},{6, "金"},{7, "土"}})
  • 曜日マスタの「曜日」列を選択し、[列の並び替え] → 「OrderNum」と選択する

  • 曜日マスタの「OrderNum」列の右にある [▼] ボタンをクリックし、[昇順で並べ替え] を選択する

  • [リレーションシップ] で、「ほげテーブル」の「曜日」列を、「曜日マスタ」にドラッグアンドドロップする

  • サンプルデータ作成で作った、[レポート] にあるスライサーのフィールドにセットした「曜日」を「曜日マスタ」の「曜日」に置き換えると並び替えられる

考察

曜日だけではなく、何か並び順を固定にしたいデータがあれば、同様にマスタを作ってリレーションを張ることで対応できそうです

やべー めっちゃ活躍している!(仕事しろ)