我有 3 个表:一个用于带有生产日期字段的发货,该字段链接到日历表(字段日期)。日历表还链接到退货表(字段退货日期),并且与退货表(生产日期)也具有非活动关系,如下所示。
我将创建一个包含度量值的表,其中特定年份的前几年的发货数量为 0,并且是特定年份和下一年的总价值
我尝试在下图中更好地解释。 例如,在 2020 年,我发货了 2500 件,2018 年和 2019 年的度量显示为 0,2020 年到 2023 年的度量显示为 2500 件
我创造了
QSpedita =
CALCULATE(
[Quantità spedita], ('Calendar Lookup'[Year]=2018)
)
但它仅适用于 2018 年,我应该需要为每年创建不同的度量,而不是我需要一个识别过滤器上下文的公式。 你有什么建议吗?
谢谢你
Production Year 2018 2019 2020 2021 2022 2023
2018 5000 5000 5000 5000 5000 5000
2019 0 7000 7000 7000 7000 7000
2020 0 0 2500 2500 2500 2500
2021 0 0 0 5000 5000 5000
2022 0 0 0 0 2750 2750
2023 0 0 0 0 4125 4125
您可以使用一个变量来存储当前过滤器上下文中的年份,该年份由日历表的年份属性确定,另一个变量来存储发货表中的生产年份。
然后检查 ProductionYear 是否大于 CurrentYear :
A/如果为 true,则表示评估的年份早于生产年份,因此返回 0。
B/如果小于或等于当前年份,则计算从生产年份到当前年份(包括当前年份)的所有年份的发货数量总和。您可以看到 ALL() 删除了日历表上的任何现有过滤器,并且 CALCULATE 函数内的 FILTER 条件将保证仅从生产年份到当前年份的年份包含在总和中。
QuantityShippedAdjusted =
VAR CurrentYear = MAX('Calendar Lookup'[Year])
VAR ProductionYear = MAX('Shipments'[Production Year])
RETURN
IF(
ProductionYear > CurrentYear,
0,
CALCULATE(
SUM('Shipments'[Quantity Shipped]),
FILTER(
ALL('Calendar Lookup'),
'Calendar Lookup'[Year] >= ProductionYear && 'Calendar Lookup'[Year] <= CurrentYear
)
)
)