QLikVIew引用另一个计算维度中的计算维度

时间:2014-07-09 08:41:26

标签: charts reference scripting qlikview

是否可以在数据透视表中引用另一个计算维度中的计算维度? ValueList()可以用于此用法,它的适当语法是什么?

我无法使用此脚本,也无法创建新变量。

我无法复制第二个计算维度的表达式中第一个计算维度的整个表达式,因为两个表达式都非常昂贵(pick(match(...))。

由于

1 个答案:

答案 0 :(得分:2)

不幸的是,没有明显的方法可以引用其他计算维度中的其他计算维度。正如您所提到的,您仅限于创建表达式解决方案,那么在这种情况下,我对使用变量的其他建议不适用。

因此,您似乎必须重复计算的尺寸。

我想说如果你真的必须使用表达式解决方案,那么可能值得尽可能地优化你的计算维度,这样当你必须在你的文档中重复它时,它应该具有可忽略不计的额外影响。性能

ValueList对于生成维度值非常有用,但我认为它不会对您有所帮助,因为您仍然无法使用它来引用其他计算维度。它实际上是为生成计算维度的值而设计的,具有以下语法:

ValueList(value {, value })

例如,我可以使用:

=ValueList('Category A','Category B','Category C')

如果我把它放入数据透视表中,我会得到:

QlikView Table demonstration of ValueList

如您所见,ValueList为每个条目重复表达式的值。但是,ValueList有一个很好的技巧,这意味着你也可以在表达式中使用它来显示不同的值,具体取决于它出现的维度值。

例如,如果我使用以下内容作为我的表格表达式:

=if(ValueList('Category A','Category B','Category C')='Category A',
    sum(Value * 10),
    if(ValueList('Category A','Category B','Category C')='Category B',
        sum(Value * 100),
        sum(Value * 1000)
      )
    )

在这里你可以看到我添加了一个测试,看看我们是否属于" A类和#34;然后显示值sum(Value * 10),然后显示"类别B",sum(Value * 100)等等,这会导致:

QlikView Table demonstration of ValueList in the expression