Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
guillaume_gorli
Creator II
Creator II

Moyenne d'une variable sans champ "vide"

Bonjour,

J'essaye de remonter une moyenne dans un graphique. Jusque là rien de méchant.

La formule Avg (Sales) marche correctement. Seulement ma base est polluée par un certain nombre de ligne dans laquelle le champ sales est vide. Du coup j'ai besoin de remonter la moyenne sur ces variables sans prendre en compte ces cellules vides dans ma moyenne ?

Merci de votre aide.

Guillaume

Labels (1)
1 Solution

Accepted Solutions
Not applicable

Ok,

c'est bon je trouve 30 pour le vélo !!

ci-joint le script

LOAD [No Facture],

    
Date,

    
[Delai Demande],

    
Nbj,

    
[Type Cde]

FROM



(
ooxml, embedded labels, table is DELAI);



MATRICE:

Mapping

LOAD [Type Cde],

    
Business

FROM



(
ooxml, embedded labels, table is MATRICE);



NoConcatenate

DELAI:

LOAD

 
[No Facture],

 
Date,

 
[Delai Demande],

 
Nbj,

 
ApplyMap('MATRICE',[Type Cde]) as Business

RESIDENT DELAI_TMP

WHERE LEN([Delai Demande]) > 0;



DROP TABLE DELAI_TMP;

View solution in original post

23 Replies
alexandros17
Partner - Champion III
Partner - Champion III

Try this expression:

=Avg({$ <Sales={'>=0'}>} Sales)

Let me know

maxgro
MVP
MVP

si  "vide" = null je croix que la formule avg(exp) marche (see image)

1.png

script used to load data for the above image

load dim1, if(exp='null',null(),exp) as exp;

load* inline [

dim1, exp

1,null

1,10

1,12

2,10

2,12

2,14

2,null

];

guillaume_gorli
Creator II
Creator II
Author

Alessandro,

This expression is not really working. i still don't get the correct figures.

Guillaume

alexandros17
Partner - Champion III
Partner - Champion III

You 're right, I included zero so the expression works as before, exclude it in this way, I tested and it works ...

=Avg({$ <Sales={'>0'}>} Sales)

Not applicable

Bonjour,

Massimo +1

Guillaume,

la manière de faire de Massimo marche très bien d'autant plus qu'elle bénéfique sur certains points :

- le traitement se fait dans le script -> gain de performance

- Il est adaptable : Si demain la valeur non renseigné n'est plus null mais une chaine vide, tu  pourras alors utiliser la formule suivante : load dim1, if(exp='',null(),exp) as exp; Ainsi de suite, tu pourras affecter une valeur null comme tu voudras.

- La formule utilisé dans l'IHM reste simple et performante.

Cdt,

Benjamin Drouin

guillaume_gorli
Creator II
Creator II
Author

Bonjour à tous,

J'arrive à appliquer la méthode de Massimo dans un modèle simple mais lorsque j'essaye dans mon application, quelque chose cloche.

Je joint mon application en pièce jointe :

2 tables :

5 variables dans la table DELAI : Un numéro de facture client, une date de facturation, une date demandée par le client, un écart entre les deux dates (calculé automatiquement par l'ERP) et un type de commande

2 variables dans la table MATRICE

un type de commande et le business associé.

J'essaye donc pour chaque business de remonter le délai moyen entre la date de facturation demandée et la date de facturation.

Les bonnes moyennes devraient être :

BusinessSans champ "Nbj" vide pris en compte
Marche à pied8
Train154
Velo31
Voiture9
Total31

Mais ce n'est pas le cas...

Merci de votre aide

Guillaume

Not applicable

Il n'y a rien en PJ 😉

guillaume_gorli
Creator II
Creator II
Author

Mince, comment ça il n'y a rien ? Moi j'ai bien un fichier TEST AVG.qvw de 154.2K dans le mail ??? Il n'est pas accessible ?

guillaume_gorli
Creator II
Creator II
Author

Je rajoute mon script si besoin :

load [Type Cde], if(Nbj='null',null(),Nbj) as Nbj;

LOAD [No Facture],

     Date,

     [Delai Demande],

     Nbj,

     [Type Cde]

FROM

[\\tsclient\W\qvd\TEST AVG.xlsx]

(ooxml, embedded labels, table is DELAI);

LOAD [Type Cde],

     Business

FROM

[\\tsclient\W\qvd\TEST AVG.xlsx]

(ooxml, embedded labels, table is MATRICE);