QlikSense - 集合分析 - 处理复杂性 - 算术,字段,变量,变量内的变量,大于等

时间:2018-01-04 15:57:22

标签: qliksense set-analysis

我对QlikSense有点新鲜,但我对它有所了解。 Set Analysis可能是我的弱点,无论我读多少,我都会在几小时内忘记一切。此外,指南并没有很好地解释如何处理比他们认为复杂(也称为1级复杂性)更复杂/“棘手”的情况(又称II级或III级复杂性)。

我经历了thisthisthis,仍然没有骰子。我唯一要做的就是把头撞到墙上,看看是不是有什么事情发生了。

实际文件非常大且专有,所以不能在这里发布...所以如果你能给我一个想法并指出我正确的方向,我将不胜感激。

目标:

我有一个有效的表达式,但我需要以集合分析的形式。简单,对吧?

背景

// 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])

向更好的解决方法提出建议。

1 个答案:

答案 0 :(得分:0)

= SUM({

“= [大小]&gt; = $(vMinSOS)和[大小] - ((([Heads] * IF([SPD]&gt; = $(vMaxSUSPD),$(vMaxSUSPD),[ SPD]))/ $(vSUR))+([尺寸] * $(vSOR)))&gt; = 0“

}&gt;} [尺寸])