【问题标题】:Difference between two values - same Dimension, same Measure两个值之间的差异 - 相同的维度,相同的度量
【发布时间】:2018-10-01 23:01:50
【问题描述】:

从上图中可以看出,我正在尝试添加新列并计算 =2014-2017 之间的差异。

有什么办法可以做到这一点,因为 Tableau 的“表格计算”选项对我不起作用。

【问题讨论】:

  • 您似乎正在尝试使 Tableau 像 Excel 一样运行。 Excel 允许您简单地添加带有公式的列,就像您希望做的那样。不过,Tableau 不只是添加列。是否要求所有 4 年的销售额也显示差异,或者您只是想查看 2014 年和 2017 年之间的差异?
  • 我想查看所有 4 年的销售额以及上图所示最后一列旁边显示的差异
  • @santhosha,我想我明白你的需要,请看我的回答

标签: tableau-api


【解决方案1】:

用表格计算找出第一期和最后一期之间的差异:

首先您需要获取最小年份值(我将字段称为“Min Year Select”):

IF DATETRUNC('year',[Order Date]) = 
 {FIXED: MIN(DATETRUNC('year',[Order Date]))}
   THEN 1 END

上面名为 Min Year Select 的字段表示,如果订单日期的年份是您日期范围内的最小年份,它应该返回 1

现在我们正在标记最小的年份,我们可以创建一个字段来获取值(我称之为“Min Year Segment”):

IF SUM([Min Year Select]) >= 1 THEN [Sales] END

这里我们说如果年份被标记为最小的(按照我们之前创建的 calc 字段分类),那么获取值

但在我们比较这两个值之前,您必须计算出最小年份和当前年份之间的时间段数,以便差异计算查找字段比较正确的值(我将其称为“数字年份”范围"):

{FIXED [Segment]: COUNTD(DATETRUNC('year',[Order Date]))}

我们正在做的是在类别级别(段)修复查询,将其视为从您的报告中删除日期药丸,然后执行计算。这是 COUNT DISTINCT 年。所以如果一个段有 2011,2012,2013 的数据;然后查询返回 3

我们现在可以得到您的最新分段和最小分段之间的差异(称为:“与第一个最后一个分段的差异”):

[Segment] - 
LOOKUP([Min Year Segment],
   -1*(Number Years in Range)-1)

首先,我们获取每个细分市场第一年的销售额(对于所有非第一年,Min Year Segment 将为空,因此我们需要通过向后追溯我们范围内的年数来查找第一个:

我们做 -1 * 因为我们希望查找向后查找,然后我们添加 ("Number Years in Range" - 1) 因为我们想要查找具有最早数据的时期。我们做减一,所以我们在您的数据集中排除了当前年份/最近一年

这要消化的很多,我觉得用图片来呈现也更容易:

这里我们计算第一个月和上个月的差,用上个月的值

如果这有帮助或您还有其他问题,请对我的回答投票/让我知道

【讨论】:

  • 您可能需要将数据拆分为不同的报告,一份用于差异,一份用于普通表格。然后在仪表板中,将差异报告放在总和(段)的右侧。使用适当的格式,用户应该不会注意到它实际上是 2 个报告!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
相关资源
最近更新 更多