Home – Le CFO masqué › Forums › Power BI › COUNTROWS + OR + AND
- This topic has 8 replies, 3 voices, and was last updated 5 years, 2 months ago by
Sophie Marchand.
-
AuthorPosts
-
28 January 2020 at 14 h 18 min #60730
Lionel
ParticipantBonjour,
J’ai données qui sont réparties en colonnes. Exemple, une colonne Type, une colonne Statuts…
Je cherche à compter le nombre de lignes qui peuvent remplir une ou des condition.Par exemple : Le nombre de ligne où le Type est ‘Verificatietaken’ et où le Status est différent de ‘TO_HANDLE’ et différent de ‘IN_HANDLING’. Pour ce faire, je suis arrivé au résultat en faisant ceci :
TOT_V = calculate(COUNTROWS(Cumul);Cumul[Type]=”Verificatietaken”;Cumul[Status]<>”TO_HANDLE”;Cumul[Status]<>”IN_HANDLING”)
OU
TOT_VV = calculate(COUNTROWS(Cumul);
FILTER(cumul; Cumul[Type]=”Verificatietaken”);
FILTER(cumul;Cumul[Status]<>”TO_HANDLE”);
FILTER(cumul;Cumul[Status]<>”IN_HANDLING”))Donc, on peut arriver au même résultat de manière différente. Il y a donc certainement des astuces.
Maintenant, je cherche à découvrir par exemple :
. Le nombre de lignes où le Type est ‘Verificatietaken’ avec le Status ‘TO_HANDLE’ et où le Type est ‘Verificatietaken’ avec le Status est ‘IN_HANDLING’.
Faut-il simplement passer par une addition ? Ou bien une combinaison de AND et OR ?
Je suis preneur de toute piste pour résoudre mon petit problème.
Un grand merci,29 January 2020 at 1 h 27 min #60747Lionel
ParticipantBête question supplémentaire : je vois que le OR est limité à deux arguments. Vous utilisez quelle astuces lorsque vous avez 3 critères ?
29 January 2020 at 7 h 54 min #60750Stéphane Lorin
ParticipantBonjour
Je ne peux vous répondre sur votre première question mais pour avoir plus de 2 critères OR il faut utiliser || voir ici : https://docs.microsoft.com/fr-fr/dax/or-function-dax
Et pour le AND c’est &&
Stéphane29 January 2020 at 11 h 53 min #60761Lionel
ParticipantMerci pour l’info. maintenant, je dois voir pour adapter ma formule – si c’est possible :
TOT_V_TO_HANDLE = calculate(COUNTROWS(Cumul);Cumul[Type]="Verificatietaken";Cumul[Status]="TO_HANDLE") + calculate(COUNTROWS(Cumul);Cumul[Type]="Verificatietaken";Cumul[Status]="IN_HANDLING")
29 January 2020 at 12 h 10 min #60763Sophie Marchand
ParticipantBonjour,
Je ne suis pas certaine d’avoir bien compris votre question mais je crois que vous cherchez à faire ceci:
TOT_V_TO_HANDLE = calculate(COUNTROWS(Cumul);Cumul[Type]=”Verificatietaken”;Cumul[Status]=”TO_HANDLE” || Cumul[Status]=”IN_HANDLING”)
Si ce n’est pas le cas, pourriez-vous fournir un petit exemple avec des données et nous résumer un cas de figure? Merci.
Au plaisir,
Sophie
29 January 2020 at 12 h 29 min #60765Lionel
ParticipantBonjour,
Évidemment, vous avez capté ma demande ( ‘‿’ )J’ai donc votre solution :
test1 = calculate(COUNTROWS(Cumul);Cumul[Type]= "Verificatietaken";Cumul[Status]= "TO_HANDLE" || Cumul[Status]= "IN_HANDLING")
Et celle-ci :
test = COUNTROWS( FILTER( Cumul; Cumul[Type]="Verificatietaken" && Cumul[Status]="TO_HANDLE" || Cumul[Type]="Verificatietaken" && Cumul[Status]="IN_HANDLING" ) )
Question en plus : les deux solutions me donnent le même résultat (qui est identique à ce que je trouve en Excel). Faut-il préférer l’une ou l’autre solution ? Quel serait le critère qui me ferait choisir l’une ou l’autre ?
29 January 2020 at 12 h 44 min #60767Sophie Marchand
ParticipantBonjour,
Dans ce cas-ci, je crois que c’est sans doute assez équivalent… Dans la première formule, on calcule une expression selon certains filtres alors que dans la deuxième on compte le nombre de lignes d’une table dont on a filtré les lignes…
Sophie
29 January 2020 at 13 h 01 min #60768Lionel
ParticipantUn grand merci pour l’explication. Est-ce que cela peut avoir un impact sur un calcul ultérieur qui prendrait ce premier résultat ? Ou sur une visualisation ?
29 January 2020 at 16 h 23 min #60774Sophie Marchand
ParticipantÇa ne devrait pas, non.
-
AuthorPosts
- You must be logged in to reply to this topic.