使用相关 table 中的两列的 DAX 动态过滤器

DAX dynamic filter using two columns from related table

我需要使用 DAX 进行一些简单的计算,但我不确定如何获得与 Excel 的公式相同的结果。 首先,我的数据结构如屏幕截图所示:

措施来自一个 table,PactDelivered 是相关 table 的属性,通过关系连接。

我真正需要做的就是将下面的公式转换成 DAX:

在计算B3-C3-D3时没有问题,但我有一个问题如何计算- B4 + C4部分。当然它应该是动态的,所以如果要计算10号包的结果,那么它会取10号和11号的数字。

编辑:

修改 Alexis Olson 的代码后,我得到了类似下面的内容,但它还没有工作。请注意,PactDelivered 与措施不同 table。不知道为什么,但它是根据 NextPack 值计算包的结果。我尝试添加另一个基本上是 NextPack -1 的变量,并尝试使用它计算 return 的总和,但效果不佳。

Cancellations:=

var NextPack = MAX('Order'[PactDelivered]) + 1

var NextOrders = CALCULATE(SUM('Fact DropOff'[OrdersSentOut]) + sum('Fact DropOff'[OrdersReturned]), 'Order'[PactDelivered] = NextPack)

return  SUM ('Fact DropOff'[OrdersSentOut]) - SUM ('Fact DropOff'[OrdersReturned] ) - SUM('Fact DropOff'[ActiveSubscriptions]) -  NextOrders

编辑2: 事实样本数据:

来自维度:

关系:

试试这样的措施:

Measure = 
    VAR NextPact = MAX(Orders[PactDelivered]) + 1
    VAR NextOrders = CALCULATE(SUM(Orders[OurdersSentOut]) - SUM(Orders[OrdersReturned]),
                         Orders[PactDelivered] = NextPact)
    RETURN SUM(Orders[OurdersSentOut]) - SUM(Orders[OrdersReturned]) -
           SUM(Orders[ActiveSubscriptions]) - NextOrders

首先,我们通过获取当前索引并加 1 来计算下一个索引。然后计算该索引的发送减 returns。最后,从当前行计算中减去它。