DAX Boot Camp#0に参加してちょっぴりだけ前に進めたような気がしてきた件


参加後、熱い気持ちが冷めないうちに書きます!

DAXは書けるようになったものの・・・

Power BI歴2年ちょっとのわたしが、やっとDAXとはなんぞやということがちょっぴり分かってきて、書けるようになったよってなことを先日Qiita記事に書いたわけなのですが。

書けるようになったよって言っても、まーだいたいはCALICULATE関数でSUMしたりCOUNTしたり。
しばらくはそれでキャッキャウフフしてたものの、なんか次に進める感がない。

この記事で敗北したあたりから、なんかやさぐれておりました。
方法はどうやろうが、目的の数字がでればいいわけだし。とかなんとか。

【連戦敗北】去年実績がなくて今年実績がある顧客数をカウントしたい!

2018Rev=CALCULATE(SUM(実績[売上]),Calender[Year]=2018)

2019Rev=CALCULATE(SUM(実績[売上]),Calender[Year]=2019)

↑上記メジャーで2018年と2019年の実績を出します。このメジャーを使って、2018年に実績がなくて、2019年に実績がある施設数をカウントさせようとして、↓みたいなメジャーを書きました。

顧客数=CALCULATE(DISTINCTCOUNT(顧客マスタ[顧客ID]),[2018Rev]<=0,[2019Rev]>0)

どーん。

怒られる。そしてなんで怒られてるかわからない・・・・

結局、メジャーでは実現できず、裏(Power Query)でピボットして、条件列を追加してIF文書いて・・・・完全に敗北しました・・・・。

20191005 DAX Boot Camp #0

何が分かっていて、何が分からないのかも分からず、前に進める気がしないモヤモヤの中、去る10月5日のDAX Boot Camp #0に参加しました。

まずは神からのDax Studioのご紹介があり、早速インストールしました。

そして、次のsuiさんのプレゼンを聞いたわたし。

「EXCELは計算式、DAXは列単位で考える」!!!!!!

これまでのわたしのメジャーの理解は、「メジャーは計算式ではなく、集計式」
なので、(恥ずかしながら・・・)ビジュアルに出力した時に初めて値が決まると思っていました。
例えば、先述の

2018Rev=CALCULATE(SUM(実績[売上]),Calender[Year]=2018)

このメジャーを、顧客名と一緒にテーブルに入れてやれば、顧客ごとの2018年の実績が返ってくるし、営業担当と一緒にテーブルに入れてやれば、営業担当ごとの2018年の実績が返ってくる。

だがしかし!!!

メジャーの中でどの粒度で集計するかを指定してあげるんです!!

【もう一度】去年実績がなくて今年実績がある顧客数をカウントしたい!

suiさんのプレゼンを聞いてうっすら何かが繋がった気がして、再チャレンジ。

こちらの記事で使用したデータを使って、
2018年に20回以上指名があって、2019年10回以下しか指名のないメンバーをカウントしたいと思います。

2018年と2019年の指名数を集計するメジャーを書いて、テーブルにメンバー名、2018指名数、2019指名数を配置するとこうなります。

2018年に20回以上指名があって、2019年10回以下しか指名のないメンバーは
アッピー・コーディー・フーディー・ブレイズの4人ですね。

これをBootCamp以前のわたしならこう書きました。

怒られますね。

でも、BootCamp後のわたしには、何を怒られているか何となく分かります。
なので、何ベースでカウントすればいいのかを書いてあげます。

成績不振メンバー =
CALCULATE (
    DISTINCTCOUNT ( 'メンバー'[名前] ),
    FILTER ( VALUES ( 'メンバー'[名前] ), '指名履歴'[2018客数] >= 20 && '指名履歴'[2019客数] < 10 )
)

「FILTER ( VALUES ( 'メンバー'[名前] )」の部分です。
そして、こんなことはちゃんと公式ページにも書いてありました。

フィルター式には 2 つの部分があります。最初の部分は、フィルターが適用されるテーブルを指定します。 2 番目の部分は、フィルター条件として使う式を定義します。

そして結果。

できました!!!!

前に進む前の停滞=高く飛ぶための踏み込み

恐らく、モヤモヤ期間がなければBootCampに参加しても得るものはなかったかもしれません。
思う存分モヤモヤして、自分の中の課題を見つめて、モヤモヤを膨らまられるだけ膨らませた後に、こんな瞬間がくるのかなと思いました。

suiさんのプレゼンの資料はこちら。
「DAX Boot Camp-DAXに関する知識の共有」
https://www.slideshare.net/EikiSui/dax-boot-camp-0-179333102