计算表格中每一行的价格差异

时间:2018-10-08 15:41:40

标签: tableau

我有一个报告,返回的数据类似

项目|价格差异

A | 1.00 | 0

B | 2.00 | 1.00

C | 0.50 | -0.50

我有一个允许选择商品的参数,我想知道如何为将根据用户选择重新计算的差额写出公式:即如果使用会选择商品B,则所有价格应计算为商品之间的差额。当前行的价格和项目B的价格。

如果用户选择项目B,则预期输出

A | 1.00 | -1.00

B | 2.00 | 0.00

C | 0.50 | -1.50

1 个答案:

答案 0 :(得分:1)

这真是个混蛋,但我知道了:

假设您已经有参数,我们需要一个具有逻辑的字段:

“如果类别与在参数中选择的类别相同,则获取价格”

此处F1是您的类别,而F1参数是基于此字段的参数

"Get parameter select price" = IF [F1 Parameter] = [F1] THEN [Price] END

然后,我们想将此字段的值放在每一行中(这样我们就可以计算出它与类别价格之间的差额)

为此,我们使用了FIXED计算和MAX。由于IF语句仅输出所选参数行的价格,其余为null,因此使用MAX会将此值放在每一行中:

"Parameter Selected Value for all rows" =    {FIXED: MAX(IF [F1 Parameter] = [F1] THEN [Price] END)}

然后您可以做到以下几点:

"Difference" = [Price] - [Parameter Selected Value for all rows]

以下是用于演示的表格:

enter image description here

很高兴进一步解释您的需要


如果您希望所选类别的差异列中具有空值,因为它始终为零,则可以将“差异”更改为:

IF [F1 Parameter] = [F1] THEN NULL ELSE Price - [Parameter Selected Value for all rows] END

显示此图片:

enter image description here