Tableau 8.2 - 如何从表上的%差值获得最大值和最小值?

时间:2014-10-15 18:57:29

标签: tableau

我在从包含%差异值的表中获取最大%和最小%时遇到问题。

年份----- ----------甲---------乙Ç--------- --------- d Max%---- Max Type ---- Min%---- Min Type

2012

2013 4.30 --- ---%4.42%4.34 --- ---%4.38%----的 4.42%---------乙------- ---- 4.30%--------- A

上表显示了与上一年度相比的销售额差异。因此,2012年没有显示%(因为2011年没有)。我使用表格计算来计算%差异,即"百分比差异来自",计算使用"表格(向下)"和"以前"。

最后四列是我遇到的麻烦。我想获得max%和min%以及相应的类型。我并没有尝试将四列添加到现有表中,而是为了获得正确的结果,因为我的最终目标是在仪表板上显示结果,即在我的仪表板上,我想显示最高%和相应的类型;类似地,最低%及其相应类型。例如:在我的仪表板上,我想显示:

最高%和类型:4.42%B

最低%和类型:4.30%A

所以,我需要有正确的公式来获得max%和min%及其类型。这就是我所做的:

我尝试使用 WINDOW_MAX WINDOW_MIN 来显示表格中的最大%和最小值,但得到了时髦的错误结果。

1)我首先得到计算与#34;自定义"的差异的公式。按钮来自"编辑表计算" SUM([Sales])的窗口:(ZN(SUM([Sales])) - LOOKUP(ZN(SUM([Sales])), - 1))/ ABS(LOOKUP(ZN(SUM([Sales])) ,-1)) 然后我创建了上面公式的计算字段。我将计算字段命名为" Percent-Diff"。

2)我使用以下公式创建了另一个计算字段(名为" Max%Difference"):WINDOW_MAX([Percent-Diff])。但它显示出奇怪的结果。见下图。我不知道为什么它分别给我2012年和2013年的2.78%和2.91%。 2012年和2013年应分别为0%和4.42%。有些事情是不正确的。

如果它只是SUM([Sales])而不是%差异,那么我会得到使用公式WINDOW_MAX(SUM([Sales])显示最大销售额的正确结果。

3)我也不知道如何获得相应的类型。我尝试使用公式:IF [Max%Difference] = [Percent-Diff] THEN ATTR([Product Type])。但它返回:

NULL

我不确定公式是否正确。结果看起来是正确的(即" B"是正确的),除了它还显示一个我不知道原因的NULL值。我认为这是因为我没有在我的IF公式中包含ELSE部分?但为什么NULL值显示为第一个值?我希望公式只返回一个值," B"。那么,如何只展示" B"?

我已经在tableau论坛中发布了两次问题,但截至目前,没有人回答我的问题。我相信我的公式不正确。因此,如果此处的任何人都可以更正公式以从%差值获得最大%和最小%并且还获得相应的类型,那么非常感谢它。万分感谢!

1 个答案:

答案 0 :(得分:2)

很难说不知道你的数据库是怎样的(因为你没有明确地提出它,但我可以尝试根据你留在帖子上的线索推断)。但是我可以使用样本 - 咖啡连锁数据库重现像你说的那样,并且它运作良好,按产品计算同比销售额增加,然后再计算window_max。

您可能缺少的是分区。我建议避免使用Table或Pane在更复杂的情况下创建分区(因为它只适用于特定的字段排列),而是使用维度对其进行分区。

因此,您的[Percent-Diff]字段应使用[Date]进行计算,并且[Max%Difference]应使用[Product Type]进行计算。重要的是,对于[Max%Difference],当您进入编辑表计算时,您还必须为[Percent-Diff]选择Compute使用(您可以在窗口顶部选择)

找到哪种类型是最大值(或最小值)的公式也是正确的(并且应该只考虑分区)。然而,很难获得您期望的确切输出。

我要做的是创建2个电子表格(稍后将它们合并到仪表板中)。

第一个是你已经得到的(每个产品[百分比差异]

第二个我将你的公式(3)更改为[Max%Difference] = [Percent-Diff],并将其用作过滤器(仅过滤为真)。我会将日期和产品拖到工作表上(如果你想在列,行或细节上选择它),我可以用它们来分区表。并拖动[Max%Difference]进行可视化。 这样,您只会看到最大的产品,以及最大的产品数量

希望有所帮助