![](/img/trans.png)
[英]How to display data in area chart starting from the year chosen on a slicer and get all following years in Power BI
[英]Sum amount base from previous value on slicer power bi
我有一張這樣的桌子:
Year Month Code Amount
---------------------------------------
2017 11 a 7368
2017 11 b 3542
2017 12 a 4552
2017 12 b 7541
2018 1 a 6352
2018 1 b 8376
2018 2 a 1287
2018 2 b 3625
我基於Year和Month制作切片器(忽略代碼),我想顯示如下的SUM of Amount:
Year 2017 and Month 12
,則顯示的值是基於2017-11的SUM Amount,而在Slicer Year 2018 and Month 1
應該是基於2017-12的SUM Amount 我已經嘗試過使用此工具進行測試,但這是不允許的:
Last Month = CALCULATE(SUM(Table[Amount]); Table[Month] = SELECTEDVALUE(Table[Month]) - 1)
怎么做對?
我想要這樣的東西
注意:我使用直接查詢SQL Server
更新:到目前為止,我通過子查詢在SQL Server表中添加了Last_Amount
列,也許你們有解決我問題的更好方法
CALCULATE
語句中的過濾器僅設計為采用不涉及進一步計算的簡單語句。 有兩種可能的補救措施。
1.在CALCULATE
函數中使用變量之前,請先使用變量計算前一個月份的數字。
Last Month =
VAR PrevMonth = SELECTEDVALUE(Table[Month]) - 1
RETURN CALCULATE(SUM(Table[Amount]), Table[Month] = PrevMonth)
2.使用FILTER()
函數。 這是一個迭代器,可以進行更復雜的過濾。
Last Month = CALCULATE(SUM(Table[Amount]),
FILTER(ALL(Table),
Table[Month] = SELECTEDVALUE(Table[Month]) - 1))
編輯:由於您使用的是年份和月份,因此您需要為一月份設置特殊情況。
Last Month =
VAR MonthFilter = MOD(SELECTEDVALUE(Table[Month]) - 2, 12) + 1
VAR YearFilter = IF(PrevMonth = 12,
SELECTEDVALUE(Table[Year]) - 1,
SELECTEDVALUE(Table[Year]))
RETURN CALCULATE(SUM(Table[Amount]),
Table[Month] = MonthFilter,
Table[Year] = YearFilter)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.