使用Power BI計算隨時間變化的百分比
問題
多年來,許多專家演示瞭如何計算Power BI中的時間智慧,包括按年,按月,按周等。所有這些都可以歸類為所謂的“按週期排序”,這是一種用於業務分析的技術,用於衡量當前日期格式與歷史上相同日期格式相比的值。根據要分析的資料集或業務需求,最終目標始終是以在兩個比較期間中經過相同時間的方式檢視歷史資料。
解
出於本技巧的目的,用於此工作的資料來源是Power BI資料集,其中包含一個有關“租戶產品使用情況和活動”的表。沒有日曆維度表,因此我們需要稍後建立。
對於此演示,我們將計算每個Microsoft Office 365應用程式(OneDrive,SharePoint,Teams,Outlook等)的超時使用增長率。
為了能夠確定每個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應用程式的類別應用切片器時,我們應該能夠動態地視覺化每個應用程式的增長率,如下所示: