2017-10-08 4 views
0

Je tente d'exécuter un AVG sur une colonne où un nombre existe et ce nombre est supérieur à 0, la colonne a des données mélangées, la plupart des champs auront un nombre mais quelques résultats de crédit Revenez NA ou DNR.Qlik Sense IfNum combiné avec If Statement

L'expression suivante, vérifie OK mais ne renvoie aucune valeur. Je sais que l'expression AVG fonctionne correctement car je l'ai utilisée sur des données propres. Je crois que l'erreur provient de la ISNUM

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

est la balise 'r' nécessaire? – akrun

+0

Oui, pourquoi le tag r? – jsb

Répondre

1

Probablement est préférable de créer colonne supplémentaire, dans votre script, ce qui indique si la valeur Credit est le numéro ou non.

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

Après ce votre expression est devenu simple.

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

OU

avg(Credit * isNumberCredit)

Cette approche diminuera les performances dans les grandes séries de données.

+0

Où dois-je charger l'instruction if? – thebusiness11

+0

dans le script de chargement lorsque les données sont chargées –

+0

C'est ce que j'ai essayé mais j'ai renvoyé un tas d'erreurs 'L'erreur suivante s'est produite: Jeton inattendu: ',', attendu de: ')', 'OPERATOR_PLUS', 'OPERATOR_MINUS ',' OPERATOR_MULTIPLICATION ',' OPERATOR_DIVISION ',' OPERATOR_STRING_CONCAT ',' like ', ... L'erreur est survenue ici: if (estNom (Crédit) >>>>>>, <<<<<< 1, 0) comme isNumberCredit' – thebusiness11