我有一个报告,返回的数据类似
项目|价格差异
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
答案 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]
以下是用于演示的表格:
很高兴进一步解释您的需要
如果您希望所选类别的差异列中具有空值,因为它始终为零,则可以将“差异”更改为:
IF [F1 Parameter] = [F1] THEN NULL ELSE Price - [Parameter Selected Value for all rows] END
显示此图片: