Tableau计算当前表视图的第一列和最后一列之间的差异

时间:2016-01-07 20:09:54

标签: tableau calculated-columns

我需要执行类似于以下方案的任务。我们说我有一个包含10个产品的文件' 2000年至2014年的销售额,以及我们的内部产品等级(1-10)。因此,数据文件有4个变量,产品名称,内部排名,销售额,年份,例如product1:

  1. product1,5,1000,2000
  2. product1,5,2000,2001
  3. product1,5,3000,2002
  4. ...
  5. 有些产品的头几年缺少销售数据。

    我现在在Tableau工作表上的表格连续显示每个产品,然后是内部排名,每年的销售额从2000年到2014年,以及每行/产品的15年平均值。例如,对于product1:

    1. product1,5,1000,2000,3000,(2003sales ... 2014sales),平均销售2000-2014
    2. 我想添加另一个列,显示第一个可用销售年份和2014年之间的差异,例如,product1具有完整数据,因此该列将是2014年和2000年之间的销售差异。产品2销售始于2002年,因此本专栏将是2014年和2002年之间的差异。

      我猜有些LOD代码可以解决这个问题吗?有人可以帮忙吗?标准表计算没有用,或者我可能还没弄清楚。非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

  1. 使用以下公式创建4个计算字段[2000][2001][2013][2014]

    IF [year] = 2000 THEN 
    [sales] 
    END
    

    为每个字段替换2013年或2014年的年份

  2. 创建另外4个计算字段[Sales2000][Sales2001][Sales2013][Sales2014]

    {fixed ProductName: sum([Sales2000])}
    

    再次相应更改年份

  3. 为差异[diff2000-2014][diff2013-2014]创建计算字段:

    IF Isnull([Sales2000]) THEN 
    [Sales2014] - [Sales2001] 
    ELSE 
    [Sales2014] - [Sales2000] 
    END 
    

    [Sales2014] - [Sales2013]
    
  4. 所以你做的是

    1. 您提取所需年份的值

    2. 您可以使用产品

    3. 将它们分配给所有行
    4. 你计算了你想要的差异

    5. 如果您现在需要它在工作表中,请拖动columsn书架中的[diff2013-2014]字段并选择MIN(),MAX()或AVG(),因为您不想添加所有的差异。