問題
多年來,許多專家演示了如何計算Power BI中的時間智能,包括按年,按月,按周等。所有這些都可以歸類為所謂的“按周期排序”,這是一種用於業務分析的技術,用於衡量當前日期格式與歷史上相同日期格式相比的值。根據要分析的數據集或業務需求,最終目標始終是以在兩個比較期間中經過相同時間的方式查看歷史數據。
解
出於本技巧的目的,用於此工作的數據源是Power BI數據集,其中包含一個有關“租戶產品使用情況和活動”的表。沒有日歷維度表,因此我們需要稍后創建。
對於此演示,我們將計算每個Microsoft Office 365應用程序(OneDrive,SharePoint,Teams,Outlook等)的超時使用增長率。這將顯示組織內各個產品的采用情況以及活躍用戶加班時間出現高峰或下降的情況。本技巧將集中在按月日期表單上,並利用Office 365采用數據集進行演示。
為了能夠確定每個O365應用程序使用率的增長或增加,我們需要首先執行以下操作:
- 創建日期維度表,否則將無法使用時間智能功能。
- 創建當前使用情況的度量。
- 創建上個月使用情況的度量。
- 為使用差異創建度量。
- 為增長率或使用率增加創建另一個度量。
公式中總結了我們最終要達到的目標:
Month-on-Month Usage Growth = (Current Usage – Previous Month Usage) X 100 / Previous Month Usage.
因此,讓我們通過一系列步驟進行演示,但是我將不詳細介紹如何在Power BI Service中創建Power BI數據集。您的數據集可能來自其他任何來源,例如SQL數據庫,Azure SQL數據庫,Salesforce,SharePoint等。
步驟1:創建日期維度表。
有幾種技術可以 在Power BI中 創建日期維度表(又名“日歷表”)。但是,我更喜歡這種技術:
<表輸出> =日歷(<開始日期>,<結束日期>)
Calendar = CALENDAR(DATE(2016,1,1),DATE(2022,12,31))
如下所示,以1:*(一對多關系)將Calendar表與Dates to ContentDate上的TenantProductUsage表 鏈接起來。您可以添加更多列以適合您的項目:

步驟2:為當前使用情況創建度量
通過匯總“ TenantProductUsage”表中的“ ActiveUserCount”字段得出當前用法,如下所示:
Current Usage = SUM(TenantProductUsage[ActiveUserCount])

步驟3:為上個月的使用情況創建度量
為了得出上個月的用法,我使用了時間智能功能“ PREVIOUSMONTH”,如下所示:
PriorMonthActiveUsers = CALCULATE(SUM(TenantProductUsage [ActiveUserCount]),PREVIOUSMONTH(Calendar [Date]))

步驟4:為使用差異創建度量
為此,我將 在DAX中使用變量只是為了說明,因為我可以在可能的情況下拆分計算,但是變量使DAX代碼更易於閱讀,如下所示:
Usage Difference = VAR _CurrentMonthUsage = TenantProductUsage[Current Usage] VAR _PreviousMonthUsage = TenantProductUsage[PriorMonthActiveUsers] VAR _Result = _CurrentMonthUsage - _PreviousMonthUsage RETURN _Result

步驟6:為增長率或使用率增加創建度量
這是通過將使用率差異除以PriorMonthActiveUsers得出的,因此我們可以得出使用率的增長率,如下所示:
Usage Growth = DIVIDE ([Usage Difference], [PriorMonthActiveUsers], 0)CALENDAR(DATE(2016,1,1),DATE(2022,12,31))

可視化報告
成功完成這些步驟之后,我們現在可以在Power BI中可視化已創建的度量,以查看和比較輸出。如果在桌子上可視化,則應具有以下內容:


當我們在其他視覺效果上顯示這些圖像並使用類似於其他O365應用程序的類別應用切片器時,我們應該能夠動態地可視化每個應用程序的增長率,如下所示:

