Cet article fait suite aux articles Power Pivot: Leçon de DAX no.1 (fonctions X), Power Pivot: Leçon de DAX no.2 (RELATED) et Power Pivot: Leçon de DAX no.3 (COUNTROWS). Il vise à démontrer comment utiliser les fonctions FILTER et DISTINCT en langage DAX (Data Analysis Expression), soit le langage utilisé par Power Pivot.
Définition des fonctions DAX
Filter (Table, Condition)
Retourne les résultats de la table en question lorsque la condition est VRAIE.
Retourne toutes les colonnes de la table, avec les lignes qui répondent à la condition.
Par exemple: FILTER(InternetSales, RELATED(SalesTerritory[SalesTerritoryCountry])<>USA) retourne les ventes pour les territoires autres que les États-Unis.
Distinct(Column)
Retourne une table comprenant les données « uniques » dans la colonne spécifiée (sans doublons).
Par exemple: =DISTINCT(FactSales[StoreKey]) retourne une table avec tous les ID uniques de magasins.
Ces fonctions retournent une table et doivent donc être utilisées de façon imbriquée dans des fonctions d’aggrégation.
Exemple de la fonction Filter: Somme des ventes en ligne
Dans l’exemple ci-bas, la fonction FILTER est utilisée comme filtre sur la colonne # canal de la table de ventes. Ainsi, la fonction retourne une table avec toutes les colonnes de la table de ventes, mais avec seulement les lignes qui comprennent le numéro de canal 1. Ensuite, on effectue une somme sur la colonne Ventes de la table résultante. On obtient donc les ventes du canal 1, soit les ventes en ligne.
Exemple de la fonction Distinct: Nombre de canaux
Dans l’article, Power Pivot: Leçon de DAX no.3 (COUNTROWS), nous avons présenté l’exemple suivant, qui utilise la fonction COUNTROWS, combinée à la fonction VALUES pour déterminer le nombre de canaux.
Il serait possible d’obtenir la même mesure en utilisant la fonction FILTER.
Ainsi, on constate qu’autant la fonction DISTINCT que la fonction VALUES, permet de retourner les valeurs distinctes d’une colonne. Ceci est vrai, à une exception près, qui est expliqué au prochain point.
Différence entre DISTINCT and VALUES
Marco Russo explique la différence subtile qui existe entre la fonction DISTINCT et la fonction VALUES dans son article Difference between DISTINCT and VALUES in DAX. En résumé, on constate, sur l’image suivante, que la fonction DISTINCT ramène le nombre de valeurs distinctes pour chacune des dimensions d’une table alors que la fonction VALUES retourne les valeurs distinctes pour chacue des dimensions de cette table et ajoute le nombre de valeurs distinctes qui ne sont pas associées à une dimension. Ce serait la seule différence qui existe entre ces deux fonctions.
NOTRE OFFRE DE FORMATIONS
Le CFO masqué vous offre 13 formations, réparties dans 4 catégories: Tableaux de bord, Modélisation financière, Finance corporative et Analyse et modélisation de données. Ces formations sont offertes en classe, en entreprise et en ligne. Nos formateurs sont des experts dans leur domaine et sont accrédités par Emploi-Québec et vous remettent un certificat, à la fin de chaque formation, que vous pouvez notamment utiliser pour faire reconnaître des heures de formation continue auprès de votre ordre professionnel.
Consulter la liste des formations offertes
Pour info: 514-605-7112 ou info@lecfomasque.com