我对QlikSense有点新鲜,但我对它有所了解。 Set Analysis可能是我的弱点,无论我读多少,我都会在几小时内忘记一切。此外,指南并没有很好地解释如何处理比他们认为复杂(也称为1级复杂性)更复杂/“棘手”的情况(又称II级或III级复杂性)。
我经历了this,this和this,仍然没有骰子。我唯一要做的就是把头撞到墙上,看看是不是有什么事情发生了。
实际文件非常大且专有,所以不能在这里发布...所以如果你能给我一个想法并指出我正确的方向,我将不胜感激。
目标:
我有一个有效的表达式,但我需要以集合分析的形式。简单,对吧?
背景
// IN LOAD SCRIPT - 设置一些默认值
SET dMinSOS = 20000;
SET dMaxSUSPD = 225;
SET dSUR = 1;
SET dSOR = 0.3;
// IN LOAD SCRIPT - 生成一些自定义输入,以便用户可以选择值
FOR i = 1 to 20
LET counter = i*5000;
LOAD * INLINE [
Min. SOS
$(counter)
];
NEXT i
FOR i = 0 to 9
LET counter = i/10;
LOAD * INLINE [
SOR
$(counter)
];
NEXT i
FOR i = 1 to 30
LET counter = i/10;
LOAD * INLINE [
SUR
$(counter)
];
NEXT i
FOR i = 1 to 15
LET counter = i*25;
LOAD * INLINE [
Max. SUSPD
$(counter)
];
NEXT i
// IN LOAD SCRIPT - 如果用户从上面选择一个值,那么得到max,因为他们可以选择多个;否则使用默认值
SET vMinSOS = "IF(ISNULL([Min. SOS]), $(dMinSOS), MAX([Min. SOS]))";
SET vMaxSUSPD = "IF(ISNULL([Max. SUSPD]), $(dMaxSUSPD), MAX([Max. SUSPD]))";
SET vSUR = "IF(ISNULL([SUR]), $(dSUR), MAX([SUR]))";
SET vSOR = "IF(ISNULL([SOR]), $(dSOR), MAX([SOR]))";
// EXPRESSION - 有效! - [Size],[Heads],[SPD]是表中的直接字段,返回值1或0严格用于参考
=IF(
[Size] >= $(vMinSOS) AND
[Size] - ((([Heads] * IF([SPD] >= $(vMaxSUSPD), $(vMaxSUSPD), [SPD])) / $(vSUR)) + ([Size] * $(vSOR))) >= 0,
1, 0)
// SET ANALYSIS - 这需要修复 - 即复制上面表达式中的第二个条件 - 只显示上述两个条件都为真的结果
=SUM({<
[Size]={">=$(=$(vMinSOS))"},
[Size]={">= #### What goes here? #### "},
>}[Size])
向更好的解决方法提出建议。
答案 0 :(得分:0)
= SUM({
“= [大小]&gt; = $(vMinSOS)和[大小] - ((([Heads] * IF([SPD]&gt; = $(vMaxSUSPD),$(vMaxSUSPD),[ SPD]))/ $(vSUR))+([尺寸] * $(vSOR)))&gt; = 0“
}&gt;} [尺寸])