Contexte


La plupart des modèles de données contiennent plusieurs tables en relation les unes avec les autres.   Nous allons étudier l’impact de ces relations sur les deux contextes.   Contexte de ligne et relations.   C’est le plus simple à comprendre : il n’y a pas d’interactions.   Supposons une table des Ventes en relation avec une table Articles.   Si l’on crée une colonne visant à calculer la différence entre le prix  unitaire réellement appliqué et le prix de vente standard, prévu dans la table articles :   Différence= Ventes[PU Vente]-Articles[PU Vente]   Retournera une erreur.   En effet, la colonne calculée crée une itération sur la table Ventes et elle seule !   Pour accéder à la valeur en relation dans la table Articles il faudra utiliser la fonction RELATED.   Différence= Ventes[PU Vente]-RELATED(Articles[PU Vente])   Dans le sens inverse (colonne calculée dans la table Articles), il faudra utiliser RELATEDTABLE imbriquée dans une fonction d’aggrégation :   AVERAGE(RELATEDTABLE(Ventes[PU Vente]))   Ce mécanisme fonctionne, quel que soit le nombre de niveaux de la relation (Par exemple Famille->Sous-Famille->Articles->Ventes), sous réserve que les relations soient du même type et de même direction.   Par exemple, dans le cas ci-dessous, il n’est […]

DAX Contexte d’évaluation (Partie 2)



3
Toute mesure est évaluée dans un contexte.   Le contexte, c’est-à-dire l’ensemble des filtres du rapport (lignes et colonnes d’un TCD, slicers..) pour le contexte de filtres, ou la ligne de la table, pour un contexte de ligne , détermine l’environnement dans lequel s’applique la formule de calcul.   Un élément clé à retenir : « Il y a toujours deux contextes qui coexistent : Le contexte de filtres et le contexte de ligne. »   Contexte de filtre. Prenons une mesure simple comme : Sum(Ventes[Total Ventes HT]) Elle retourne la somme des quantités de toute la table Ventes, en l’absence de filtres:   Elle retourne une valeur différente si l’on ajoute un filtre sur l’année dans le rapport :     Comment cela se produit-il ?   Il faut considérer chaque cellule : Pour déterminer sa valeur, la table Ventes est filtrée comme dans un tableur Excel, pour ne retenir que les lignes concernant l’année 2017 (première ligne du rapport.) Ensuite, l’expression s’applique sur les valeurs contenues dans la colonne Total Ventes HT (filtrées.)   Nous pouvons rajouter autant de filtres que nécessaire, la logique sera toujours la même : la table est filtrée en fonction du contexte d’évaluation de chaque cellule, avant […]

DAX – Contexte d’évaluation (Partie 1)