Accueil – Le CFO masqué › Forums › Power BI › COUNTROWS + OR + AND
- Ce sujet contient 8 réponses, 3 participants et a été mis à jour pour la dernière fois par
Sophie Marchand, le il y a 5 années et 1 mois.
-
AuteurMessages
-
28 janvier 2020 à 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 janvier 2020 à 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 janvier 2020 à 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 janvier 2020 à 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 janvier 2020 à 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 janvier 2020 à 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 janvier 2020 à 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 janvier 2020 à 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 janvier 2020 à 16 h 23 min #60774Sophie Marchand
ParticipantÇa ne devrait pas, non.
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.