Cet article fait suite aux articles Power Pivot: Leçon de DAX no.1 (fonctions X)  et Power Pivot: Leçon de DAX no.2 (RELATED).  Il vise à démontrer comment utiliser la fonction COUNTROWS en langage DAX (Data Analysis Expression), soit le langage utilisé par Power Pivot et par Power BI Desktop.
Fonction COUNTROWS
La fonction COUNTROWS retourne, tout simplement, le nombre de lignes d’une table.
Exemple de COUNTROWS: Mesure qui retourne le nombre de transactions de ventes
Dans l’exemple ci-bas, la fonction COUNTROWS retourne le nombre de lignes dans la table Ventes. Autrement dit, elle retourne le nombre de transactions total de la table, soit 13,341.
Lorsqu’on visualise les données à partir d’un tableau croisé dynamique, on retrouve le nombre de transactions de 13,341. À noter que dans ce tableau croisé dynamique, le champ de valeur est notre nouvelle mesure, soit NbTransactions.
Et lorsqu’on appose un filtre sur le canal #1, on obtient le nombre de transactions de ce canal uniquement, soit 4,240. On observe donc que notre mesure répond bien au contexte de filtres.
Nous aurions pu obtenir le même résultat en utilisant le champ Ventes et en choisissant l’option COUNT plutôt que SUM dans notre tableau croisé dynamique, tel qu’illustré plus bas. Toutefois cette façon de procéder aurait défié les meilleures pratiques d’affaires. Apprenez pourquoi en jetant un coup d’oeil à l’article suivant: Power Pivot: Mesures explicites vs mesures implicites.
Exemple COUNTROWS: Mesure qui retourne le nombre de transactions de ventes du canal #1
Dans l’exemple suivant, nous utilisons la fonction DAX FILTER. Cette fonction fera l’objet d’un billet de blogue séparé. Pour le moment, ce que vous devez comprendre de la formule ci-bas, c’est qu’elle retourne le nombre de lignes de la table Ventes, mais en ne considérant que les lignes qui appartiennent au canal #1.
Ce faisant, lorsque l’on visualise les données dans un tableau croisé dynamique, on remarque que le total de transactions n’est plus 13,341 mais plutôt 4,240, soit le nombre de transactions du canal #1. On remarque également que ce total est modulé selon les étiquettes de lignes et les étiquettes de colonnes, i.e. selon le contexte de filtres.
Vous avez des sources de données volumineuses à rassembler et analyser dans Excel ? Apprenez à automatiser tout le processus d’importation, de transformation et de modélisation  des données avec nos formations sur Power Query et Power Pivot dans Excel. |
---|
Exemple COUNTROWS: Mesure qui retourne le nombre de transactions de ventes du canal #2 ou #3
Le langage DAX dispose d’opérateurs communs. Par exemple || est employé pour désigner un OR (OU). Pour en savoir davantage sur les opérateurs du langage DAX, je vous invite à consulter la page suivante PowerPivot: DAX: Operator Reference. Ainsi, la formule suivante retourne le nombre de transactions de la table Ventes, pour toutes les lignes comprenant le canal #2 ou le canal #3.
Dans le tableau croisé dynamique suivant, nous avons placé notre mesure NBTransactionsCanal1 dans la première colonne. Le total est toujours de  4,240 transactions. Dans la deuxième colonne, nous avons placé notre nouvelle mesure NbTransactionsCanal2ou3. Le total est de 9,101 transactions. En additionnant ces deux valeurs, on revient à notre nombre total de transactions, 13,341, puisque cette table de ventes ne comprend que 3 canaux.
Pour valider le résultat précédent, on pourrait également reproduire un tableau croisé dynamique à partir de la mesure NbTransactions et apposer un filtre pour ne retenir que les canaux #2 et #3. C’est ce qui est fait ci-bas.
Exemple COUNTROWS : Mesure qui retourne le nombre de canaux ou le nombre de #skus
L’exemple suivant utilise la fonction DAX VALUES, qui retourne le nombre de valeurs uniques d’une table ou d’une colonne. Dans notre exemple, nous avons calculé le nombre de canaux (NbCanaux) et ensuite le nombre de #skus (NbSku) uniques dans notre tables de données de ventes.
Remarquez, dans le tableau croisé dynamique ci-bas, que ce nombre n’est pas influencé par certains filtres et qu’il l’est par d’autres. Par exemple, peu importe le mois, le nombre de canaux uniques et le nombre de skus uniques demeurent les mêmes. Ça signifie qu’à tous les mois, l’entreprise a vendu de tous ses skus, dans tous ses canaux. Si cela n’avait pas été le cas, nous aurions obtenus des résultats différents. Quant au nombre de canaux uniques par canal, il retourne évidemment 1 pour chaque canal (voir dernier tableau croisé dynamique) et le nombre de skus uniques par canal retourne le nombre de skus vendus dans chaque canal (voir dernier tableau croisé dynamique également).
À noter que vous auriez pu obtenir le même résultat à partir de la formule suivante: NbCanaux:=COUNTROWS(DISTINCT(Ventes[# canal])).
Exemple COUNTROWS: Mesure qui retourne le nombre de transactions de ventes dans le canal #1 peu importe les filtres
La mesure suivante, NbTransactionsCanal1Total retourne le nombre de transactions de ventes dans le canal 1, mais contrairement à la mesure NbTransactionsCanal1, créée plus tôt, celle-ci retourne le nombre total de transactions dans le canal 1, peu importe le contexte de filtres. Ceci est dû à l’emploi de la fonction ALL. Cette fonction fera l’objet d’un billet de blogue séparé. Pour le moment, sachez que cette fonction fait en sorte d’ignorer le contexte de filtres.
Ainsi, peu importe ce que l’on insére comme étiquettes de lignes ou autres filtres, le résultat demeure toujours 4,240, soit le nombre de transactions total du canal 1 dans la table Ventes.
De même, peu importe le mois, le nombre de transactions total dans la table Ventes pour le canal 1 demeure à 4,240.
Power Pivot: Leçons de DAX: Suite
Power Pivot: Leçon de DAX no.4 (FILTER/DISTINCT)
Power Pivot: Leçon de DAX no.5 (CALCULATE)
Power Pivot: Leçon de DAX no.6 (ALL)
Power Pivot: Leçon de DAX no.7 (ALLEXCEPT)
Power Pivot: Leçon de DAX no.8 (ALLSELECTED)
Fichier d’accompagnement VIP à télécharger
Pour télécharger le fichier utilisé dans ce tutoriel, devenez membre VIP du CFO masqué.
Formation complémentaire
Pour une introduction au langage DAX, utilisé par Power Pivot et par Power BI Desktop, qui permet de créer des tableaux de bord flexibles et faciles à mettre à jour en plus de créer des visualisations de données évoluées et pertinentes, suivez la formation Introduction au langage DAX (Power BI et Power Pivot).
Voici quelques commentaires d’apprenants ayant suivi cette formation :