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

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

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

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

https://qiita.com/3book_777/items/38aab8158943949a4758

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

https://qiita.com/3book_777/items/31547321bf37569f39e2

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

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


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

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

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

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

どーん。
![Qiita1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221359/b552c9d6-1732-8511-e343-f21dddd1b17f.png)

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

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

##20191005 DAX Boot Camp #0

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

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

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

![Qiita2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221359/3104155c-dd68-33a5-a8ad-dfbb6681d136.jpeg)

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




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

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

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

だがしかし！！！

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

##【もう一度】去年実績がなくて今年実績がある顧客数をカウントしたい！
suiさんのプレゼンを聞いてうっすら何かが繋がった気がして、再チャレンジ。

https://qiita.com/3book_777/items/31547321bf37569f39e2

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

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

![Qiita3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221359/29f3c827-d609-6003-071e-53cb697e0821.png)


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

これをBootCamp以前のわたしならこう書きました。
![Qiita15.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221359/69312c4e-3ba9-4293-b433-8c2f2434f6c4.png)





怒られますね。

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

```
成績不振メンバー =
CALCULATE (
    DISTINCTCOUNT ( 'メンバー'[名前] ),
    FILTER ( VALUES ( 'メンバー'[名前] ), '指名履歴'[2018客数] >= 20 && '指名履歴'[2019客数] < 10 )
)
```
**「FILTER ( VALUES ( 'メンバー'[名前] )」**の部分です。
そして、こんなことはちゃんと[公式ページ](https://support.office.com/ja-jp/article/dax-%E3%81%AE%E6%95%B0%E5%BC%8F%E5%86%85%E3%81%A7%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%BC%E5%87%A6%E7%90%86-bed4a8ce-9207-483d-b178-8851580061cc)にも書いてありました。

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

そして結果。
![Qiita6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221359/b9fc4d7e-eb01-2714-7737-e96aeee8adcf.png)

できました！！！！

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

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

![Qiita2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221359/3104155c-dd68-33a5-a8ad-dfbb6681d136.jpeg)

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