Excel formula 如何使用DAX计算功率BI中的预计YTD

Excel formula 如何使用DAX计算功率BI中的预计YTD,excel-formula,powerbi,dax,powerquery,Excel Formula,Powerbi,Dax,Powerquery,我有一份SSRS报告,里面有我需要翻译成DAX的计算结果。 目标是计算ProjectedYTD 但为了做到这一点,首先我必须计算当天的保费和预算。 因此,我在SSRS中的做法是: 1)我通过将当前总预算除以本月天数来计算当月每天的预算。因此,10月份每天的预算是 2579757/31=83217.97 2)接下来,我将每日预算乘以从本月初到今天的天数。如果今天是10月27日那么 83217.97*27=2246885 3)最后一步是将本月(10月)之前的全部预算添加到10月至今天的预算中: 2

我有一份SSRS报告,里面有我需要翻译成DAX的计算结果。 目标是计算
ProjectedYTD

但为了做到这一点,首先我必须计算当天的保费和预算。 因此,我在SSRS中的做法是:

1)我通过将当前总预算除以本月天数来计算当月每天的预算。因此,10月份每天的预算是

2579757/31=83217.97

2)接下来,我将每日预算乘以从本月初到今天的天数。如果今天是10月27日那么

83217.97*27=2246885

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%
(30,148,763 - 25,632,654) * (1 + 0.11) + 28,477,174 = 33,494,470
最后计算预计的年初至今:

(Total Budget for whole year  -  Budget till current day) * (1 + Variance) + TotalPremium
即:

 (28,477,194 - 25,632,654) / 25,632,654 * 100 = 11.1%
(30,148,763 - 25,632,654) * (1 + 0.11) + 28,477,174 = 33,494,470
所以我假设我必须在幂BI中创建所有这些变量,然后执行计算

在Power BI中,我看到的是这样的:

.ipbx文件可在此处访问:

请帮忙

更新1

乔,非常感谢你抽出时间。 我认为今天的预算计算不正确。在屏幕截图上显示其25965526,这是截至10月底的预算总额

但我需要到今天。如果今天是30号,那么2579757/31*30=2496539——这是从10月初到今天(10月30日)的预算

然后求和(截至9月底的全年预算)+2496539=25882308


抱歉搞混了

进入我的解决方案之前,请给出一些评论:

  • 您共享的文件中的数字与问题中的数字不完全一致,因此希望此解决方案与预期数字匹配
  • 在这个解决方案的末尾有一个屏幕截图,显示了我正在处理的报告页面,以便您可以看到我作为示例使用的结构
  • 要评论你问题中的最后一句话,从技术上讲,你不必采取所有这些措施;您可以将这些公式组合成一个公式(类似于我在下面第一个与预算相关的公式中所做的),但我认为,像我这样将它们分解成单独的度量,对于报告工作会更好

在进行任何预算之前,我在保费表中创建了一些度量,以帮助以后简化其他公式

PremiumsMTD = TOTALMTD(SUM(Premiums[Premium]), Dates[Date])

PremiumsYTD = TOTALYTD(SUM(Premiums[Premium]), Dates[Date])
首先,为了创建一个月至今的预算度量,我使用了以下公式。一步一步地,这个公式1)计算出当月的总天数,2)将当月的总预算除以天数,3)计算出当月已经过去了多少天(如果是上个月,则为所有,如果是下个月,则为0,则为当月的当前日期),最后,将每天的预算乘以已经过去的天数

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
然后你可以通过使用之前创建的MTD和YTD度量进行简单的数学运算,得到方差

BudgetVarianceMTD = (Premiums[PremiumsMTD] - BudgetData[BudgetMTD]) / BudgetData[BudgetMTD]

BudgetVarianceYTD = (Premiums[PremiumsYTD] - BudgetData[BudgetYTD]) / BudgetData[BudgetYTD]
这是我正在处理的报告页面。请注意,我使用的是一个矩阵(尽管它可能有许多不同的视觉效果),其中MonthName是轴/类别。由于视觉是一个月的纹理,所以年初至今的值在同一视觉中没有一个好的位置(BI自动进行的小计与自定义度量不匹配),这就是为什么有具有年初至今值的卡片