0

我对 QlikSense 有点陌生,但我已经掌握了它。集合分析可能是我的弱点,无论我读了多少,我往往会在几个小时内忘记一切。另外,指南没有很好地解释如何处理比他们认为复杂的情况(又名 1 级复杂性)更复杂/“棘手”的情况(即二级或三级复杂性)。

我经历了这个这个这个,仍然没有骰子。我唯一要做的就是把我的头撞到墙上,看看是否有什么震动。

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

目标:

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

背景:

//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 - 如果用户从上面选择一个值,则获取最大值,因为他们可以选择多个;否则使用默认值

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]))";

//表达式 - 有效!- [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])

接受有关解决此问题的更好方法的建议。

4

1 回答 1

0

=总和({

"=[Size] >= $(vMinSOS) AND [Size] - ((([Heads] * IF([SPD] >= $(vMaxSUSPD), $(vMaxSUSPD), [SPD])) / $(vSUR) ) + ([大小] * $(vSOR))) >= 0"

}>} [大小])

于 2018-01-05T01:42:15.703 回答