计算跨年的滚动平均值,同时显示按年拆分的数据
Compute rolling average across years while displaying data split by year
dashboard in the linked workbook 显示 table,顶部按年份划分销售额。下面是一个 table,其中包含过去 4 周的滚动平均值,包括当前。如果没有足够的数据点,它将设置为显示 NULL。我希望它根据当前周和 2017 年底后的整整 3 周计算 2018 年 1 月的第一个值。将这一概念向前推进,从 2018 年开始的所有 NULL 都将被消除。 2017 年前 5 周的 NULL 将是唯一的 NULL 值。即使第 53 周不包含 7 天,也应始终计算完整的 4 周(28 天)的平均值。
如何编写计算来实现上述内容?
我试过将 WINDOW_AVG 函数放在 LOD 中,但这是不允许的。此外,我还尝试过在 WINDOW_AVG.
中使用 FIXED 甚至 FIXED
这是我的尝试之一:
{FIXED [Week_int]:
WINDOW_AVG(SUM([Sales]), -4, 0)
}
它 returns 此错误:“错误:详细级别表达式不能包含 table 计算或 ATTR 函数”
这是数据结构。它包括每天的销售额的一个值。
基本上,我通过创建日期(从 1-1-2017 到 2-2-2021)在 Excel 中创建了一个虚拟数据,并根据这些日期填充一些随机值 (unif dist *5000)。
我在您的屏幕截图中将周[日期]添加到列,将年[日期]添加到行。我在文本标记卡上添加了 sum(value)。
之后,我添加了table 计算 --> 移动平均线 --> 编辑它为前 4 个值,下一个 0 个值,(如果要包含当前记录,请检查当前值),然后检查 Null如果没有足够的值。 (您的要求)。 --> 单击计算使用 -特定维度 更改下面字段的顺序 - 将年拖到周上方 (table across then down 也会创建相同的视图)
您应该能够获得所需的视图。
关于您对一周中天数的查询,如果您选择了日期部分,Tableau 会自动满足它。
编辑 我在 Excel 中验证了这一点,该方法工作正常。
看,Excel
中前 28 个值的平均值
和内置视图 tableau:
dashboard in the linked workbook 显示 table,顶部按年份划分销售额。下面是一个 table,其中包含过去 4 周的滚动平均值,包括当前。如果没有足够的数据点,它将设置为显示 NULL。我希望它根据当前周和 2017 年底后的整整 3 周计算 2018 年 1 月的第一个值。将这一概念向前推进,从 2018 年开始的所有 NULL 都将被消除。 2017 年前 5 周的 NULL 将是唯一的 NULL 值。即使第 53 周不包含 7 天,也应始终计算完整的 4 周(28 天)的平均值。
如何编写计算来实现上述内容?
我试过将 WINDOW_AVG 函数放在 LOD 中,但这是不允许的。此外,我还尝试过在 WINDOW_AVG.
中使用 FIXED 甚至 FIXED这是我的尝试之一:
{FIXED [Week_int]:
WINDOW_AVG(SUM([Sales]), -4, 0)
}
它 returns 此错误:“错误:详细级别表达式不能包含 table 计算或 ATTR 函数”
这是数据结构。它包括每天的销售额的一个值。
基本上,我通过创建日期(从 1-1-2017 到 2-2-2021)在 Excel 中创建了一个虚拟数据,并根据这些日期填充一些随机值 (unif dist *5000)。
我在您的屏幕截图中将周[日期]添加到列,将年[日期]添加到行。我在文本标记卡上添加了 sum(value)。
之后,我添加了table 计算 --> 移动平均线 --> 编辑它为前 4 个值,下一个 0 个值,(如果要包含当前记录,请检查当前值),然后检查 Null如果没有足够的值。 (您的要求)。 --> 单击计算使用 -特定维度 更改下面字段的顺序 - 将年拖到周上方 (table across then down 也会创建相同的视图)
您应该能够获得所需的视图。
关于您对一周中天数的查询,如果您选择了日期部分,Tableau 会自动满足它。
编辑 我在 Excel 中验证了这一点,该方法工作正常。
看,Excel
中前 28 个值的平均值和内置视图 tableau: