2017-10-08 595 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