Comprendre les types de calculs DAX
À l’aide de DAX (Data Analysis Expressions), vous pouvez ajouter trois types de calculs à votre modèle sémantique :
- Tables calculées
- Colonnes calculées
- Mesures
Remarque
DAX permet également de définir des règles de Sécurité au niveau des lignes (SNL), à savoir 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 en savoir plus, 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 table calculées sont toujours importées dans votre modèle, ce qui augmente la taille de stockage du modèle et prolonge le temps d’actualisation des données.
Remarque
Une table calculée ne peut pas se connecter à des données externes ; vous devez accomplir cette tâche à l’aide de Power Query.
Les tables calculées peuvent être utiles dans différents scénarios :
- Tables de données
- Dimensions de rôle actif
- Analyse de scénarios
Tables de données
Des tables de dates sont requises pour appliquer des filtres de temps spéciaux, connus sous le nom d'assistant Time Intelligence. Les fonctions Time Intelligence DAX fonctionnent correctement seulement si une table de dates est configurée. Lorsque vos données source ne comprennent pas de table de dates, vous pouvez en créer une en tant que table calculée à l’aide de la fonction CALENDAR ou 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 disposez d’une table nommée Sales qui comprend deux colonnes de dates, OrderDateKey et ShipDateKey, les colonnes sont liées à la colonne Date de la table Date. Dans ce cas, la table Date est décrite comme une dimension de rôle actif, car elle pourrait jouer le rôle de date de commande ou de date d’expédition.
Les modèles sémantiques n’autorisent qu’une seule relation active entre les tables, indiquée dans un diagramme de modèle par une ligne continue. La relation active permet par défaut de propager les filtres, qui dans ce cas seraient de la table Date vers la colonne OrderDateKey de 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 seulement si elles sont expressément demandées dans une formule calculée à l’aide de la fonction USERELATIONSHIP.
Une meilleure conception de modèle pourrait peut-être comporter deux tables de dates, chacune ayant une relation active avec la table Sales. Ainsi, les utilisateurs d’états peuvent filtrer par date de commande ou 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.
Analyse de scénarios
Power BI Desktop comprend une fonctionnalité appelée paramètres. Lorsque vous créez un paramètre de plage numérique, une table calculée est automatiquement ajoutée à votre modèle.
Les paramètres de plage numérique permettent aux utilisateurs d’états de sélectionner ou filtrer en fonction des 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 plage numérique peut permettre à l’utilisateur d’état de sélectionner un taux de change hypothétique et une mesure peut diviser les valeurs de chiffre d’affaires (dans une devise société) par le taux sélectionné.
En particulier, les tables calculées par paramètres ne sont pas liées à d’autres tables de modèle, car elles ne permettent pas de propager des filtres. Voilà pourquoi elles sont appelées tables déconnectées.
Colonnes calculées
Vous pouvez écrire une formule DAX pour ajouter une colonne calculée à toute table de votre modèle. La formule est évaluée pour chaque ligne de table et renvoie une valeur unique. En cas d’ajout à une table en mode de stockage Importer, 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 Données, les colonnes calculées sont mises en valeur avec une icône spéciale. L’exemple suivant illustre une seule colonne calculée dans la table Customer appelée Age.
Mesures
Vous pouvez écrire une formule DAX pour ajouter une mesure à toute table de votre modèle. La formule réalise un résumé sur les données du modèle. Comme pour une colonne calculée, la formule doit renvoyer une valeur unique. Cependant, 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 Données, les mesures s’affichent avec l’icône représentant une calculatrice. L’exemple suivant illustre trois mesures dans la table Sales : Cost, Profit et Revenue.
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 sont 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 Données, car elles s’affichent avec le symbole sigma (∑).
Remarque
Les colonnes peuvent être résumées lorsqu’elles sont ajoutées à un visuel. Par conséquent, qu’elles présentent le symbole Sigma ou non, lorsqu’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é permet de décrire les tables calculées et les colonnes calculées, ce qui les distingue des tables et colonnes provenant de Power Query. Power Query ne comporte pas le concept de mesure explicite.