gpt4 book ai didi

excel - 如何阻止数据透视表过滤破坏我的 14 天滚动平均度量?

转载 作者:行者123 更新时间:2023-12-04 20:50:32 29 4
gpt4 key购买 nike

我有两个表:FactTable 和 Calendar。我的 Fact 表有各种对象的消费数据,我想创建一个 14 天的滚动平均度量。我有点成功,但我注意到,只要一个对象的消耗量为零,当天的滚动平均值就会显示为零。不为零的值是正确的,但我希望有一个连续的滚动平均值而不是有差距。
enter image description here
这是我的代码:

=VAR Interval = -14
VAR FilteredDate = LASTDATE(FactTable[Date])
VAR DateRange = DATESINPERIOD(
'Calendar'[DateKey], FilteredDate, Interval, DAY)

VAR ConsumptionTotal = CALCULATE(
SUM( FactTable[Consumption Qty] ),
DateRange )

VAR DaysTotal = CALCULATE(
DISTINCTCOUNT('Calendar'[DateKey]),
DateRange)

RETURN

ConsumptionTotal / DaysTotal
我认为正在发生的是,从数据透视表中过滤对象(上例中的 1804)正在阻止 DateRange 变量将 FactTable 正确过滤到我想要的范围内的日期中,因为当消耗量为零时它会不将完整的日期范围返回给 SUM() 。
我已经尝试了所有我能想到的方法,但是每当我测试 ALL()、ALLSELECTED() 等以尝试停止对 DateRange 的过滤时,我都会遇到错误。我对 DAX 很陌生,所以我确信我缺少一些简单的东西。过滤器的范围让我很困惑。

最佳答案

解决了。

=VAR Interval = -14
VAR FilteredDate = CALCULATE(
LASTDATE(FactTable[Date]),
ALL(Index),
ISBLANK(FactTable[Consumption Qty]) = FALSE
)

VAR DateRange = DATESINPERIOD(
'Calendar'[DateKey], FilteredDate, Interval, DAY)

VAR ConsumptionTotal = CALCULATE(
SUM( FactTable[Consumption Qty] ),
DateRange )

VAR DaysTotal = CALCULATE(
DISTINCTCOUNT('Calendar'[DateKey]),
DateRange)

RETURN

ConsumptionTotal / DaysTotal
我学到了宝贵的一课。过滤器上下文是在索引表中过滤的(我最初没有提到它,因为我认为它不重要)。然后该过滤器向下传播到我试图删除过滤器的 FactTable。我似乎需要在被过滤的原始表中删除过滤,否则您最终会尝试使用已过滤的值。
所做的更改是对 FilteredDate 变量,我们将 ALL(Index) 添加到 CALCULATE() 函数以阻止任何过滤器应用于索引表,这是我们最终过滤 FactTable[VPC] 列的地方不希望它成为。之后,我能够在 FilteredDate 变量中添加第二个过滤器,以确保在确定开始每个滚动平均值的第一天时,只计算有一些消耗的天数。
回想起来,在充分解释问题方面,我做得不够好。

关于excel - 如何阻止数据透视表过滤破坏我的 14 天滚动平均度量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63947304/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com