【问题标题】:Tableau 8.2 - how to get max and min from % difference values on table?Tableau 8.2 - 如何从表上的百分比差异值中获取最大值和最小值?
【发布时间】:2014-12-10 23:20:53
【问题描述】:

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

年份-----A---------B---------C---------D--------- Max %----Max Type----Min %----Min 类型

2012

2013---4.30%---4.42%---4.34%---4.38%----4.42%---------B------- ----4.30%---------A

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

最后四列是我遇到的麻烦。我想获得最大 % 和最小 % 以及相应的类型。我不是试图将四列添加到现有表中,而是为了获得正确的结果,因为我的最终目标是在仪表板上显示该结果,即在我的仪表板上,我想显示最高的 % 及其对应类型;同样最低的 % 及其相应的类型。例如:在我的仪表板上,我想显示:

最高百分比和类型:4.42% B

最低百分比和类型:4.30% A

所以,我需要有正确的公式来获得最大 % 和最小 % 及其类型。这些是我所做的:

我尝试使用 WINDOW_MAXWINDOW_MIN 在表格上显示最大 % 和最小 %,但得到了奇怪的错误结果。

1) 我首先从 SUM([Sales]) 的“编辑表计算”窗口中的“自定义”按钮计算百分比差异的公式:(ZN(SUM([Sales])) - LOOKUP(ZN (SUM([Sales])), -1)) / ABS(LOOKUP(ZN(SUM([Sales])), -1)) 然后我创建了上述公式的计算字段。我将计算字段命名为“Percent-Diff”。

2) 我使用公式 WINDOW_MAX([Percent-Diff]) 创建了另一个计算字段(名为“Max % Difference”)。但它显示出奇怪的结果。见下图。我不知道为什么它在 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])。但它返回:

B

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

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

【问题讨论】:

  • 问题太长,请准确并提供示例输入和所需输出。

标签: tableau-api


【解决方案1】:

很难说不知道您的数据库是什么样子(因为您没有明确展示它,但我可以尝试根据您在帖子中留下的线索进行推断)。但是我可以使用 Sample - Coffee Chain Database 重现您所说的内容,并且效果很好,计算了产品的同比销售额增长,然后计算了 window_max。

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

因此,您的 [Percent-Diff] 字段应使用 [Date] 计算,而您的 [Max % Difference] 应使用 [Product Type] 计算。重要的是,对于 [Max % Difference],当您转到 Edit Table Calculation 时,您还必须选择 Compute using for [Percent-Diff](您可以在窗口顶部选择)

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

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

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

第二个我会将您的公式 (3) 更改为 [Max % Difference] = [Percent-Diff],并将其用作过滤器(仅过滤 true)。我会将 Date 和 Product 都拖到工作表中(您可以选择是否要在列、行或仅详细信息上使用它),以便我可以使用它们对表进行分区。并拖动 [Max % Difference] 进行可视化。 这样您就只会看到最大的产品,以及最大的数量。

希望对你有帮助

【讨论】:

  • 嗨 Inox,感谢您阅读我的问题并提供建议。我无法在帖子中附加示例工作簿(我使用了咖啡链数据),因为我刚刚注册并且不允许附加文件。我必须获得一些积分(我相信)才能附加文件。我会采纳你的建议并继续努力。再次感谢您抽出宝贵时间提供建议。顺便说一句,我在 tableau 论坛上发布了同样的问题(包括附加的工作簿):community.tableausoftware.com/thread/150150
  • 您本可以首先提供指向该链接的链接 =D。这正是我想的那样。只需选择 Max % Difference,然后转到 Edit Table Calculation。在计算字段上,选择百分比差异,然后选择使用日期计算。瞧。在这里工作
  • 嗨 Inox,是的,它现在可以工作了!我犯的一个大错误是我没有在“编辑表计算”菜单下检查每个计算字段的“计算使用”。我正确选择了最大百分比差异的“计算使用”,但我没有单击“计算字段”的下拉箭头并选择另一个字段,即百分比差异。百分比差异默认为跨表!这就是为什么我得到了时髦的最大百分比差异结果。再次感谢您提供我忽略的提示。
  • 所以,通过过滤,我只需要创建两张表,一张用于最大百分比,另一张用于最小百分比。然后将其放在仪表板上以显示 Max % 以及相应的类型以及 Min % 以及相应的类型。再次感谢您的帮助。
  • 顺便说一句,我不能投票,因为它需要我有 15 个声望?
猜你喜欢
  • 2020-11-20
  • 1970-01-01
  • 2020-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-30
  • 2012-10-09
  • 1970-01-01
相关资源
最近更新 更多