Mukku John Blog

取り組んでいること を つらつら と

Power BIの軸や凡例の並び順を調べてみた-2

Power BI Desktop

過去記事*1にて、コメントを頂き、
並び順が指定できそうです。
この記事は、並び順を指定して、実際に確認できるまでの記録です。

ちなみに、コメントで誘導されたBlogはこちらです。コメントくれた方もこちらの方?
blogs.msdn.microsoft.com

誘導されたBlogにて記載されていることを試してから、
過去記事のデータで試してみたいと思います。

カレンダーテーブル

必要ですよね。以前、開発していた業務システムでも当然作っていました。
こんなんだったかな。

年月 年月日 曜日番号 曜日 営業日フラグ
2016 201610 10 30 20161030 1 1
2016 201610 10 31 20161031 2 0
2016 201611 11 1 20161101 3 0
2016 201611 11 2 20161102 4 0
2016 201611 11 3 20161103 5 0
2016 201611 11 4 20161104 6 0
2016 201611 11 5 20161105 7 1

あとは、祝日テーブルも作っていました。会社の記念日とかありますしね。
手メンテでした。

年月 年月日 事由
2016 201611 11 3 20161103 文化の日
2016 201611 11 14 20161114 埼玉県民の日

何はともあれ、誘導されたBlogの記事を試していきます。


まずは、モデリングタブで、新しいテーブルをポチっとします。
f:id:MukkuJohn:20161025211459p:plain

数式ペインにこれを記載して、Enter!

カレンダー = CALENDAR("2015/1/1", TODAY())

おぉ、日付が列挙されました。
f:id:MukkuJohn:20161025211747p:plain


列をバシバシ追加していきます。しょうもないことなのですが、
DAX式の=の後ろが、全角スペースだとエラーになります。

#コピペせず、キー打ってたら、うっかり全角のまま
#列追加した時点で、= が表示されていて、「月」を全角で打って、横に移動してみたいな=  FORMAT([Date],"M月")

f:id:MukkuJohn:20161025212623p:plain

全角スペースから半角スペースに直せばよいです。
f:id:MukkuJohn:20161025212840p:plain


ついに待ちにまった並び替えの指定をやってみます。
「月」列を選んだ状態で、「列で並び替え」を押して、「月番号」を選びます。
f:id:MukkuJohn:20161025214056p:plain

・・・うん、まぁそうですよね。
・・・これだけだと分からないので、何かしらデータを追加します。

追加したデータはこちらです。
左側の表は、商品マスタチックに、右側の表は、売上明細チックにしてます。
f:id:MukkuJohn:20161025215616p:plain

データを追加して、リレーションシップを定義します
f:id:MukkuJohn:20161025215805p:plain


x軸に商品名、y軸に数量、凡例に並び替えをした月をマッピングします。
f:id:MukkuJohn:20161025215920p:plain

おぉ
「月」列はテキスト型なのに、1月→9月→10月の順です。
f:id:MukkuJohn:20161025220047p:plain


追加したデータの商品マスタチック商品名を、商品IDで並び替えたいと思います。
並び替え前:カタカナのゴから並んでいます。
f:id:MukkuJohn:20161025220616p:plain

並び替え中
f:id:MukkuJohn:20161025220701p:plain

並び替え後:りんごが先にきています。
f:id:MukkuJohn:20161025220818p:plain

凡例でも軸でも並び替えができました。

過去記事のデータで試してみる

過去記事では、こちらのデータを使いました。

名前 科目 点数
数学 80
国語 60
社会 50
英語 90
理科 70
数学 70
国語 80
社会 60
英語 90
理科 40
数学 10
国語 30
社会 40
英語 20
理科 100

とりあえず取り込みます。
f:id:MukkuJohn:20161025221531p:plain

科目番号列を追加します。
f:id:MukkuJohn:20161025221742p:plain

科目列を、科目番号列で並び替えてみます。
f:id:MukkuJohn:20161025221843p:plain
!?!!?

この列によって既に直感的にまたは間接的に並び替えられている列を
基準としてこの列を並び替えることができません。

日本語を整理すると、こうなりますかね。
この列:科目列
この列によって既に直感的にまたは間接的に並び替えられている列:科目番号列

データソースにある列から、DAX式を使って追加した列で並び替えはできないんでしょうか?

というわけで、科目番号列もデータソース側に用意して、取り込みます。
f:id:MukkuJohn:20161025223122p:plain

並び替えできました。エイ→コク→スウ→リ→シャです。
f:id:MukkuJohn:20161025223302p:plain

軸に科目を、値に点数を、凡例に名前をマッピングします。
f:id:MukkuJohn:20161025223504p:plain
ちゃんと、エイ→コク→スウ→リ→シャで並んでいます。


名称列から番号列を作って、作った番号列で名称列を並び替えるがNGっぽいので
番号列から名称列を作る順番で試してみます。

科目番号列をGroupByした新しいテーブルを作成します。
f:id:MukkuJohn:20161025225226p:plain

科目番号列から、科目列を作ります。
f:id:MukkuJohn:20161025225252p:plain

科目列を、科目番号列で並び替えします。
f:id:MukkuJohn:20161025225314p:plain

リレーションシップを定義します。
f:id:MukkuJohn:20161025225515p:plain

軸に科目を、値に点数を、凡例に名前をマッピングします。
f:id:MukkuJohn:20161025225558p:plain
ちゃんと、エイ→コク→スウ→リ→シャで並んでいます。


よかった!
並び替えが指定できるようになりました!!



頂いたコメントで、MSのBlogに誘導されたので…
↓Tech Summit参加します。しかもブースじゃない方で!!
microsoft-events.jp
de:codeもForesightもブース出展側だったから、楽しめなかったんだよなぁ。
デモがぁデモがぁ
今回は、気楽に楽しめそうです。