Créer une table calculée

S’applique à : SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Un table calculée est un objet calculé basé sur une requête ou une expression DAX, dérivé de tout ou partie des autres tables dans le même modèle.

Un problème de conception courant que les tables calculées peuvent résoudre est la présentation d’une dimension de rôle actif dans un contexte spécifique pour vous permettre de l'exposer comme une structure de requête dans les applications clientes. Vous pouvez vous rappeler qu’une dimension de jeu de rôle est simplement une table exposée dans plusieurs contextes. Un exemple classique est la table Date, qui se manifeste sous la forme OrderDate, ShipDate ou DueDate, en fonction de la relation de clé étrangère. En créant explicitement une table calculée pour ShipDate, vous obtenez une table autonome utilisable pour les requêtes et qui fonctionne comme n’importe quelle autre table. Une autre utilisation inclut la configuration d’un ensemble de lignes filtré, d’un sous-ensemble ou d’un sur-ensemble de colonnes à partir d’autres tables existantes. Vous pouvez ainsi conserver la table d’origine inchangée et en créer des variantes pour les besoins de scénarios particuliers.

Pour tirer le meilleur parti des tables calculées, vous devez connaître quelques expressions DAX. Lorsque vous travaillez avec des expressions pour votre table, il peut être utile de savoir qu’une table calculée contient une partition unique avec un DAXSource, où l’expression est une expression DAX.
Il existe un élément CalculatedTableColumn pour chaque colonne renvoyée par l'expression, où SourceColumn est le nom de la colonne retournée (identique à celui de DataColumns sur les tables non calculées).

Au moins une table doit déjà exister avant de pouvoir créer une table calculée. Si vous créez une table calculée en tant qu’objet de table calculé autonome, vous pouvez d’abord créer une table en important à partir d’une source de données de fichier (csv, xls, xml). Le fichier à partir duquel vous importez peut avoir une seule colonne et une seule valeur. Vous pouvez ensuite masquer cette table.

Comment créer une table calculée

  1. Tout d’abord, vérifiez que le modèle tabulaire a un niveau de compatibilité supérieur ou égal à 1200. Vous pouvez vérifier la propriété Niveau de compatibilité sur le modèle dans SSDT.

  2. Basculez en mode Données. Vous ne pouvez pas créer une table calculée dans la vue de diagramme.

  3. Sélectionnez Table>Nouvelle table calculée.

  4. Tapez ou collez une expression DAX (voir ci-dessous pour obtenir quelques idées).

  5. Nommez la table.

  6. Créez des relations vers d'autres tables dans le modèle. Si vous avez besoin d’aide pour cette étape, consultez Créer une relation entre deux tables .

  7. Référencez la table dans les calculs ou expressions de votre modèle, ou utilisez Analyser dans Excel pour une exploration des données ad hoc.

Répliquer une dimension de rôle actif

Dans la barre de formule, entrez une formule DAX qui obtient une copie d’une autre table. Après avoir rempli la table calculée, attribuez-lui un nom descriptif puis définissez une relation qui utilise la clé étrangère spécifique au rôle. Par exemple, dans la base de données Adventure Works, vous pouvez créer une table calculée pour la date d'échéance et utiliser la valeur DueDateKey comme base d'une relation vers la table de faits.

=DimDate  

Résumé ou filtré

Dans la barre formule, entrez une expression DAX qui filtre, résume ou manipule un modèle pour contenir les lignes souhaitées. Cet exemple regroupe les données par ventes, par couleur et par devise.

=SUMMARIZECOLUMNS(DimProduct[Color]  
, DimCurrency[CurrencyName]   
, "Sales" , SUM(FactInternetSales[SalesAmount])  
)  

Sur-ensemble utilisant des colonnes de plusieurs tables

Dans la barre de formule, entrez une expression DAX qui combine des colonnes provenant de plusieurs tables. Dans ce cas, la sortie de requête répertorie la catégorie de produit pour chaque devise.

=CROSSJOIN(DimProductCategory, DimCurrency)  

Voir aussi

Niveau de compatibilité
DAX (Data Analysis Expressions) dans Analysis Services
Présentation de DAX dans les modèles tabulaires