SlideShare a Scribd company logo
シニア テクニカル アーキテクト
清水 優吾(しみず ゆうご) / 株式会社セカンドファクトリー
@yugoes1021
yugoes1021 Microsoft MVP
for Data Platform - Power BI
(2017.02 -)
Time intelligence
~ その概念と機能について ~
2021-12-04
Power BI 勉強会 #23
https://www.slideshare.net/yugoes1021
自己紹介:
清水 優吾 (Yugo Shimizu)
株式会社セカンドファクトリー
CTO, シニア テクニカル アーキテクト
UX を看板に掲げて、飲食業を営んでいる IT 企業に勤めている会社員で
Data Platform をメインに活動をしている Technical Architect
専門・興味:
Data Platform (Azure),
Power Platform (Power Apps, Power Automate, Power BI, Power Virtual Agents)
Qiita: https://qiita.com/yugoes1021
Power BI 勉強会: https://powerbi.connpass.com
Japan Power BI User Group: https://www.facebook.com/groups/JapanPBUG/
Japan Power Virtual Agents User Group: https://www.facebook.com/groups/JPVAUG/
Microsoft MVP
for Data Platform -
Power BI
(2017.02 - )
MVP
プロフィールページ
Twitter: @yugoes1021
Facebook: yugoes1021
LinkedIn: yugoes1021
2021/12/04 Power BI 勉強会 #23
Today’s Theme - 今日のテーマ
2021/12/04 Power BI 勉強会 #23 3
What is Time intelligence?
Today’s Theme - 今日のテーマ
2021/12/04 Power BI 勉強会 #23 4
Time intelligence (タイムインテリジェンス)
Power BI を使用している皆さんなら聞いたことがあると思われるこの言葉。
「タイムインテリジェンスってなんですか?説明してください」と言われたら、なかなか難しい
と思います。なぜ難しいのか?
「タイムインテリジェンス=タイムインテリジェンス関数」だと思われている方が多いからです。
そう思っても間違いではないのですが、それだけでは不十分です。
その前に「概念」を理解しておく必要があると、私は思っています。
今日はタイムインテリジェンスの「概念」と「機能」について、お話します。
※なお、今日お話することは私の個人的な見解を含みます🙇
タイムインテリジェンスという概念
2021/12/04 Power BI 勉強会 #23 5
タイムインテリジェンスという概念
2021/12/04 Power BI 勉強会 #23 6
まずは問題です。
以下の前提を踏まえて、以下の問いに答えてください。
前提:今日は2021年12月4日です。
問1:1年後の日付は?
問2:1か月前の日付は?
問3:明日の日付は?
現在
2021-12-04
明日
????-??-??
1年後
????-??-??
1か月前
????-??-??
タイムインテリジェンスという概念
2021/12/04 Power BI 勉強会 #23 7
まずは問題です。
以下の前提を踏まえて、以下の問いに答えてください。
前提:今日は2021年12月4日です。
問1:1年後の日付は?
問2:1か月前の日付は?
問3:明日の日付は?
答1:2022年12月4日
答2:2021年11月4日
答3:2021年12月5日
現在
2021-12-04
明日
2021-12-05
1年後
2022-12-04
1か月前
2021-11-04
タイムインテリジェンスという概念
2021/12/04 Power BI 勉強会 #23 8
まずは問題です。
以下の前提を踏まえて、以下の問いに答えてください。
前提:今日は2021年12月4日です。
問1:1年後の日付は?
問2:1か月前の日付は?
問3:明日の日付は?
答1:2022年12月4日
答2:2021年11月4日
答3:2021年12月5日
現在
2021-12-04
明日
2021-12-05
1年後
2022-12-04
1か月前
2021-11-04
簡単ですよね
ところで皆さん、これを計算で求めよと言われたら、ロジックがすぐ作れますか?
タイムインテリジェンスという概念
2021/12/04 Power BI 勉強会 #23 9
時間(日付と時刻)の計算は難しいですよね。ではなぜ難しいのか?
簡単ですよね
ところで皆さん、これを計算で求めよと言われたら、ロジックがすぐ作れますか?
タイムインテリジェンスという概念
2021/12/04 Power BI 勉強会 #23 10
時間(日付と時刻)の計算は難しいですよね。ではなぜ難しいのか?
簡単ですよね
ところで皆さん、これを計算で求めよと言われたら、ロジックがすぐ作れますか?
1年 = 12か月
1か月 = 28日、29日、30日、31日...🤔
1日 = 24時間
1時間 = 60分
1分 = 60秒
こんなややこしいの、計算したくないし、考えたくもない😇
タイムインテリジェンスという概念
2021/12/04 Power BI 勉強会 #23 11
人間が直感的にわかるように、昨年、先月、昨日、明日、来月、来年などと言ったら、その日
付や期間を特定できるようにするのが「タイムインテリジェンス」という概念です。
そして、それを機能として実装したのが「タイムインテリジェンス関数」というわけです。
また、「時間」という概念は、この世界に存在する唯一絶対の尺度でもあります。BI では種
類の異なるデータを同時に扱うことがありますが、それらに共通する尺度は、時間のみです。
故に Power BI のモデルには日付テーブル(カレンダー)はひとつだけ、が基本です。
なお、Power BI のタイムインテリジェンスでは時刻は含まず、日付のみを取り扱います。
こんなややこしいの、計算したくないし、考えたくもない😇
タイムインテリジェンスという概念
2021/12/04 Power BI 勉強会 #23 12
デフォルトではデータモデルには、現実世界のカレンダーは存在していませんから、これを
教えてあげる必要があります。そして、現実世界では唯一絶対の「時間」ですから、データ
モデル内でも唯一絶対である必要があります。つまり、日付テーブルはひとつで十分なの
です。2つあったら、「時間」という概念が2つになってしまい、秩序を保つことができません。
日付テーブル(カレンダー)はひとつ
【引用】Power BI Desktop で日付テーブルを作成する: https://docs.microsoft.com/ja-jp/power-bi/guidance/model-date-tables
タイムインテリジェンスという概念
2021/12/04 Power BI 勉強会 #23 13
タイムインテリジェンス関数を使用するには、ちゃんと作られた日付テーブルが必要です
【引用】Time Intelligence Functions: https://dax.guide/functions/time-intelligence/
一意の日付を持つ [Date] 列があって、日付
テーブルは最低でも 365 行必要だということ。
必ずしも 1月1日 で始まる必要はない。
2021年4月1日で始まっているなら、2022年3
月31日までの連続した日付を持っている必要
があるということ。
日付テーブルが一意の [Date] 列を持っていれ
ば、ファクトテーブルと紐づける列は [Date] 列
でなければいけないということはない。たとえば
日付を表す yyyymmdd という数値でもよい。
(よく DateKey と名付けられます。)
[Date]列は Date 型 or DateTime 型のどち
らでもよいが、時間部分は 00:00:00 でなけれ
ばならない(ファクトも同様です
タイムインテリジェンス
- 新しいファイルの自動の日付/時刻 -
2021/12/04 Power BI 勉強会 #23 14
新しいファイルの自動の日付/時刻
2021/12/04 Power BI 勉強会 #23 15
[ファイル] – [オプションと設定] – [オプション]
【参考】Power BI Desktop で自動の日付/時刻を適用する: https://docs.microsoft.com/ja-jp/power-bi/transform-model/desktop-auto-date-time
新しいファイルの自動の日付/時刻
2021/12/04 Power BI 勉強会 #23 16
このオプションを ON にすると、date 型 または date/time 型の列
ごとに自動で日付テーブルがモデル内に非表示で作成されます。
オススメは OFF にしておくことです。なぜなら、モデル内に日付列が
3つあったら、3つの日付テーブルが作成されてしまうからです。
これを OFF にして、代わりに自分で日付テーブルを用意することを
強くオススメします。
【参考】Power BI Desktop で自動の日付/時刻を適用する: https://docs.microsoft.com/ja-jp/power-bi/transform-model/desktop-auto-date-time
新しいファイルの自動の日付/時刻
2021/12/04 Power BI 勉強会 #23 17
[現在のファイル] にも同じような設定があります。
先ほどの [グローバル] の設定は、その PC で新規作成する際に適
用される設定で、こちらの [現在のファイル] は今開いているファイル
の設定です。
これを OFF にすると、現在のファイルの設定が変更されます。人から
もらった pbix ファイル、または過去に自身が作成した pbix ファイル
で [グローバル] の設定が ON で作成されたものは、[現在のファイ
ル] のこの設定が ON になっているはずなので、これもチェックして
OFF にすることをオススメします。
【参考】Power BI Desktop で自動の日付/時刻を適用する: https://docs.microsoft.com/ja-jp/power-bi/transform-model/desktop-auto-date-time
タイムインテリジェンスを使うための準備
- 「日付テーブル」の用意と設定 -
2021/12/04 Power BI 勉強会 #23 18
日付テーブルの用意と設定
2021/12/04 Power BI 勉強会 #23 19
【引用】Power BI Desktop で日付テーブルを作成する: https://docs.microsoft.com/ja-jp/power-bi/guidance/model-date-tables
日付テーブルの用意と設定 – DAX で用意する場合
2021/12/04 Power BI 勉強会 #23 20
【引用】Power BI Desktop で日付テーブルを作成する: https://docs.microsoft.com/ja-jp/power-bi/guidance/model-date-tables
CALENDAR 関数を利用すると簡単
ポイントは第一引数と第二引数に指定する日付
ファクトテーブルの日付列の最小値→ start_date
ファクトテーブルの日付列の最大値→ end_date
に設定するとだいたいうまくいきます😋
日付テーブルの用意と設定 – Power Query で用意する場合
2021/12/04 Power BI 勉強会 #23 21
【引用】Power BI Desktop で日付テーブルを作成する: https://docs.microsoft.com/ja-jp/power-bi/guidance/model-date-tables
例えば [Test] テーブルのように日付列を持つファクトテーブルがある場合、この列の最小値~最大値を利用
して、1年分の日付を作ってしまえばよい
ファクトテーブルの日付列の最小値と最大値を取得し
て、最小値の1日日付と最大値の月末日付を取得し、
連続値を作成するために一度数値へ変換する
ファクトテーブルの日付列の最小値と最大値から数値
化された連続値のリストを List.Transform によって、
each 以降のレコード型に変換して格納する
日付テーブルの用意と設定 – 日付テーブルとしてマークする
2021/12/04 Power BI 勉強会 #23 22
【参考】Power BI Desktop で日付テーブルを設定し、使用する: https://docs.microsoft.com/ja-jp/power-bi/transform-model/desktop-date-tables
【忘れないように!】
どんな方法でも日付テーブルを自作した場合、必ず [日付テーブルとしてマークする] を設定してください。
これをすることで、指定したテーブルが日付テーブルだと認識し、タイムインテリジェンスの機能が正しく動作します。
タイムインテリジェンス関数
- 「日付と時刻の関数」とは違うよって話 -
2021/12/04 Power BI 勉強会 #23 23
「日付と時刻の関数」と「タイムインテリジェンス関数」
2021/12/04 Power BI 勉強会 #23 24
【引用】DAX 関数リファレンス: https://docs.microsoft.com/ja-jp/dax/dax-function-reference
純粋に日付や時刻を計算したい場合は「日付と時刻の関数」を使う
タイムインテリジェンスの概念に沿って、期間を指定し求めたい場合
は「タイムインテリジェンス関数」
【注意】
• タイムインテリジェンス関数の引数に出てくる <dates> は必ず、
日付テーブルの 日付列 を指定してください。そうしないと正しく
動作しません!!
• タイムインテリジェンス関数は CALCULATE の第二引数に指定
することが前提のものが多いです(TOTAL~を除く)
Demo
2021/12/04 Power BI 勉強会 #23 25
参考
2021/12/04 Power BI 勉強会 #23 26
1. DAX 関数リファレンス:
https://docs.microsoft.com/ja-jp/dax/dax-function-reference
2. DAX GUIDE:
https://dax.guide/
3. SQLBI:
https://www.sqlbi.com/
参考
2021/12/04 Power BI 勉強会 #23 27
受注額 = SUMX( Sales, Sales[単価] * Sales[数量] )
受注額 前年 = CALCULATE( [受注額], SAMEPERIODLASTYEAR( 'Dates'[Date] ) )
受注額 前年比 = DIVIDE( [受注額], [受注額 前年], 0 )
受注額 YTD = TOTALYTD( [受注額], 'Dates'[Date], "12/31" )
受注額 前年 YTD = CALCULATE( [受注額 YTD], SAMEPERIODLASTYEAR( 'Dates'[Date] ) )
3か月平均 =
VAR _ThreeMonthsBack =
DATESINPERIOD ( 'Dates'[Date], MAX( 'Dates'[Date] ), -3, MONTH ) // 現在日付から3か月前までの日付セット(テーブル)を取得
VAR _result =
CALCULATE (
VAR NumberOfMonths =
COUNTROWS ( SUMMARIZE ( 'Sales', 'Dates'[YearMonthNum] ) ) // Salesに紐づく年月番号の行数取得
VAR SalesAMT = [受注額]
VAR Result = IF ( NumberOfMonths = 3, DIVIDE( SalesAMT, NumberOfMonths ) ) // 3か月ごとの平均値を求める
RETURN
Result,
_ThreeMonthsBack
)
RETURN
_result
まとめ
2021/12/04 Power BI 勉強会 #23 28
• 大前提:スタースキーマにしておく
• まずはタイムインテリジェンスの概念を押さえましょう
• つぎに日付テーブルをしっかりと準備しましょう
• タイムインテリジェンス関数を使うための準備が揃ったら、以下の順で試してみましょう
1. 何らかの集計値を求めるメジャーを作る(SUM, AVERAGE, COUNTROWS など)
2. 前年を求めるメジャーを作る
3. 前年比を求めるメジャーを作る
4. 累計値を求めるメジャーを作る
5. 前年の累計値を求めるメジャーを作る
6. ある期間の移動平均を求めてみる
最初から多くを求めず、まずはここまでやってみましょう。ここまでは基本中の基本です。徐々に実務に合った応用
に取り組んでみてください。また、進めていくと、DAX ではなく、元のデータを調整する必要が見えてくることもあり
ます。その場合は Power Query に戻って ETL でデータを用意してください。その判断ができるようになると、今
より一つ上のレベルに上がることになります。
以上です。お疲れ様でした😋
2021/12/04 Power BI 勉強会 #23 29

More Related Content

PPTX
え!? Power BI の画面からデータ更新なんてできるの!? ~PowerApps カスタムビジュアルの可能性~
PPTX
Power BI のいろいろな活用パターン
PPTX
Power BI + OneDrive の最も簡単でかつ最も効率的な使い方のひとつ
PPTX
Power BI 初心者さんのDAX・メジャー「モヤモヤ」晴れるまで
PDF
RPA勉強会 Power BI を学ぶ特別編!
PPTX
Power bi勉強会 1202_小林
PPTX
PowerApps に Power BI を埋め込んでみよう!
PPTX
Power BI を提案してみた件
え!? Power BI の画面からデータ更新なんてできるの!? ~PowerApps カスタムビジュアルの可能性~
Power BI のいろいろな活用パターン
Power BI + OneDrive の最も簡単でかつ最も効率的な使い方のひとつ
Power BI 初心者さんのDAX・メジャー「モヤモヤ」晴れるまで
RPA勉強会 Power BI を学ぶ特別編!
Power bi勉強会 1202_小林
PowerApps に Power BI を埋め込んでみよう!
Power BI を提案してみた件

What's hot (20)

PPTX
え、毎月手作業でレポートを作ってるの?Power BI を使えば自動化できますよ!
PPTX
20170902 power bi 勉強会 takiz
PPTX
そのアプリ開発 PowerAppsでやるか否かの指針?(※個人的見解)
PPTX
情報の伝え方が変わる!Power BIでレポートを作ってみよう(前半戦)
PPTX
続・PowerApps に Power BI を埋め込む
PDF
Power BIで使ってみよう!Power Query
PPTX
自社で実運用中!Power Apps・Power Automate 活用事例
PDF
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
PPTX
え!?データがオンプレにあるけどPower BI で BI したいの?
PPTX
Power BI Desktop こんな使い方してみた件
PDF
Excel取得と変換(power query) 201809東京版
PPTX
Power BI をシステムやアプリ開発と一緒に使うなら…~リアルタイムストリーミングの使い方~
PPTX
アンケートを即可視化!~MS Forms ⇒ MS Flow ⇒ Power BI~
PPTX
Facebook のデータを Power BI で見てみると…~セルフマーケティングに活用できるかも!?~
PPTX
欲しいアプリは自分で作る!経済産業省も認めたPower Appsの威力と可能性
PPTX
事例から学ぶ!Power Platformガバナンス設計~CoEの話も添えて~
PPTX
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~
PPTX
Power BI チュートリアル 導入・初級編
PDF
For Power BI Beginners
PPTX
Power Appsのギャラリーを使いこなそう
え、毎月手作業でレポートを作ってるの?Power BI を使えば自動化できますよ!
20170902 power bi 勉強会 takiz
そのアプリ開発 PowerAppsでやるか否かの指針?(※個人的見解)
情報の伝え方が変わる!Power BIでレポートを作ってみよう(前半戦)
続・PowerApps に Power BI を埋め込む
Power BIで使ってみよう!Power Query
自社で実運用中!Power Apps・Power Automate 活用事例
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
え!?データがオンプレにあるけどPower BI で BI したいの?
Power BI Desktop こんな使い方してみた件
Excel取得と変換(power query) 201809東京版
Power BI をシステムやアプリ開発と一緒に使うなら…~リアルタイムストリーミングの使い方~
アンケートを即可視化!~MS Forms ⇒ MS Flow ⇒ Power BI~
Facebook のデータを Power BI で見てみると…~セルフマーケティングに活用できるかも!?~
欲しいアプリは自分で作る!経済産業省も認めたPower Appsの威力と可能性
事例から学ぶ!Power Platformガバナンス設計~CoEの話も添えて~
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~
Power BI チュートリアル 導入・初級編
For Power BI Beginners
Power Appsのギャラリーを使いこなそう
Ad

Similar to Time intelligence - その概念と機能について (20)

PPTX
Power BI dataflows と Power Platform Data Integration の使いどころ
PDF
Power BI 勉強会 夜の採れたて Ignite 2021
PDF
Power BI GW合宿 第伍夜
PPTX
TechDays - Power BI Custom Visuals
PPTX
Power BI 101 A Guided Tour from raw Data to Insights.pptx
PDF
PowerBI Quick Start
PDF
20200610 - Power BI Tips, Tricks & Hacks @ RADACAD
PPTX
Power BI reports and dashboards for Microsoft Project Server
PPTX
Big data models with Power BI - Composite Models and Aggregations
PPTX
downloads_powerbi-presentation.pptx downloads_powerbi-presentation.pptx
PPTX
Introduction to Power BI for Data Analysis and Visualization
PPTX
SQLServer Days - Power BI Custom Visuals
PPTX
Power BI for Business Intelligencee.pptx
PDF
SqlSaturday#699 Power BI - Create a dashboard from zero to hero
PPTX
Power BI Create lightning fast dashboard with power bi & Its Components
PPTX
powerbi-presentation.pptx
PPTX
downloads_powerbi-presentation.pptx
PPTX
Power BI Level 300 Presentation.pptx
PPTX
Power BI Training (Data Analytics& Business Intelegence)
PPTX
downloads_powerbi-presentation.pptx
Power BI dataflows と Power Platform Data Integration の使いどころ
Power BI 勉強会 夜の採れたて Ignite 2021
Power BI GW合宿 第伍夜
TechDays - Power BI Custom Visuals
Power BI 101 A Guided Tour from raw Data to Insights.pptx
PowerBI Quick Start
20200610 - Power BI Tips, Tricks & Hacks @ RADACAD
Power BI reports and dashboards for Microsoft Project Server
Big data models with Power BI - Composite Models and Aggregations
downloads_powerbi-presentation.pptx downloads_powerbi-presentation.pptx
Introduction to Power BI for Data Analysis and Visualization
SQLServer Days - Power BI Custom Visuals
Power BI for Business Intelligencee.pptx
SqlSaturday#699 Power BI - Create a dashboard from zero to hero
Power BI Create lightning fast dashboard with power bi & Its Components
powerbi-presentation.pptx
downloads_powerbi-presentation.pptx
Power BI Level 300 Presentation.pptx
Power BI Training (Data Analytics& Business Intelegence)
downloads_powerbi-presentation.pptx
Ad

More from Yugo Shimizu (20)

PPTX
Microsoft Power Platform release wave
PDF
Two Dataflows
PPTX
Power BI Architecture Dojo 02
PPTX
あなたが作るレポートに不要なデータは含まれていませんか?~レポートリテラシー:ビジュアルから考える逆算
PPTX
ノーコードだよ!全員集合!! ~ 技術者も業務担当者も大歓迎 ~(仮)
PPTX
Ignite で発表された内容とそれ以降のアップデートを確認してみる
PDF
コロナ禍におけるあたらしいカタチ - 私の思う ICT 業界のこれから
PDF
あのセッションの作り方を LT で可能な限りお伝えします
PPTX
CDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきます
PPTX
毎月更新されるデータを Excel で集計してレポートを作ってるですって? それ、Power BI と SharePoint フォルダーで自動化できますよー
PPTX
フォルダー系コネクタを使ったほんとの自動化
PPTX
人前で話すことは “特別” ではない!~ 特別にしない方法について ~
PPTX
Power Automate の他では聞けない使い方 (UI flows は除く)
PPTX
RPA 機能の UI flows が話題の Power Automate を理解せよ
PPTX
もうすぐ来る新しい DirectQuery の自動更新をいま可能なモノで模倣してみた!~ 誕生日のパラドックスを使って体験するのだ ~
PPTX
Teams の”チーム”と Office 365 グループを理解して Power Platform を活用せよ
PPTX
Power Platform Summary
PPTX
Do you wanna be a V-ROCK star?
PDF
de:code 2019 Power Platform Touch & Try Power BI Hands-On_02
PDF
de:code 2019 Power Platform Touch & Try Power BI Hands-On_01
Microsoft Power Platform release wave
Two Dataflows
Power BI Architecture Dojo 02
あなたが作るレポートに不要なデータは含まれていませんか?~レポートリテラシー:ビジュアルから考える逆算
ノーコードだよ!全員集合!! ~ 技術者も業務担当者も大歓迎 ~(仮)
Ignite で発表された内容とそれ以降のアップデートを確認してみる
コロナ禍におけるあたらしいカタチ - 私の思う ICT 業界のこれから
あのセッションの作り方を LT で可能な限りお伝えします
CDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきます
毎月更新されるデータを Excel で集計してレポートを作ってるですって? それ、Power BI と SharePoint フォルダーで自動化できますよー
フォルダー系コネクタを使ったほんとの自動化
人前で話すことは “特別” ではない!~ 特別にしない方法について ~
Power Automate の他では聞けない使い方 (UI flows は除く)
RPA 機能の UI flows が話題の Power Automate を理解せよ
もうすぐ来る新しい DirectQuery の自動更新をいま可能なモノで模倣してみた!~ 誕生日のパラドックスを使って体験するのだ ~
Teams の”チーム”と Office 365 グループを理解して Power Platform を活用せよ
Power Platform Summary
Do you wanna be a V-ROCK star?
de:code 2019 Power Platform Touch & Try Power BI Hands-On_02
de:code 2019 Power Platform Touch & Try Power BI Hands-On_01

Recently uploaded (20)

PDF
Oracle OFSAA_ The Complete Guide to Transforming Financial Risk Management an...
PPTX
The THESIS FINAL-DEFENSE-PRESENTATION.pptx
PDF
Data Engineering Interview Questions & Answers Batch Processing (Spark, Hadoo...
PPTX
Topic 5 Presentation 5 Lesson 5 Corporate Fin
PDF
Lecture1 pattern recognition............
PDF
Business Analytics and business intelligence.pdf
PDF
REAL ILLUMINATI AGENT IN KAMPALA UGANDA CALL ON+256765750853/0705037305
PPTX
climate analysis of Dhaka ,Banglades.pptx
PDF
Optimise Shopper Experiences with a Strong Data Estate.pdf
PDF
Mega Projects Data Mega Projects Data
PPTX
Market Analysis -202507- Wind-Solar+Hybrid+Street+Lights+for+the+North+Amer...
PDF
Introduction to the R Programming Language
PPTX
AI Strategy room jwfjksfksfjsjsjsjsjfsjfsj
PPTX
Pilar Kemerdekaan dan Identi Bangsa.pptx
PDF
Capcut Pro Crack For PC Latest Version {Fully Unlocked 2025}
PPTX
mbdjdhjjodule 5-1 rhfhhfjtjjhafbrhfnfbbfnb
PPTX
importance of Data-Visualization-in-Data-Science. for mba studnts
PDF
Transcultural that can help you someday.
PPTX
Modelling in Business Intelligence , information system
Oracle OFSAA_ The Complete Guide to Transforming Financial Risk Management an...
The THESIS FINAL-DEFENSE-PRESENTATION.pptx
Data Engineering Interview Questions & Answers Batch Processing (Spark, Hadoo...
Topic 5 Presentation 5 Lesson 5 Corporate Fin
Lecture1 pattern recognition............
Business Analytics and business intelligence.pdf
REAL ILLUMINATI AGENT IN KAMPALA UGANDA CALL ON+256765750853/0705037305
climate analysis of Dhaka ,Banglades.pptx
Optimise Shopper Experiences with a Strong Data Estate.pdf
Mega Projects Data Mega Projects Data
Market Analysis -202507- Wind-Solar+Hybrid+Street+Lights+for+the+North+Amer...
Introduction to the R Programming Language
AI Strategy room jwfjksfksfjsjsjsjsjfsjfsj
Pilar Kemerdekaan dan Identi Bangsa.pptx
Capcut Pro Crack For PC Latest Version {Fully Unlocked 2025}
mbdjdhjjodule 5-1 rhfhhfjtjjhafbrhfnfbbfnb
importance of Data-Visualization-in-Data-Science. for mba studnts
Transcultural that can help you someday.
Modelling in Business Intelligence , information system

Time intelligence - その概念と機能について

  • 1. シニア テクニカル アーキテクト 清水 優吾(しみず ゆうご) / 株式会社セカンドファクトリー @yugoes1021 yugoes1021 Microsoft MVP for Data Platform - Power BI (2017.02 -) Time intelligence ~ その概念と機能について ~ 2021-12-04 Power BI 勉強会 #23 https://www.slideshare.net/yugoes1021
  • 2. 自己紹介: 清水 優吾 (Yugo Shimizu) 株式会社セカンドファクトリー CTO, シニア テクニカル アーキテクト UX を看板に掲げて、飲食業を営んでいる IT 企業に勤めている会社員で Data Platform をメインに活動をしている Technical Architect 専門・興味: Data Platform (Azure), Power Platform (Power Apps, Power Automate, Power BI, Power Virtual Agents) Qiita: https://qiita.com/yugoes1021 Power BI 勉強会: https://powerbi.connpass.com Japan Power BI User Group: https://www.facebook.com/groups/JapanPBUG/ Japan Power Virtual Agents User Group: https://www.facebook.com/groups/JPVAUG/ Microsoft MVP for Data Platform - Power BI (2017.02 - ) MVP プロフィールページ Twitter: @yugoes1021 Facebook: yugoes1021 LinkedIn: yugoes1021 2021/12/04 Power BI 勉強会 #23
  • 3. Today’s Theme - 今日のテーマ 2021/12/04 Power BI 勉強会 #23 3 What is Time intelligence?
  • 4. Today’s Theme - 今日のテーマ 2021/12/04 Power BI 勉強会 #23 4 Time intelligence (タイムインテリジェンス) Power BI を使用している皆さんなら聞いたことがあると思われるこの言葉。 「タイムインテリジェンスってなんですか?説明してください」と言われたら、なかなか難しい と思います。なぜ難しいのか? 「タイムインテリジェンス=タイムインテリジェンス関数」だと思われている方が多いからです。 そう思っても間違いではないのですが、それだけでは不十分です。 その前に「概念」を理解しておく必要があると、私は思っています。 今日はタイムインテリジェンスの「概念」と「機能」について、お話します。 ※なお、今日お話することは私の個人的な見解を含みます🙇
  • 6. タイムインテリジェンスという概念 2021/12/04 Power BI 勉強会 #23 6 まずは問題です。 以下の前提を踏まえて、以下の問いに答えてください。 前提:今日は2021年12月4日です。 問1:1年後の日付は? 問2:1か月前の日付は? 問3:明日の日付は? 現在 2021-12-04 明日 ????-??-?? 1年後 ????-??-?? 1か月前 ????-??-??
  • 7. タイムインテリジェンスという概念 2021/12/04 Power BI 勉強会 #23 7 まずは問題です。 以下の前提を踏まえて、以下の問いに答えてください。 前提:今日は2021年12月4日です。 問1:1年後の日付は? 問2:1か月前の日付は? 問3:明日の日付は? 答1:2022年12月4日 答2:2021年11月4日 答3:2021年12月5日 現在 2021-12-04 明日 2021-12-05 1年後 2022-12-04 1か月前 2021-11-04
  • 8. タイムインテリジェンスという概念 2021/12/04 Power BI 勉強会 #23 8 まずは問題です。 以下の前提を踏まえて、以下の問いに答えてください。 前提:今日は2021年12月4日です。 問1:1年後の日付は? 問2:1か月前の日付は? 問3:明日の日付は? 答1:2022年12月4日 答2:2021年11月4日 答3:2021年12月5日 現在 2021-12-04 明日 2021-12-05 1年後 2022-12-04 1か月前 2021-11-04 簡単ですよね ところで皆さん、これを計算で求めよと言われたら、ロジックがすぐ作れますか?
  • 9. タイムインテリジェンスという概念 2021/12/04 Power BI 勉強会 #23 9 時間(日付と時刻)の計算は難しいですよね。ではなぜ難しいのか? 簡単ですよね ところで皆さん、これを計算で求めよと言われたら、ロジックがすぐ作れますか?
  • 10. タイムインテリジェンスという概念 2021/12/04 Power BI 勉強会 #23 10 時間(日付と時刻)の計算は難しいですよね。ではなぜ難しいのか? 簡単ですよね ところで皆さん、これを計算で求めよと言われたら、ロジックがすぐ作れますか? 1年 = 12か月 1か月 = 28日、29日、30日、31日...🤔 1日 = 24時間 1時間 = 60分 1分 = 60秒 こんなややこしいの、計算したくないし、考えたくもない😇
  • 11. タイムインテリジェンスという概念 2021/12/04 Power BI 勉強会 #23 11 人間が直感的にわかるように、昨年、先月、昨日、明日、来月、来年などと言ったら、その日 付や期間を特定できるようにするのが「タイムインテリジェンス」という概念です。 そして、それを機能として実装したのが「タイムインテリジェンス関数」というわけです。 また、「時間」という概念は、この世界に存在する唯一絶対の尺度でもあります。BI では種 類の異なるデータを同時に扱うことがありますが、それらに共通する尺度は、時間のみです。 故に Power BI のモデルには日付テーブル(カレンダー)はひとつだけ、が基本です。 なお、Power BI のタイムインテリジェンスでは時刻は含まず、日付のみを取り扱います。 こんなややこしいの、計算したくないし、考えたくもない😇
  • 12. タイムインテリジェンスという概念 2021/12/04 Power BI 勉強会 #23 12 デフォルトではデータモデルには、現実世界のカレンダーは存在していませんから、これを 教えてあげる必要があります。そして、現実世界では唯一絶対の「時間」ですから、データ モデル内でも唯一絶対である必要があります。つまり、日付テーブルはひとつで十分なの です。2つあったら、「時間」という概念が2つになってしまい、秩序を保つことができません。 日付テーブル(カレンダー)はひとつ 【引用】Power BI Desktop で日付テーブルを作成する: https://docs.microsoft.com/ja-jp/power-bi/guidance/model-date-tables
  • 13. タイムインテリジェンスという概念 2021/12/04 Power BI 勉強会 #23 13 タイムインテリジェンス関数を使用するには、ちゃんと作られた日付テーブルが必要です 【引用】Time Intelligence Functions: https://dax.guide/functions/time-intelligence/ 一意の日付を持つ [Date] 列があって、日付 テーブルは最低でも 365 行必要だということ。 必ずしも 1月1日 で始まる必要はない。 2021年4月1日で始まっているなら、2022年3 月31日までの連続した日付を持っている必要 があるということ。 日付テーブルが一意の [Date] 列を持っていれ ば、ファクトテーブルと紐づける列は [Date] 列 でなければいけないということはない。たとえば 日付を表す yyyymmdd という数値でもよい。 (よく DateKey と名付けられます。) [Date]列は Date 型 or DateTime 型のどち らでもよいが、時間部分は 00:00:00 でなけれ ばならない(ファクトも同様です
  • 15. 新しいファイルの自動の日付/時刻 2021/12/04 Power BI 勉強会 #23 15 [ファイル] – [オプションと設定] – [オプション] 【参考】Power BI Desktop で自動の日付/時刻を適用する: https://docs.microsoft.com/ja-jp/power-bi/transform-model/desktop-auto-date-time
  • 16. 新しいファイルの自動の日付/時刻 2021/12/04 Power BI 勉強会 #23 16 このオプションを ON にすると、date 型 または date/time 型の列 ごとに自動で日付テーブルがモデル内に非表示で作成されます。 オススメは OFF にしておくことです。なぜなら、モデル内に日付列が 3つあったら、3つの日付テーブルが作成されてしまうからです。 これを OFF にして、代わりに自分で日付テーブルを用意することを 強くオススメします。 【参考】Power BI Desktop で自動の日付/時刻を適用する: https://docs.microsoft.com/ja-jp/power-bi/transform-model/desktop-auto-date-time
  • 17. 新しいファイルの自動の日付/時刻 2021/12/04 Power BI 勉強会 #23 17 [現在のファイル] にも同じような設定があります。 先ほどの [グローバル] の設定は、その PC で新規作成する際に適 用される設定で、こちらの [現在のファイル] は今開いているファイル の設定です。 これを OFF にすると、現在のファイルの設定が変更されます。人から もらった pbix ファイル、または過去に自身が作成した pbix ファイル で [グローバル] の設定が ON で作成されたものは、[現在のファイ ル] のこの設定が ON になっているはずなので、これもチェックして OFF にすることをオススメします。 【参考】Power BI Desktop で自動の日付/時刻を適用する: https://docs.microsoft.com/ja-jp/power-bi/transform-model/desktop-auto-date-time
  • 19. 日付テーブルの用意と設定 2021/12/04 Power BI 勉強会 #23 19 【引用】Power BI Desktop で日付テーブルを作成する: https://docs.microsoft.com/ja-jp/power-bi/guidance/model-date-tables
  • 20. 日付テーブルの用意と設定 – DAX で用意する場合 2021/12/04 Power BI 勉強会 #23 20 【引用】Power BI Desktop で日付テーブルを作成する: https://docs.microsoft.com/ja-jp/power-bi/guidance/model-date-tables CALENDAR 関数を利用すると簡単 ポイントは第一引数と第二引数に指定する日付 ファクトテーブルの日付列の最小値→ start_date ファクトテーブルの日付列の最大値→ end_date に設定するとだいたいうまくいきます😋
  • 21. 日付テーブルの用意と設定 – Power Query で用意する場合 2021/12/04 Power BI 勉強会 #23 21 【引用】Power BI Desktop で日付テーブルを作成する: https://docs.microsoft.com/ja-jp/power-bi/guidance/model-date-tables 例えば [Test] テーブルのように日付列を持つファクトテーブルがある場合、この列の最小値~最大値を利用 して、1年分の日付を作ってしまえばよい ファクトテーブルの日付列の最小値と最大値を取得し て、最小値の1日日付と最大値の月末日付を取得し、 連続値を作成するために一度数値へ変換する ファクトテーブルの日付列の最小値と最大値から数値 化された連続値のリストを List.Transform によって、 each 以降のレコード型に変換して格納する
  • 22. 日付テーブルの用意と設定 – 日付テーブルとしてマークする 2021/12/04 Power BI 勉強会 #23 22 【参考】Power BI Desktop で日付テーブルを設定し、使用する: https://docs.microsoft.com/ja-jp/power-bi/transform-model/desktop-date-tables 【忘れないように!】 どんな方法でも日付テーブルを自作した場合、必ず [日付テーブルとしてマークする] を設定してください。 これをすることで、指定したテーブルが日付テーブルだと認識し、タイムインテリジェンスの機能が正しく動作します。
  • 24. 「日付と時刻の関数」と「タイムインテリジェンス関数」 2021/12/04 Power BI 勉強会 #23 24 【引用】DAX 関数リファレンス: https://docs.microsoft.com/ja-jp/dax/dax-function-reference 純粋に日付や時刻を計算したい場合は「日付と時刻の関数」を使う タイムインテリジェンスの概念に沿って、期間を指定し求めたい場合 は「タイムインテリジェンス関数」 【注意】 • タイムインテリジェンス関数の引数に出てくる <dates> は必ず、 日付テーブルの 日付列 を指定してください。そうしないと正しく 動作しません!! • タイムインテリジェンス関数は CALCULATE の第二引数に指定 することが前提のものが多いです(TOTAL~を除く)
  • 25. Demo 2021/12/04 Power BI 勉強会 #23 25
  • 26. 参考 2021/12/04 Power BI 勉強会 #23 26 1. DAX 関数リファレンス: https://docs.microsoft.com/ja-jp/dax/dax-function-reference 2. DAX GUIDE: https://dax.guide/ 3. SQLBI: https://www.sqlbi.com/
  • 27. 参考 2021/12/04 Power BI 勉強会 #23 27 受注額 = SUMX( Sales, Sales[単価] * Sales[数量] ) 受注額 前年 = CALCULATE( [受注額], SAMEPERIODLASTYEAR( 'Dates'[Date] ) ) 受注額 前年比 = DIVIDE( [受注額], [受注額 前年], 0 ) 受注額 YTD = TOTALYTD( [受注額], 'Dates'[Date], "12/31" ) 受注額 前年 YTD = CALCULATE( [受注額 YTD], SAMEPERIODLASTYEAR( 'Dates'[Date] ) ) 3か月平均 = VAR _ThreeMonthsBack = DATESINPERIOD ( 'Dates'[Date], MAX( 'Dates'[Date] ), -3, MONTH ) // 現在日付から3か月前までの日付セット(テーブル)を取得 VAR _result = CALCULATE ( VAR NumberOfMonths = COUNTROWS ( SUMMARIZE ( 'Sales', 'Dates'[YearMonthNum] ) ) // Salesに紐づく年月番号の行数取得 VAR SalesAMT = [受注額] VAR Result = IF ( NumberOfMonths = 3, DIVIDE( SalesAMT, NumberOfMonths ) ) // 3か月ごとの平均値を求める RETURN Result, _ThreeMonthsBack ) RETURN _result
  • 28. まとめ 2021/12/04 Power BI 勉強会 #23 28 • 大前提:スタースキーマにしておく • まずはタイムインテリジェンスの概念を押さえましょう • つぎに日付テーブルをしっかりと準備しましょう • タイムインテリジェンス関数を使うための準備が揃ったら、以下の順で試してみましょう 1. 何らかの集計値を求めるメジャーを作る(SUM, AVERAGE, COUNTROWS など) 2. 前年を求めるメジャーを作る 3. 前年比を求めるメジャーを作る 4. 累計値を求めるメジャーを作る 5. 前年の累計値を求めるメジャーを作る 6. ある期間の移動平均を求めてみる 最初から多くを求めず、まずはここまでやってみましょう。ここまでは基本中の基本です。徐々に実務に合った応用 に取り組んでみてください。また、進めていくと、DAX ではなく、元のデータを調整する必要が見えてくることもあり ます。その場合は Power Query に戻って ETL でデータを用意してください。その判断ができるようになると、今 より一つ上のレベルに上がることになります。