Tableau - 计算字段/分组/自定义Dim

时间:2014-04-04 03:11:52

标签: business-intelligence tableau

的Tableau:

这看起来很简单,但我用完了其他系统中常用的技巧。 我想要一个方差列。基本上添加一个成员' Variance'法案/计划维度只包含成员'实际'和'计划' 我进入了数据结构和报告的位置,如下所示:

             Actual    | Plan

利润衡量 措施2
措施3
等等

目标是建立一个Variance列(计算而不是实际/计划维度的一部分)

             Actual    | Plan  |   Variance

利润衡量 措施2
措施3

有些解决方案仅适用于一项措施,我已经研究过。 即,创建计算字段

Profit_Actual | Profit_Plan |方差

你把它放在列上,然后你得到一个我想要的网格......除了一个只有一个度量的网格。

如果我想在行上运行多个度量,则不起作用。基本上上面的解决方案只显示利润度量,而不是Measure 1_Actual,Measure 2_Plan等。

所以我尝试了一个技巧,我将3个计算的度量分组,即Profit_Actual | Profit_Plan | Profit_Variance为' Profit_Measure' 创建了一个参数列表 - ' Actual',' Plan'' Variance'

现在我可以通过在列上使用参数和“利润衡量”来实现我的目标。在行(所以我也可以在行上测量123_group等)。麻烦的是,我发现参数只是单选。只有当它能够同时显示自定义参数中的所有选项时,我才能解决我的问题。

关于如何实现我想要的Variance列的任何想法? 实际上将成员添加到维度/计算的fieds / tricks / workaround

谢谢 赞赏任何线索

Gemmo

2 个答案:

答案 0 :(得分:0)

好。首先,我很难理解您的数据是如何组织的,尝试更清楚(比如说数据库中的每个条目看起来如何,而不是Tableau中的特定视图如何)。

但我想我明白了。我猜你有一个条目集合,每个条目都有一些度量字段(利润等)和一个行动/计划字段,以确定该条目是实际值还是计划值。这是对的吗?

嗯,如果是这样的话,我很遗憾地说你必须计算每个维度的方差字段。想一想,原始数据集的结构如何。你认为你可以添加一个字段" Variance"代表每项措施的方差?好吧,你可以将值存储在一个字符串中,然后使用一些字符串函数将其收回,但它不是很实用。问题是每个条目都有很多度量,如果它只有1个度量,那么单个方差域就足够了。

因此,如果您可以重新组织数据,那么更容易上班的工作集(但是包含更多条目)的字段包括:度量,值,实际/计划。度量字段将有一个字符串,用于标识您在该条目中测量的内容。值将是表示实际度量的数字。实际/计划是一样的。例如:

测量值实际/计划 利润100实际

因此,当前模型中的每一行都将成为n个条目,其中n是您现在拥有的度量数。因此,在某种程度上更大的数据集,但更容易使用。考虑一下,现在您可以拥有一个计算字段,并使用一些表计算来计算该度量和/或实际/计划的差异。只需使用WINDOW_VAR,并将Measure和/或Actual / Plan放入分区。

表计算很棒,看看这个可以更好地理解它。 http://onlinehelp.tableausoftware.com/current/pro/online/en-us/help.htm#calculations_tablecalculations_understanding_addressing.html

答案 1 :(得分:0)

我通常喜欢让我的数据暂存,以便Actual是它自己的列,而Plan是它自己的列,它被输入到Tableau。它使计算变得更加容易。

如果您的数据存在名为" Actual / Plan"并且每一行都填充了" Actual"或"计划"还有另一个名为" Value"或"测量"如果填充了这些值,您可以强制Tableau将它们设为列,假设您无法或不会重新排列数据。

创建一个名为" Actual"的计算字段。使用以下计算:

IF [Actual/Plan] = 'Actual' THEN [Value] END

同样,创建一个名为"计划"的计算字段。使用以下计算:

IF [Actual/Plan] = 'Plan' THEN [Value] END

现在,您最终可以创建" Variance"和"方差%"计算(分别):

SUM([Actual]) - SUM([Plan])

[Variance] / SUM([Plan])