我在QlikView中有一个数据透视表图表,该图表具有一个维度和一个表达式。维度是具有5个可能值的列:“ a”,“ b”,“ c”,“ d”,“ e”。

有没有一种方法可以将值限制为“ a”,“ b”和“ c”?

我宁愿从带有条件的图表属性中强制执行此操作,而不是尽可能从列表框中选择值。

非常感谢,I_saw_drones!我有一个问题。我根据类别定义了不同的表达式,如下所示:

IF( ([Category]) = 'A' , COUNT( {<[field1] = {'x','y'} >} [field2]), IF ([Category]) = 'B' , SUM( {<[field3] = {'z'} >} [field4]), IF (Category='C', ..., 0)))


在这种情况下,我应该在哪里添加$<Category={'A','B','C'}?到目前为止,我的表达式没有帮助,因为尽管我告诉QV为每个类别使用不同的公式/计算,但类别的整体(所有5个值)都代表维度。

最佳答案

一种可行的方法是使用QlikView的Set Analysis创建一个仅求和所需值的表达式。

对于此示例,我有一个非常简单的加载脚本:

LOAD * INLINE [
    Category, Value
    A, 1
    B, 2
    C, 3
    D, 4
    E, 5
];


然后,我将下面的数据透视表图表设置为仅对值求和的单个表达式:



我们需要做的就是修改表达式,以便它只对Category字段中的A,B和C求和。

然后,如果我使用QlikView的Set Analysis将表达式修改为以下内容:

=sum({$<Category={A,B,C}>} Value)


然后,我达到了期望的结果:



然后,这将我的数据透视表图表限制为仅显示Category的这三个值,而不必在列表框中进行选择。此表达式的形式还允许同时过滤其他维度(即,选择“累加”),因此我可以说,在“国家/地区”维度上进行过滤,而我对类别的限制仍然适用。

如何运作

让我们将表达式分开:

=sum({$<Category={A,B,C}>} Value)


在这里,您可以识别以前的原始格式(sum(Value)),但需要进行修改。部分{$<Category={A,B,C}>}是“设置分析”部分,其格式为:{set_identifier<set_modifier>}。回到我们的原始表达:


{:Set Analysis表达式始终以{开头。
$:设置标识符:此符号表示QlikView文档中的当前选择。这意味着任何后续限制都将应用在现有选择之上。也可以使用1,它表示文档中的完整数据集,与选择无关。
<:设置修饰符的开始。
Category={A,B,C}:我们希望限制的尺寸。所需的值包含在花括号内,在这种情况下,将它们进行“或”运算。
>:设置修饰符的结尾。
}:设置分析表达式的结尾。


Set Analysis可能非常复杂,这里我只涉及了一些问题,我绝对建议您在已安装的帮助文件和参考手册(PDF)中检查QlikView主题“ Set Analysis”。

最后,QlikView中的Set Analysis功能非常强大,但是应谨慎使用,因为它可能导致一些性能问题。在这种情况下,由于这是一个非常简单的表达式,因此性能应该是合理的。

关于qlikview - QlikView数据透视表图表中显示的极限尺寸值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26260062/

10-09 12:29