我在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个值)代表维度。
答案 0 :(得分: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 Analysis部分,格式为{set_identifier<set_modifier>}
。回到我们原来的表达:
{
:设置分析表达式始终以{
开头。 $
:设置标识符:此符号表示QlikView文档中的当前选择。这意味着任何后续限制都将应用于现有选择之上。也可以使用1
,这表示文档中的完整数据集,无论选择如何。<
:开始设置修饰符。Category={A,B,C}
:我们希望对其进行限制的维度。所需的值包含在花括号中,在这种情况下,它们一起进行OR运算。>
:设置修饰符的结尾。}
:设定分析表达式的结尾。Set Analysis可能非常复杂,我只是在这里略读,我肯定会建议在已安装的帮助文件和参考手册(PDF)中检查QlikView主题“Set Analysis”。
最后,QlikView中的Set Analysis非常强大,但应该谨慎使用,因为它可能会导致一些性能问题。在这种情况下,因为这是一个相当简单的表达,所以表现应该是合理的。
答案 1 :(得分:0)
吁!一年之后,但你正在寻找的东西是附近的东西:
转到尺寸表,然后选择Category
尺寸,然后点击Edit Dimesnion
按钮
你可以使用这样的东西:
= If(Match(Category, 'a', 'b', 'c'), Category, Null())
这将使对象仅显示a
b
和c
类别,以及Null值的行。
最重要的是检查维度表上的“空值时抑制值”选项。
c ya around
答案 2 :(得分:0)
只是想到另一种解决方案,这可能对寻找这个的人有用。
如何创建包含所需类别的书签,然后仅在该书签的上下文中设置要评估的表达式?
(稍后会对此进行扩展,但请看一下如何通过书签影响集合分析)