![](/img/trans.png)
[英]Microsoft Power BI - DAX Time Intelligence measure - change context to reflect proper % change; non-YTD measures
[英]power bi dax - previous quarter value?
我有一個簡單的表,其數據格式如下:
category | score | date
cat1 | 3 | 31/3/2019
cat2 | 9 | 31/3/2019 Q1 data
cat3 | 7 | 31/3/2019
...
cat1 | 6 | 30/6/2019
cat2 | 4 | 30/6/2019 Q2 data etc.
cat3 | 1 | 30/6/2019
基本上,我有很多用於季度數據的行(不同類別的分數),其中日期列引用了實際的季度。 我有一個圖表,其中顯示了最近一個季度的值(最新數據),但是我需要一個列來提供上一個季度的得分。 我發現有關PREVIOUSQUARTER的信息,這看起來很簡單,但它會返回空白。
prevQtr = CALCULATE(SUM(data[score]), PREVIOUSQUARTER(data[date]))
有人可以告訴我我在做什么錯嗎? 我嘗試創建一個日期表,在該列的第一個日期和最后一個日期之間使用連續的日期,但這沒有幫助。 其他時間智能功能似乎都沒有返回任何東西,所以我想這是通用的東西。 我嘗試了文檔,但沒有提及任何限制。 我正在尋找的是:
category | score | date | prevQtr
cat1 | 3 | 31/3/2019 |
cat2 | 9 | 31/3/2019 |
cat3 | 7 | 31/3/2019 |
...
cat1 | 6 | 30/6/2019 | 3
cat2 | 4 | 30/6/2019 | 9
cat3 | 1 | 30/6/2019 | 7
謝謝
屏幕截圖:
我建議您僅使用一種措施來實現這一目標,但您的措施:
prevQtr = CALCULATE(SUM(data[score]), PREVIOUSQUARTER(data[date]))
需要參考您的日期表:
prevQtr = CALCULATE(SUM(data[score]), PREVIOUSQUARTER('dateTable'[date]))
這種修改應該做到這一點。
好的,這里有三件事。
所以! 我的建議是將PrevQtr定義為度量,而不是列,在這種情況下,它將與下面的小型重構一起使用:
PrevQtr =
CALCULATE (
SUM ( 'Data'[Score] ),
PREVIOUSQUARTER ( 'dateTable'[Date] ) // just referencing the date table here
)
如果您必須為此創建一個計算列,並且您的數據全部遵循樣本中本季度最后一天具有值的模式,那么我認為這是最好的選擇:
PrevQtrColumn =
VAR CurrentRowDate = 'Data'[Date]
VAR PriorQuarterEnd = EOMONTH ( CurrentRowDate, -3 )
RETURN
CALCULATE (
SUM ( 'Data'[Score] ),
ALLEXCEPT ( 'Data', 'Data'[Category] ),
'Data'[Date] = PriorQuarterEnd
)
ALLEXCEPT
覆蓋了那里的大ALLEXCEPT
。 CALCULATE
將所有行上下文轉換為過濾器上下文,因此您的“ Data” [Score]值將成為過濾器上下文。 ALLEXCEPT
清除了這一點,僅保留了[Category]。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.