DAX 预测截止日期违规

DAX forecasting deadline breach

我需要你的帮助来解决我面临的有关 DAX 的问题:

我们有一个 table 显示何时会生成新一批案例以及预计有多少案例:

idx  batch_date   new_cases
1    5/1/2020     1504  
2    5/3/2020     2005
3    5/13/2020    921
4    5/26/2020    770

我们还知道,平均每天将处理和关闭 95 个案例,并且假设在前一个完成之前不会处理新的批次;我们还有计算显示批次何时达到 10 和 15 的老化。

idx  batch_date   new_cases  production  days  batch_start  batch end  day_10     day_15
1    5/1/2020     1504       95          16    5/1/2020     5/17/2020  5/11/2020  5/16/2020
2    5/3/2020     2005       95          22    5/18/2020    6/9/2020   5/13/2020  5/18/2020
3    5/13/2020    921        95          10    6/10/2020    6/20/2020  5/23/2020  5/28/2020
4    5/26/2020    770        95          9     6/21/2020    6/30/2020  6/5/2020   6/10/2020

在常规 Excel 中,我会使用这些公式:

days: =ROUNDUP([@[new_cases]]/[@production]],0)
batch_start: =if(*batch_end previous row* >=[@[batch_date]], *batch_end previous row*+1,[@[batch_date]]) 
batch_end: =[@[batch_start]]+[@[days]]
day_10: = [@[batch_date]]+10
day_15: = [@[batch_date]]+15

第一个问题: 当我尝试为 batch_start,

编写 DAX 计算列时
batch_start:= IF(LOOKUPVALUE(
                     forecast[batch_end], forecast[idx], forecast[idx] -1) >= forecast[batch_date],
                     forecast[batch_end], forecast[idx], forecast[idx] -1) +1,
                     forecast[batch_date])

我显然遇到了循环依赖错误。知道如何解决吗?

另一个问题是,这个练习的最终目标是计算我们每天在每个老化桶(<=10、11-15、>15)中有多少个案例。即,在 5 月 2 日,我有 1409 个来自 5/1 批次的未结案例(1504 - 95 个已经处理),全部在 <=10 个桶中;在 5 月 28 日,我在 <=10 桶中有 770 个,在 11-15 桶中有 921 个,在 >15 桶中有 1055 个等等。知道如何编写一个可以显示这一点的度量吗?我在 DropBox 上放了一个 xlsx 文件,我在其中手动计算了预期结果 (https://www.dropbox.com/s/pgfgdtcxqilxfnm/forecast.xlsx?dl=0)。 我在 DAX 中需要这个的原因是整个项目的前面步骤都是使用 PowerQuery、PowerPivot 和 DAX 完成的,这将是该项目的最后一个难题。

            batch:                                     expected outcome:
            5/1   5/3   5/13  5/26   all open cases    <=10  11-15  >15
2020-05-01  1504                     1504              1504  0      0
2020-05-02  1409                     1409              1409  0      0
2020-05-03  1314  2005               3319              3319  0      0
2020-05-04  1219  2005               3224              3224  0      0
2020-05-05  1124  2005               3129              3129  0      0
2020-05-06  1029  2005               3034              3034  0      0
2020-05-07  934   2005               2939              2939  0      0
2020-05-08  839   2005               2844              2844  0      0
2020-05-09  744   2005               2749              2749  0      0
2020-05-10  649   2005               2654              2654  0      0
2020-05-11  554   2005               2559              2559  0      0
2020-05-12  459   2005               2464              2005  459    0
2020-05-13  364   2005  921          3290              2926  364    0
2020-05-14  269   2005  921          3195              921   2274   0
2020-05-15  174   2005  921          3100              921   2179   0
2020-05-16  79    2005  921          3005              921   2084   0
2020-05-17  0     2005  921          2926              921   2005   0
2020-05-18        2005  921          2926              921   2005   0
2020-05-19        1910  921          2831              921   0      1910
2020-05-20        1815  921          2736              921   0      1815
2020-05-21        1720  921          2641              921   0      1720
2020-05-22        1625  921          2546              921   0      1625
2020-05-23        1530  921          2451              921   0      1530
2020-05-24        1435  921          2356              0     921    1435
2020-05-25        1340  921          2261              0     921    1340
2020-05-26        1245  921   770    2936              770   921    1245
2020-05-27        1150  921   770    2841              770   921    1150
2020-05-28        1055  921   770    2746              770   921    1055
2020-05-29        960   921   770    2651              770   0      1881
2020-05-30        865   921   770    2556              770   0      1786
2020-05-31        770   921   770    2461              770   0      1691
2020-06-01        675   921   770    2366              770   0      1596
2020-06-02        580   921   770    2271              770   0      1501
2020-06-03        485   921   770    2176              770   0      1406
2020-06-04        390   921   770    2081              770   0      1311
2020-06-05        295   921   770    1986              770   0      1216
2020-06-06        200   921   770    1891              0     770    1121
2020-06-07        105   921   770    1796              0     770    1026
2020-06-08        10    921   770    1701              0     770    931
2020-06-09        0     921   770    1691              0     770    921
2020-06-10              921   770    1691              0     770    921
2020-06-11              826   770    1596              0     0      1596
2020-06-12              731   770    1501              0     0      1501
2020-06-13              636   770    1406              0     0      1406
2020-06-14              541   770    1311              0     0      1311
2020-06-15              446   770    1216              0     0      1216
2020-06-16              351   770    1121              0     0      1121
2020-06-17              256   770    1026              0     0      1026
2020-06-18              161   770    931               0     0      931
2020-06-19              66    770    836               0     0      836
2020-06-20              0     770    770               0     0      770
2020-06-21                    770    770               0     0      770
2020-06-22                    675    675               0     0      675
2020-06-23                    580    580               0     0      580
2020-06-24                    485    485               0     0      485
2020-06-25                    390    390               0     0      390
2020-06-26                    295    295               0     0      295
2020-06-27                    200    200               0     0      200
2020-06-28                    105    105               0     0      105
2020-06-29                    10     10                0     0      10
2020-06-30                    0      0                 0     0      0
2020-07-01                    0      0                 0     0      0

再次感谢您的帮助。

此致,米哈尔

假设您的生产没有差距,您可以计算 batch_start,方法是取第一个 batch_generation_date 并向前滚动累计生产天数。

batch_start =
VAR FirstBatchDate = MIN ( forecast[batch_generation_date] )
VAR CurrBatchDate = forecast[batch_generation_date]
VAR CumulativeDays =
    SUMX (
        FILTER ( forecast, forecast[batch_generation_date] < CurrBatchDate ),
        forecast[days] + 1
    )
RETURN
    FirstBatchDate + CumulativeDays