【发布时间】:2017-04-17 16:27:57
【问题描述】:
在查看 StackOverflow 和 PowerBI 论坛上的几篇帖子后,我仍然无法弄清楚如何根据给定时间段计算滚动平均值——在我的例子中,是 30 天滚动平均。
我看到的大多数帖子都提倡与此相同或非常相似的内容:
Rolling Sum :=
CALCULATE (
[Sales],
FILTER (
ALL ( Sales ),
[Date]
>= MAX ( Sales[Date] ) - 365
&& [Date] <= MAX ( Sales[Date] )
)
)
(代码取自this post)
...然而,我似乎无法获得正确的值。
就我而言,我有以下几点:
- 给定贷款的“截止日期”(列)
- 贷款数量(衡量)
- 关闭长度(列)- 关闭贷款的时间长度(以天为单位)
我想计算的是任何一天的滚动 30 天平均值。我编写了以下代码:
Rolling Average =
CALCULATE (
SUM(Query1[Closing_Length])/[Loan Count],
FILTER (
ALL ( Query1 ),
[Closing Date].[Date]
>= MAX ( Query1[Closing Date] ) - 30
&& [Closing Date] <= MAX ( Query1[Closing Date] )
)
)
为了检查结果,我使用了一个可视化过滤器来检查一个月的数据,结果如下:
注意底部的总计行;在此特定期间,有 102 笔贷款,总共需要 3922 天才能完成。我想计算的平均值是 3922/102,应该等于大约 38.45 天。相反,我们看到的是 42。
我该如何解决这个问题?
【问题讨论】:
-
@KrystianSakowski 不,该帖子不适用于滚动的 30 天期限。它利用了
SAMEPERIODLASTYEAR函数,并且在 30 天的滚动周期内,您不能整天使用“同一周期”的任何函数而不会出错。 -
您能发布此成员 Query1[CTC Days] 的表达式或数据吗?
-
@KrystianSakowski 抱歉,它应该是“Closing_Length” - 现在已修复。谢谢!