我在SSRS中有一份报告,其中包含我需要转换为DAX的计算。
目标是计算ProjectedYTD
但为了做到这一点,首先我要计算当天的保费和预算。 所以我在SSRS中的做法是:
1)我通过将当前的总预算除以本月的天数来计算当月的每日预算。所以每天10月的预算是
2,579,757 / 31 = 83,217.97
。
2)接下来,我将每天的预算乘以当月开始到今天之间的天数。所以如果今天是10月27日那么
83,217.97 * 27 = 2,246,885
3)最后一步是我将当前月份(10月)之前的整个预算添加到10月份的预算到今天:
23,385,769 + 2,246,885 = 25,632,654
然后我计算每个月的差异和直到今天的总数。
Variance = (Total Premium - Budget till current day)/ Budget till current day * 100
这是:
(28,477,194 - 25,632,654) / 25,632,654 * 100 = 11.1%
最后计算Projected YTD
:
(Total Budget for whole year - Budget till current day) * (1 + Variance) + TotalPremium
这是:
(30,148,763 - 25,632,654) * (1 + 0.11) + 28,477,174 = 33,494,470
所以我假设我必须在Power BI中创建所有这些变量,然后执行计算。
在Power BI中我看到类似的东西:
.ipbx文件可以在这里访问:
https://www.dropbox.com/s/io1yumnqlrzj067/PremiumByDivisions.pbix?dl=0
请帮忙。
更新1
乔,非常感谢你的时间。 我认为它没有正确计算BudgetTillCurrentDay。屏幕截图为25,965,526,是预算到10月底的总和。但我需要直到今天。因此,如果今天是30日,那么2,579,757 / 31 * 30 = 2,496,539 - 这是从10月初到今天(10月30日)的预算
然后总和(截至9月底的全年预算)+ 2,496,539 = 25,882,308。
抱歉混淆。
答案 0 :(得分:1)
在进入我的解决方案之前的一些评论:
在考虑预算之前,我在Premiums表中创建了一些措施,以便稍后简化其他公式。
PremiumsMTD = TOTALMTD(SUM(Premiums[Premium]), Dates[Date])
PremiumsYTD = TOTALYTD(SUM(Premiums[Premium]), Dates[Date])
首先,为了创建一个月初至今的预算指标,我使用了以下公式。一步一步,这个公式1)计算出该月的总天数,2)将该月的总预算除以天数,3)计算出该月过去的天数(全部)如果是过去一个月,0表示未来月份,当前月份的当前日期),最后4)将每天的预算乘以已过去的天数。
BudgetMTD =
VAR DaysOfMonth = MAXX(Dates, DAY(EOMONTH(Dates[Date], 0)))
VAR BudgetPerDayForMonth = SUM(BudgetData[Amount]) / DaysOfMonth
VAR DaysInMonthToToday = MAXX(Dates,
IF(Dates[Date] < TODAY(), DAY(Dates[Date]),
IF(Dates[Date] > TODAY(), 0,
DAY(TODAY())
)))
RETURN BudgetPerDayForMonth * DaysInMonthToToday
接下来,对于YTD,只需使用Power BI的内置TOTALYTD
功能(就像为Premiums措施所做的那样),将新创建的BudgetMTD度量作为表达式,并将其过滤到非未来天。
BudgetYTD = TOTALYTD(BudgetData[BudgetMTD], Dates[Date], Dates[Date] <= TODAY())
然后你可以通过使用之前创建的MTD和YTD度量进行简单的数学运算来获得差异。
BudgetVarianceMTD = (Premiums[PremiumsMTD] - BudgetData[BudgetMTD]) / BudgetData[BudgetMTD]
BudgetVarianceYTD = (Premiums[PremiumsYTD] - BudgetData[BudgetYTD]) / BudgetData[BudgetYTD]
这是我正在处理的报告页面。请注意,我使用的是矩阵(虽然它可以有许多不同的视觉效果),MonthName作为轴/类别。由于视觉是一个月的颗粒,因此年初至今的价值观在同一个视觉中没有一个好地方存在(Power BI小计自动赢得了与自定义测量相匹配的小计),这就是为什么那里是具有年初至今价值的卡片。