formula - 在 Tableau 中,如何找到一组数字的最大值与最大值之后的数字的平均值之间的差异?
问题描述
我有一个 Tableau 表,如下所示:
我正在尝试创建一个字段,该字段将为每个零件号返回一个值。该值应该是 5 周的最大“数量”并减去最大“数量”周后 n 周的平均“数量”。
例如:对于 A 部分,最大“数量”为 6。最大值后三周的“数量”平均值为 2,2,1 为 1.7。所以我在这里寻找的数字是 5-1.7,即 3.3。
所以最终的解决方案看起来像这样:
B 为 0,因为最大“数量”为 5,而在任何 5 之后取的平均“数量”为 5,因此差异为 0。
D 为 0,因为第 6 周的最大“数量”为 50,之后没有值。
解决方案
我们将从设置舞台开始:
然后,我们将一步一步地进行。
零件最大数量
MAX({ 固定 [部分]: MAX([数量]) })
此计算捕获每个零件的最大数量。
最大的一周
IF([按零件的最大数量] = SUM([数量])) THEN MIN([周]) END
此计算返回最大值等于该周数量的周。
最早的最大周
WINDOW_MIN([最大周数])
现在我们需要创建一个表计算来填充每个部分的所有行,其中包含与最大值匹配的最早周。
您需要编辑表格计算以匹配这些设置。
如果您已按照上述步骤操作,您应该会看到这一点。
在最大数量的最早一周之后
ATTR([Week]) > [Earliest Week of Max]
现在我们需要为 Max Qty 第一周之后的那几周创建一个标志。
请注意,您可能需要编辑此表计算以匹配上一个
最早最大周后的平均数量
WINDOW_AVG(IF([在最早的一周之后?]) THEN SUM([Qty]) END)
这将在达到最大数量的前一周之后平均数量。
对于此嵌套表计算,必须设置两个计算。
如果您一直在关注,您会看到这一点。
你的幻数
[按零件的最大数量] - [最早最大周后的平均数量]
现在只需减去我们的计算即可。
不要忘记设置表格计算
- 隐藏您不想看到的内容。
我们将使用此计算来帮助我们:
FIRST()
将该表计算放在过滤器架上并像我们一样进行编辑。然后将 FIRST 过滤器调整为 0。
现在您只会看到每个部分的一行。
我们可以隐藏周标题。
并删除除数字之外的所有度量。
显然,这里发生了很多事情,但这会让你得到你所追求的。希望这会有所帮助。快乐的试镜!