Tableau api 计算跨年份的滚动平均值,同时显示按年份划分的数据

Tableau api 计算跨年份的滚动平均值,同时显示按年份划分的数据,tableau-api,visualization,Tableau Api,Visualization,显示了一个顶部按年份划分的销售表。下表列出了过去4周的滚动平均值,包括当前的平均值。如果没有足够的数据点,则设置为显示NULL。我希望it部门根据本周和2017年底后的3个完整周计算2018年1月的第一个价值。将这一理念向前推进,2018年起将消除所有空白。2017年前5周的空值将是唯一的空值。即使第53周不包含7天,也应始终在整整4周(28天)内计算平均值 如何编写计算以实现上述目标 我曾尝试将WINDOW_AVG函数放入LOD中,但这是不允许的。此外,我还尝试使用FIXED甚至FIXED i

显示了一个顶部按年份划分的销售表。下表列出了过去4周的滚动平均值,包括当前的平均值。如果没有足够的数据点,则设置为显示NULL。我希望it部门根据本周和2017年底后的3个完整周计算2018年1月的第一个价值。将这一理念向前推进,2018年起将消除所有空白。2017年前5周的空值将是唯一的空值。即使第53周不包含7天,也应始终在整整4周(28天)内计算平均值

如何编写计算以实现上述目标

我曾尝试将WINDOW_AVG函数放入LOD中,但这是不允许的。此外,我还尝试使用FIXED甚至FIXED inside WINDOW_AVG

以下是我的一个尝试:

{FIXED  [Week_int]:
WINDOW_AVG(SUM([Sales]), -4, 0)
}
它返回此错误:“错误:详细级别表达式不能包含表计算或ATTR函数”

这是数据结构。它包括每天的销售额。

基本上,我通过创建日期(从2017年1月1日到2021年2月2日)并填充一些随机值(unif dist*5000),在Excel中创建了一个虚拟数据

我将周[日期]添加到列中,将年[日期]添加到行中,如屏幕截图中所示。我在文本标记卡上加了总和(值)

此后,我添加了表计算-->移动平均-->为前4个值编辑它,然后为下0个值编辑它(如果要包括当前记录,请检查当前值),如果没有足够的值,请检查Null。(您的要求)。-->单击“使用-特定维度计算”更改下面字段的顺序-将年份拖到周以上(表格从上到下也将创建相同的视图)

您应该能够获得所需的视图

关于您对一周天数的查询,如果您选择了datepart,Tableau会自动满足您的查询

编辑我在Excel中验证了这一点,该方法工作正常

请参见Excel中前28个值的平均值

以及内置于画面中的视图:


你的意思是说,除了第一年,即2017年,第1到第4周不应该是空白的吗?@AnilGoyal,观察得很好。我写道,2017年前5周将是唯一的空值。我同意,凭直觉,人们可能只会期待头4周。但是,第1周不包含7天,因此它被排除在移动平均线之外。这实际上是我的首选行为,在2017年第一次报告的价值中只包含整整一周。对于其他年份,根据前4个完整的星期或28天(即使跨越一年),如上所述,第1周应该已经有一个值。请分享您的数据结构或告诉/确认您是否有日期度量?@AnilGoyal,是的,有日期度量。你的解决方案看起来很完美。我现在就把我修改过的仪表板上传到你的答案上。