Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Power BI 初心者さんのDAX・メジャー「モヤモヤ」晴れるまで

3,164 views

Published on

2018/12/22 Power BI 勉強会@東京 #11 で登壇した際の資料です。

Published in: Data & Analytics
  • Be the first to comment

Power BI 初心者さんのDAX・メジャー「モヤモヤ」晴れるまで

  1. 1. 2018.12.22 Power BI 勉強会@東京 #11 初心者さんの DAX・メジャー 「モヤモヤ」が晴れるまで Power BI 勉強会@東京 #11 2018.12.22 小室陽子
  2. 2. 2018.12.22 Power BI 勉強会@東京 #11 2 自己紹介 小室 陽子(こむろ ようこ) トヨタコネクティッド株式会社 ・管理会計レポーティング→PowerBI ・働き方改革(脱Excel帳票・紙文化)→Sharepoint+PowerApps+Flow 最近になって、Office365がすごく便利に進化していることに気づき、新しい機能をおためし中・・・
  3. 3. 2018.12.22 Power BI 勉強会@東京 #11 3 Power BIでのレポート作成の流れ ソース あちこち いろいろ Power Query 取得と変換 モデリング リレーション 設定 列やテーブ ルの補完 式 式 メジャー の定義 レポート ビジュアル の配置
  4. 4. 2018.12.22 Power BI 勉強会@東京 #11 4 Power BIでのレポート作成の流れ ソース あちこち いろいろ Power Query 取得と変換 モデリング リレーション 設定 列やテーブ ルの補完 式 式 メジャー の定義 レポート ビジュアル の配置 DAX DAX
  5. 5. 2018.12.22 Power BI 勉強会@東京 #11 5 本日のお話 Power BIでのレポート作成に必須の「メジャー」、 どう作ったらいいんだろう? 何もかも分からなさすぎて、リファレンスを読んでも書いてあることが理解できない、そん な状態から、おおよそのセオリーが理解できて、分からないことを自分で調べて解決でき るようになるまでに気づいたことをお話したいと思います。 「メジャー」を理解すると、レポート作成がぐっと楽になると思うので、そのポイントと思う点お話します。
  6. 6. 2018.12.22 Power BI 勉強会@東京 #11 6 よくあるモヤモヤ • 計算列とメジャーの違いがわからない • クイックメジャーをつかったら何となくできたけど、しくみがわからない • 自分でメジャーを書こうとしたけれど、エラーが出て書けない • メジャーをつくってみたけど、レポート画面においてみたら挙動不審
  7. 7. 2018.12.22 Power BI 勉強会@東京 #11 7 解決ポイント 1.メジャーが「集計式」であることを理解する 2.メジャーと「フィルタ」の関係を理解する 3.「リレーションシップ」の挙動を理解する +空白(BLANK)を理解する
  8. 8. 2018.12.22 Power BI 勉強会@東京 #11 1.メジャーが「集計値式」 であることを理解する
  9. 9. 2018.12.22 Power BI 勉強会@東京 #11 9 メジャーとは データモデル 式 式 メジャー データが存在し、ストレージされる 式の定義があるだけ ビジュアル 表示されるときに、 メジャーの式にしたがって 値が計算される
  10. 10. 2018.12.22 Power BI 勉強会@東京 #11 10 RPGゲームに例えると データモデル メジャー ビジュアル 戦士 魔法使い 癒し手 大剣 鎧 杖 薬 … 攻撃力 =関数(体力,スキル,レベル…) 宝箱空ける成否 =関数(対象宝箱難易度,幸運度,乱数…) 戦闘場面 攻撃のターン 宝箱を開ける イベント
  11. 11. 2018.12.22 Power BI 勉強会@東京 #11 11 料理に例えると データモデル ビジュアル じゃがいも タマネギ にんじん 鶏肉 カレールー ホワイトソース 塩 胡椒 … カレーのレシピ ホワイトシチューのレシピ カレー 福神漬けぞえ ホワイトシチュー とニンジンサラダ ニンジンサラダのレシピ メジャー
  12. 12. 2018.12.22 Power BI 勉強会@東京 #11 12 メジャー メジャー メジャー 例 予定個数SUM = SUM('予定'[個数]) 実績個数SUM = SUM('実績'[個数]) 個数予実差 = [実績個数SUM]-[予定個数SUM] 予定テーブル個数行 実績テーブル個数行 メジャー メジャー 列の参照 ‘テーブル名’[列名] メジャーの参照 [メジャー名] ‘予定’ ‘実績’
  13. 13. 2018.12.22 Power BI 勉強会@東京 #11 13 メジャーはテーブルを移動できる
  14. 14. 2018.12.22 Power BI 勉強会@東京 #11 14 まとめ ① メジャーとは「集計式」 ビジュアルで表示されるときに計算される ② メジャーはテーブルに紐づかない(外にある)
  15. 15. 2018.12.22 Power BI 勉強会@東京 #11 2.メジャーと「フィルタ」 の関係を理解する
  16. 16. 2018.12.22 Power BI 勉強会@東京 #11 16 こんな風に思ってませんか? ビジュアル 合計「900」が、マス目で 分割されて表示されている
  17. 17. 2018.12.22 Power BI 勉強会@東京 #11 17 なぜって… Excelで、「合計値」は「マス目の合計」であることに慣れている
  18. 18. 2018.12.22 Power BI 勉強会@東京 #11 18 こんな風に思ってませんか? ビジュアル 合計「900」が、マス目で 分割されて表示されている
  19. 19. 2018.12.22 Power BI 勉強会@東京 #11 19 こんな風に思ってませんか? ビジュアル 合計「900」が、マス目で 分割されて表示されている Power BIでは違います!
  20. 20. 2018.12.22 Power BI 勉強会@東京 #11 20 Power BIでは「総計」から出発する ‘販売予定‘ テーブル SUM 販売予定個数SUM = SUM('販売予定'[個数]) メジャー 何を? ‘販売予定個数’ テーブルの [個数]列 合計する
  21. 21. 2018.12.22 Power BI 勉強会@東京 #11 21 [基本]ビジュアルのマス目ごとのフィルタ条件で計算 全行を出発点に、 商品=商品A&地域=名古屋 でフィルタを掛けて残った行を計算 商品Aでフィルタ 掛けた値を表示 する仕様 名古屋でフィルタ 掛けた値を表示する仕様 SUM‘販売予定‘ テーブル SUM‘販売予定‘ テーブル
  22. 22. 2018.12.22 Power BI 勉強会@東京 #11 22 フィルタを調整して総計を出す メジャー 何を? [販売予定個数SUM] というメジャー 販売予定個数TOTAL = CALCULATE([販売予定個数SUM],ALL('販売予定')) フィルタを修正して 計算する フィルタの修正内容は? ‘販売予定’テーブルを すべての行採用 SUM‘販売予定‘ テーブル SUM‘販売予定‘ テーブル
  23. 23. 2018.12.22 Power BI 勉強会@東京 #11 23 総計を利用して割合%を出す メジャー 販売予定個数占有率% = [販売予定個数SUM]/[販売予定個数TOTAL] 販売予定個数占有率% 販売予定個数SUM 販売予定個数TOTAL
  24. 24. 2018.12.22 Power BI 勉強会@東京 #11 24 さらにフィルターを掛けてカテゴリ合計を出す メジャー 販売予定個数地域別 = CALCULATE ( [販売予定個数SUM], FILTER ( ALL ( '販売予定' ), '販売予定'[地域] = SELECTEDVALUE ( '販売予定'[地域] ) ) ) ‘販売予定’テーブルのすべての行を採用した状態を元に ビジュアルで選ばれている地域の値に等しい行に絞る 計算対象 フィルタを修正して計算する フィルタの修正内容 ※ALLのかわりにALLSELECTEDを使う場合もありますが、 ここでは分かりやすくするため、ALLに統一しています ビジュアル各行で選ばれている地域 に等しい行の合計 SUM‘販売予定‘ テーブル
  25. 25. 2018.12.22 Power BI 勉強会@東京 #11 25 日付フィルタを調整して累計や過去数値を出す 月初日~ ビジュアル各行で選ばれている日付 までの合計 ビジュアル各行で選ばれている日付 の1日前の値 月度累計SUM SUM 昨日
  26. 26. 2018.12.22 Power BI 勉強会@東京 #11 26 まとめ ① メジャーは「総計」を元に、ビジュアルの各マスごとの 条件でフィルタされて計算される ② DAX式でフィルタの掛かり方を修正することができる。 これにより、様々な統計値を出すことができる 統計値を出すには「フィルタ」の使いこなしがとっても大事 まずは考えをしっかり持っておくと、適する関数を探しやすい
  27. 27. 2018.12.22 Power BI 勉強会@東京 #11 3.「リレーションシップ」 の挙動を理解する
  28. 28. 2018.12.22 Power BI 勉強会@東京 #11 28 いきなりですが、ダメな例 予定と実績を結んでみた ※日付列・担当者列などが隠れていると思って見てください ‘予定’ ‘実績’
  29. 29. 2018.12.22 Power BI 勉強会@東京 #11 29 いきなりですが、ダメな例 多対多であるという注意書き
  30. 30. 2018.12.22 Power BI 勉強会@東京 #11 30 こんな困った症状が出ます Dが出ない? Cが出ない? 合計がおかしい? 合計がおかしい?
  31. 31. 2018.12.22 Power BI 勉強会@東京 #11 31 原因 実績の商品列を 使っている 予定の商品列を 使っている
  32. 32. 2018.12.22 Power BI 勉強会@東京 #11 32 原因 実績の商品列を 使っている 予定の商品列を 使っている ‘予定’ ABCしかない ‘実績’ SUM ‘予定’ ‘実績’ 予定にある値 しか出ない 実績にある値 しか出ない SUM ABDしかない
  33. 33. 2018.12.22 Power BI 勉強会@東京 #11 33 原因 合計はフィルタが掛からないので 各全行を計算 実績の商品列を 使っている 予定の商品列を 使っている 予定にある値 しか出ない 実績にある値 しか出ない ‘実績’ SUM ‘予定’ SUM
  34. 34. 2018.12.22 Power BI 勉強会@東京 #11 34 「マスタ」を用意する ‘商品マスタ’ ★一意の値(重複しない) ★全ての値を含む リレーションシップ を掛ける(1対多) トランザクション 発生した出来事の記録 ディメンション テーブル 属性が格納される ファクトテーブル 数値(メジャー)が 格納される
  35. 35. 2018.12.22 Power BI 勉強会@東京 #11 35 ダメな例2 マスタを用意してリレーション掛けたのに、 直らないどころかもっと変になっちゃった?
  36. 36. 2018.12.22 Power BI 勉強会@東京 #11 36 そりゃそうですよ… 予定の商品列を 使っている リレーション が無い! フィルタ されない
  37. 37. 2018.12.22 Power BI 勉強会@東京 #11 37 解決策 「親」の項目を 使う! フィルタは 「親」から「子」 へ伝播する 正しくなった!
  38. 38. 2018.12.22 Power BI 勉強会@東京 #11 38 「子」の項目は非表示に 非表示 非表示 これを使う メジャーも整理する とこうなる
  39. 39. 2018.12.22 Power BI 勉強会@東京 #11 39 まとめ ① ディメンジョン(分類)は、一意になる「マスタ」を用意する ② リレーションシップはマスタからトランザクション(出来事の 記録)へ、「1対多」でタコ足状につなぐ ③ フィルターは、リレーションシップの 「親(1)→子(多)」の一方向に伝播する ④ レポートビジュアルには、「親」の項目を使う
  40. 40. 2018.12.22 Power BI 勉強会@東京 #11 40 リファレンス DAXガイド https://dax.guide/ Qiita  メジャー とはなんだろうと考える https://qiita.com/PowerBIxyz/items/94e171e05ef7beb83897  AVERAGEX 関数 (DAX) で 平均を求める https://qiita.com/PowerBIxyz/items/b1fa63e3502e5acaa1f6  メジャーの特性 や 見出しの階層に合わせて集計する には https://qiita.com/PowerBIxyz/items/17d5d531ea074a43867b  予算実績を集計比較する データモデル パターン https://qiita.com/PowerBIxyz/items/bb9b6dcc44721d77aad8 BIシステム構築実践入門(青い本) https://www.amazon.co.jp/dp/4798109312
  41. 41. 2018.12.22 Power BI 勉強会@東京 #11 おわり Good Luck!

×