2017-10-08 38 views
0

我试图在存在数字的列上运行AVG,并且该数字大于0,列中混合了数据,大多数字段都会有一个数字但只有少量信用结果回来NA或DNR。Qlik Sense IfNum与If语句结合使用

下面的表达式检查为OK,但不返回任何值。我知道AVG表达式正常工作,因为我在干净的数据上使用了它。我相信错误是从ISNUM

=if(IsNum(Credit) = '-1', Avg({< [Credit] = {"<>0"} >} [Credit]), (Credit)) 
+0

是否需要'r'标签? – akrun

+0

是的,为什么r标签? – jsb

回答

1

也许是更好地创建附加列,即将在你的脚本,表示如果Credit值数与否。

if(isNum(Credit), 1, 0) as isNumberCredit

这是你的表达后变得简单。

avg({< isNumberCredit = {1} >} Credit)

OR

avg(Credit * isNumberCredit)

使用这种方法会减少在大数据集的性能。

+0

我会在哪里加载if语句? – thebusiness11

+0

在加载数据时的加载脚本 –

+0

这就是我所尝试的,但重新调整了一堆错误 '出现以下错误: 意外的标记:','预期的'''','OPERATOR_PLUS','OPERATOR_MINUS ','OPERATOR_MULTIPLICATION','OPERATOR_DIVISION','OPERATOR_STRING_CONCAT','like',... 此处的错误发生: if(isNum(Credit)>>>>>>,<<<<<< 1,0 )asNumberCredit' – thebusiness11