[英]Power BI Rolling Total Previous Month DAX
我在POWER BI工作並嘗試計算上個月滾動總數的DAX表達式。 我有一個過濾器,我選擇某個月,我想計算上個月的滾動總數。
以下計算可以完美地計算所選日期范圍的滾動總計。
如何計算前幾個月的滾動總數?
Rolling_Total_Current_Month = CALCULATE(
SUM(SalesInvoice[Sales])
,FILTER(ALLSELECTED(SalesInvoice), (SalesInvoice[Date]) <= MAX(SalesInvoice[Date])))
以下是我的數據示例,我每天都有多個類別的銷售額(事實上我有更多的詳細信息列,但這已經簡化了)
Date Day Amount Category
1/1/2016 1 100 A
1/1/2016 1 120 B
1/1/2016 1 90 C
1/2/2016 2 500 A
1/2/2016 2 321 B
1/2/2016 2 143 C
到目前為止,我已經提出了一個方程來解決滾動總數,但是當我嘗試切片並查看單個類別的滾動總數時,它在上個月不起作用。 我只保留了上個月的原始滾動總數。
以下是上個月滾動總數的等式。 但是,一旦根據類別切片,不會重新計算上個月的滾動總數。
PREVIOUS_MONTH_ROLLING_TOTAL =
CALCULATE(
[Current Sales]
,FILTER(
ALL( Orders )
,Orders[MonthNumber] = MAX( Orders[MonthNumber] ) - 1
&& Orders[Day] <= MAX( Orders[Day] )
)
)
首先,我在名為Orders-的表中有這樣的數據 -
Date Amount
12/12/2017 100
12/12/2017 200
12/12/2017 300
1/1/2018 400
1/1/2018 500
我首先使用以下公式創建一個名為Year&Month的計算列: -
Year = YEAR(Orders[Date])
Month = FORMAT(Orders[Date],"mmmm")
然后我創建一個名為月號的列,當表中涉及一年以上以及識別前幾個月時,這將有助於排序。
MonthNumber = DATEDIFF(Min(Orders[Date]),Orders[Date],MONTH)
當月銷售額可以是度量值或計算列。 在問題中,您通過計算列獲得了當月銷售的答案,如果您想采取措施,那么這樣的事情將適用於匯總表。
Current Month Sales = SUm(Orders[Amount])
我還會創建一個名為Key的列: -
Key = Orders[MonthNumber] & Orders[Category]
現在,對於上個月銷售,我將創建一個度量來查找我們創建的選定MonthNumber。
Previous Month Sales =
Var SelectedCategory = SELECTEDVALUE(Orders[Category])
Var SelectedMonthNumberr = SELECTEDVALUE(Orders[MonthNumber]) - 1
Var ReqKey = SelectedMonthNumberr & SelectedCategory
Return
IF(ISBLANK(SelectedCategory) <> True(),
CALCULATE(SUM(Orders[Amount]),FILTER(ALL(Orders), Orders[Key] = ReqKey)),
CALCULATE(SUM(Orders[Amount]),FILTER(ALL(Orders), Orders[MonthNumber] = SelectedMonthNumberr)))
或者你的措施
PREVIOUS_MONTH_ROLLING_TOTAL =
CALCULATE(
[Current Sales]
,FILTER(
ALL( Orders )
,Orders[MonthNumber] = MAX( Orders[MonthNumber] ) - 1
&& Orders[Day] <= MAX( Orders[Day] )
)
)
您可以添加另一個過濾項目作為&& Orders[Category] = SELECTEDVALUE(Orders[Category])
但是如果您沒有選擇任何類別,或者在沒有類別的表格或視覺效果上,則無法使用。 所以,你需要在我的測量公式中引用if else邏輯。
如果這有幫助,請告訴我。
我已經解決了如何讓前幾個月滾動總數。 你必須做三件事。 首先在數據表中創建一個月號列(這用作一個整數,從中減去1個月)。 您還必須創建一個日期列。
然后為當前銷售或您的任何價值創建一個度量。
為當月銷售創建度量
Current Sales = SUM(Orders[Amount])
那么這個等式。
PREVIOUS_MONTH_ROLLING_TOTAL =
CALCULATE(
[Current Sales]
,FILTER(
ALL( Orders )
,Orders[MonthNumber] = MAX( Orders[MonthNumber] ) - 1
&& Orders[Day] <= MAX( Orders[Day] )
)
)
這個等式的概念是能夠在圖表上顯示前幾個月的滾動總數,X軸為“DAY”(所以1-31)然后你可以查看當前月份,上個月,去年同期所有相同的圖表或表格。
嘗試這些方面的東西:
Rolling_Total_Previous_Month =
VAR CurrentMonth = MAX(SalesInvoice[Date])
VAR PreviousMonth = EOMONTH(CurrentMonth,-1)
RETURN CALCULATE(SUM(SalesInvoice[Sales]), SalesInvoice[Date] <= PreviousMonth)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.