我在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 .
抱歉混淆 .
1 回答
进入我的解决方案之前的一些评论:
您共享的文件中的数字与问题中的数字并不完全一致,因此希望此解决方案符合预期的数字 .
此解决方案的末尾有一个屏幕截图,显示我正在处理的报告页面,以便您可以看到我正在使用的结构作为示例 .
要评论你问题中的最后一句话,你在技术上不必做出所有这些措施;你可以将公式合并为一个(类似于我在下面的第一个预算相关公式中所做的那样),但我认为将它们分解为单独的措施,就像我做的那样,报告工作会更好 .
在考虑预算之前,我在Premiums表中创建了一些措施,以便稍后简化其他公式 .
首先,为了创建一个月初至今的预算指标,我使用了以下公式 . 一步一步,这个公式1)计算出该月的总天数,2)将该月的总预算除以天数,3)计算出该月过去的天数(全部)如果是过去的月份,如果是未来月份则为0,则是当前月份的当前日期),最后4)将每天的预算乘以已过去的天数 .
接下来,对于YTD,只需使用Power BI的内置
TOTALYTD
功能(就像为Premiums措施所做的那样),使用新创建的BudgetMTD度量作为表达式,并将其过滤到非未来几天 .然后,您可以通过使用之前创建的MTD和YTD度量进行简单的数学运算来获得差异 .
这是我正在处理的报告页面 . 请注意,我使用的是矩阵(虽然它可以有许多不同的视觉效果),MonthName作为轴/类别 . 由于视觉是一个月粒,因此YTD值在同一视觉中没有一个好的存在位置(Power BI小计自动与自定义测量不匹配),这就是为什么有卡片的原因 . 年初至今的 Value 观 .