Introduction

Effectué

En utilisant DAX (Data Analysis Expressions), vous pouvez ajouter trois types de calculs à votre modèle sémantique :

  • Tables calculées
  • Colonnes calculées
  • Mesures

Notes

DAX peut également être utilisé pour définir des règles de sécurité au niveau des lignes (RLS), qui sont des expressions qui appliquent des filtres sur des tables de modèle. Toutefois, les règles ne sont pas considérées comme des calculs de modèle et ne sont donc pas abordées dans ce module. Pour plus d’informations, consultez Sécurité au niveau des lignes (SNL) avec Power BI.

Tables calculées

Vous pouvez écrire une formule DAX pour ajouter une table calculée à votre modèle. La formule peut dupliquer ou transformer des données de modèle existantes, ou créer une série de données pour produire une nouvelle table. Les données de la table calculée étant toujours importées dans votre modèle, elles augmentent la taille de stockage du modèle et peuvent prolonger le temps d’actualisation des données.

Notes

Une table calculée ne peut pas se connecter à des données externes ; vous devez utiliser Power Query pour accomplir cette tâche.

Les tables calculées peuvent être utiles dans différents scénarios :

  • Tables de dates
  • Dimensions de rôle actif
  • Analyse de scénarios

Tables de dates

Des tables de dates sont requises pour appliquer des filtres de temps spéciaux, connus sous le nom de Time Intelligence. Les fonctions Time Intelligence DAX ne fonctionnent correctement que quand une table de dates est configurée. Si vos données sources n’incluent pas de table de dates, vous pouvez en créer une en tant que table calculée à l’aide des fonctions DAX CALENDAR et CALENDARAUTO.

Dimensions de rôle actif

Lorsque deux tables de modèle ont plusieurs relations, cela peut être dû au fait que votre modèle a une dimension de rôle actif. Par exemple, si vous avez une table nommée Sales qui comprend deux colonnes de date, OrderDateKey et ShipDateKey, les deux colonnes sont associées à la colonne Date dans la table Date. Dans ce cas, la table Date est décrite comme une dimension de rôle actif, car elle peut jouer le rôle de date de commande ou de date d’expédition.

L’image montre deux tables : Sales et Date. Il existe deux relations entre les tables. Une seule relation est active.

Les modèles Microsoft Power BI autorisent uniquement une relation active entre les tables, qui est indiquée dans le diagramme de modèle sous la forme d’une ligne pleine. La relation active est utilisée par défaut pour propager les filtres, dans ce cas de la table Date vers la colonne OrderDateKey dans la table Sales. Les relations restantes entre les deux tables sont inactives. Dans un diagramme de modèle, les relations sont représentées sous forme de lignes en pointillés. Les relations inactives sont utilisées uniquement lorsqu’elles sont expressément demandées dans une formule calculée à l’aide de la fonction DAX USERELATIONSHIP.

Une meilleure conception de modèle pourrait avoir deux tables de date, chacune avec une relation active avec la table Sales. Ainsi, les utilisateurs des rapports peuvent filtrer par date de commande ou date d’expédition, ou les deux en même temps. Une table calculée peut dupliquer les données de la table Date pour créer la table Ship Date.

L’image montre deux tables : Sales et Date. Il existe une relation entre les tables Sales et Date, et une relation entre les tables Sales et Ship Date. Les deux relations sont actives.

Analyse de scénarios

Power BI Desktop prend en charge une fonctionnalité appelée paramètres de scénario. Lorsque vous créez un paramètre de scénario, une table calculée est automatiquement ajoutée à votre modèle.

Les paramètres de scénario permettent aux utilisateurs des rapports de sélectionner ou de filtrer les valeurs stockées dans la table calculée. Les formules de mesure peuvent utiliser des valeurs sélectionnées de manière explicite. Par exemple, un paramètre de scénario peut permettre à l’utilisateur du rapport de sélectionner un taux de change de devise hypothétique, et une mesure peut diviser les valeurs de chiffre d’affaires (dans une devise locale) par le taux sélectionné.

En particulier, les tables calculées de scénario ne sont pas associées à d’autres tables de modèle, car elles ne sont pas utilisées pour propager des filtres. Pour cette raison, elles sont parfois appelées tables déconnectées.

Colonnes calculées

Vous pouvez écrire une formule DAX pour ajouter une colonne calculée à une table de votre modèle. La formule est évaluée pour chaque ligne de table et retourne une valeur unique. En cas d’ajout à une table du mode Importation du stockage, la formule est évaluée lorsque le modèle sémantique est actualisé et augmente la taille de stockage de votre modèle. En cas d’ajout à une table en mode de stockage DirectQuery, la formule est évaluée par la base de données source sous-jacente lors de l’interrogation de la table.

Dans le volet Champs, les colonnes calculées sont améliorées avec une icône spéciale. L’exemple suivant montre une colonne calculée unique dans la table Customer appelée Age.

L’image affiche une section du volet Champs. Dans la table Customer, il existe plusieurs champs. Un de ces champs présente cette icône spéciale, qui indique qu’il s’agit d’une colonne calculée.

Mesures

Vous pouvez écrire une formule DAX pour ajouter une mesure à une table de votre modèle. La formule s’intéresse à la réalisation d’un résumé sur les données du modèle. Comme pour une colonne calculée, la formule doit retourner une valeur unique. Contrairement aux colonnes calculées, qui sont évaluées au moment de l’actualisation des données, les mesures sont évaluées au moment de la requête. Leurs résultats ne sont jamais stockés dans le modèle.

Dans le volet Champs, les mesures sont affichées avec l’icône de calculatrice. L’exemple suivant montre trois mesures dans la table Sales : Cost, Profit et Revenue.

L’image affiche une section du volet Champs. Dans la table Sales, il y a plusieurs champs. Trois sont ornés de l’icône de calculatrice, qui indique qu’il s’agit de mesures.

Parfois, les mesures peuvent être décrites comme des mesures explicites. Pour être clair, les mesures explicites sont des calculs de modèle écrits dans DAX, et elles communément appelées plus simplement mesures. Cependant, le concept de mesures implicites existe également. Les mesures implicites sont des colonnes qui peuvent être résumées par des visuels de manière simpliste, comme Count, Sum, Minimum, Maximum, etc. Vous pouvez identifier les mesures implicites dans le volet Champs, car elles sont indiquées par le symbole Sigma ( ∑ ).

Notes

Les colonnes peuvent être résumées lorsqu’elles sont ajoutées à un visuel. Ainsi, qu’elles présentent le symbole Sigma ou non, quand elles sont ajoutées à un visuel, elles peuvent être configurées en tant que mesures implicites.

En outre, il n’existe pas de concept de mesure calculée dans la modélisation tabulaire. Le mot calculé est utilisé pour décrire les tables calculées et les colonnes calculées, ce qui les distingue des tables et des colonnes provenant de Power Query. Power Query n’a pas de concept de mesure explicite.