使用两项措施的结果计算未来的预测结果

问题描述 投票:0回答:1

我的问题涉及三个指标,[接受百分比]、[上个月接受百分比]和[平均变化百分比]。

如果 [% Accepted] 为空,因为我们还没有该月的数据,那么我希望该列通过计算 [% Accepted Previous Month] + [Avg % Change] = "forecasted % 接受”

我可以让它这样做一个月,但我希望它在未来继续下去,例如:

如果 2023 年 1 月的 [% Accepted] 为空,则它会查找并找到 [% Accepted Previous Month] (10.3%) + [Avg % Change] (1.23%) = 11.53% 并将该值放入 2023 年 1 月

然后,对于 2023 年 2 月,它将使用 11.53% 作为其[上个月接受的百分比],并添加 2023 年 2 月的[平均变化百分比],并继续逐月使用之前计算的值作为新的上个月值。它看起来像这样:

月年 % 接受 上个月接受的百分比 平均变化百分比 预测
2023 年 4 月 -2.00 10.03
2023 年 3 月 -1.5 12.03
2023 年 2 月 2.00 13.53
2023 年 1 月 10.3 1.23 11.53
2022 年 12 月 10.3 11.28 -3.1 10.3
2022 年 11 月 11.28 14.5 2.14 11.28

这是我到目前为止制定的措施:

Forecast = 
VAR _CurrentValue = [% Accepted]
VAR _ProjectedValue = [% Accepted Prior Month] +  [Avg % Change]

RETURN
IF(ISBLANK(_CurrentValue), _ProjectedValue, _CurrentValue

它给了我这个:

月年 % 接受 上个月接受的百分比 平均变化百分比 预测
2023 年 4 月 -2.00 -2.00
2023 年 3 月 -1.5 -1.5
2023 年 2 月 2.00 2.00
2023 年 1 月 10.3 1.23 11.53
2022 年 12 月 10.3 11.28 -3.1 10.3
2022 年 11 月 11.28 14.5 2.14 11.28

我可以预测一个月,但之后它只返回[平均变化百分比],因为它没有将前一个[预测]值视为前一个月的值。

我还尝试创建一个仅 [上个月接受百分比] + [平均变化百分比] 的度量,以及该度量的上个月版本,但我仍然得到相同的结果。

powerbi dax powerbi-desktop
1个回答
0
投票

DAX 不是递归的 - 在这种情况下,您需要获取最新的

% Accepted
并添加
Avg % Change
的累积和。

尝试以下操作(对您的日期表做出一些假设):

Forecast = 
  var thisMonth = MAX('DateTable'[Date])
  var maxAvailableDate = MAXX(ALL('DateTable'), IF(NOT ISBLANK([% Accepted]), [Date])
  var lastAccepted =
    CALCULATE(
      [% Accepted],
      REMOVEFILTERS('DateTable'),
      'DateTable'[Date] = maxAvailableDate 
    )
  var fcstMonths = 
    FILTER(
      ALL('DateTable'),
      maxAvailableDate <= 'DateTable'[Date] && 'DateTable'[Date] <= thisMonth
    )
  var cumulativeChange = 
    SUMX(
      SUMMARIZE(fcstMonths, 'Datetable'[MonthYear], "avg", [Avg % Change]),
      [avg]
    )

  var frcst = lastAccepted + cumulativeChange
  var curValue = [% Accepted]

  return COALESCE(curValue, frcst)
© www.soinside.com 2019 - 2024. All rights reserved.