Vue d'ensemble du langage DAX (Data Analysis Expressions)

Le langage DAX (Data Analysis Expressions) est un langage de formule qui permet aux utilisateurs de définir des calculs personnalisés dans les tables PowerPivot (colonnes calculées) et dans les tableaux croisés dynamiques Excel (mesures). DAX inclut quelques-unes des fonctions utilisées dans les formules Excel, ainsi que des fonctions supplémentaires conçues pour l'utilisation de données relationnelles et l'agrégation dynamique.

Cette section explique les concepts suivants :

  • Où utiliser des formules DAX

  • Procédure de création de formules DAX

  • Types d'opérations que vous pouvez effectuer avec DAX

Vue d'ensemble des formules DAX

Les formules DAX sont très semblables aux formules Excel. Pour en créer une, tapez un signe égal, suivi d'un nom de fonction ou d'une expression, et de toutes les valeurs ou arguments requis. Comme Excel, DAX fournit diverses fonctions que vous pouvez utiliser pour utiliser des chaînes, effectuer des calculs à l'aide de dates et d'heures ou créer des valeurs conditionnelles.

Toutefois, les formules DAX diffèrent des manières importantes suivantes :

  • Une fonction DAX fait toujours référence à une table ou une colonne complète. Si vous souhaitez utiliser certaines valeurs particulières d'une table ou colonne, vous pouvez ajouter des filtres à la formule.

  • Si vous voulez personnaliser des calculs en fonction de chaque ligne, PowerPivot fournit des fonctions qui vous permettent d'utiliser la valeur de ligne actuelle ou une valeur associée pour effectuer des calculs qui varient selon le contexte.

  • DAX inclut un type de fonction qui retourne une table comme résultat, plutôt qu'une valeur unique. Ces fonctions peuvent être utilisées pour fournir une entrée aux autres fonctions, ce qui permet ainsi de calculer des valeurs pour des tables ou des colonnes entières.

  • Certaines fonctions DAX fournissent des fonctions Time Intelligence, qui vous permettent de créer des calculs à l'aide de plages de dates significatives et de comparer les résultats sur des périodes parallèles.

Où utiliser des formules

Vous pouvez utiliser des formules DAX dans des tables PowerPivot ou dans des tableaux croisés dynamiques Excel :

  • Vous pouvez utiliser des formules dans des colonnes calculées, en ajoutant une colonne, puis en tapant une expression dans la barre de formule. Vous créez ces formules dans la fenêtre PowerPivot. Pour plus d'informations, consultez Créer une colonne calculée.

  • Vous pouvez utiliser des formules dans des mesures. Vous créez ces formules dans Excel, en cliquant sur Ajouter une mesure dans un tableau croisé dynamique ou graphique croisé dynamique PowerPivot existant. Pour plus d'informations, consultez Créer une mesure.

Une même formule peut se comporter différemment selon qu'elle est utilisée dans une colonne calculée ou une mesure. Dans une colonne calculée, la formule est toujours appliquée à chaque ligne de la colonne, dans toute la table. La valeur peut changer selon le contexte de ligne. Dans une mesure, toutefois, le calcul de résultats dépend fortement du contexte. À savoir, la conception du tableau croisé dynamique et du choix d'en-têtes de lignes et de colonnes affecte les valeurs utilisées dans les calculs. Pour plus d'informations, consultez Contexte dans les formules DAX.

Création de formules à l'aide de la barre de formule

PowerPivot, à l'instar d'Excel, fournit une barre de formule qui simplifie la création et la modification de formules, ainsi qu'une fonctionnalité de saisie semi-automatique pour réduire les erreurs de frappe et de syntaxe.

Pour entrer un nom d'une table   Commencez à taper le nom de la table. La saisie semi-automatique de formule fournit une liste déroulante qui contient des noms valides commençant par ces lettres.

Pour entrer le nom d'une colonne   Tapez un crochet, puis sélectionnez la colonne dans la liste de colonnes dans la table actuelle. S'il s'agit d'une colonne d'une autre table, commencez à taper les premières lettres du nom de la table, puis sélectionnez la colonne dans la liste déroulante de saisie semi-automatique.

Pour connaître la procédure pas à pas de génération de formules, consultez Générer des formules pour réaliser des calculs.

Conseils pour l'utilisation de la saisie semi-automatique

  • Vous pouvez utiliser la saisie semi-automatique des formules au milieu d'une formule existante avec les fonctions imbriquées. Le texte immédiatement avant le point d'insertion est utilisé pour afficher des valeurs dans la liste déroulante, et tout le texte après le point d'insertion reste inchangé.

  • Les noms définis que vous créez pour les constantes ne s'affichent pas dans la liste déroulante de la saisie semi-automatique, mais vous pouvez toujours les taper.

  • PowerPivot n'ajoute pas la parenthèse fermante des fonctions, ni ne met automatiquement en correspondance les parenthèses. Vous devez vous assurer que chaque fonction est correcte syntaxiquement ou vous ne pouvez pas enregistrer ni utiliser la formule. 

Utilisation de plusieurs fonctions dans une formule

Vous pouvez imbriquer des fonctions, ce qui signifie que vous utilisez les résultats d'une fonction comme un argument d'une autre fonction. Vous pouvez imbriquer jusqu'à 64 niveaux de fonctions dans les colonnes calculées. Toutefois, l'imbrication peut rendre la création ou le dépannage de formules difficile.

De nombreuses fonctions PowerPivot sont conçues pour être utilisées uniquement comme fonctions imbriquées. Ces fonctions retournent une table, qui ne peut pas être enregistrée directement comme résultat dans le classeur PowerPivot ; elle doit être fournie comme entrée à une fonction de table. Par exemple, les fonctions SUMX, AVERAGEX et MINX requièrent toutes une table comme premier argument.

Notes

Il existe des limites relatives à l'imbrication de fonctions dans des mesures, qui visent à garantir que les performances ne seront pas affectées par les nombreux calculs requis par les dépendances entre colonnes.

Comparaison entre les fonctions DAX et Excel

La bibliothèque de fonctions DAX est basée sur la bibliothèque de fonctions Excel, mais il existe de nombreuses différences entre ces bibliothèques. Cette section résume les différences et les ressemblances entre les fonctions Excel et DAX.

  • De nombreuses fonctions DAX ont le même nom et le même comportement général que les fonctions Excel, mais ont été modifiées pour accepter différents types d'entrées et, dans certains cas, peuvent retourner un type de données différent. En général, vous ne pouvez pas utiliser de formules DAX dans un classeur Excel ni utiliser des formules Excel dans un classeur PowerPivot sans effectuer quelques modifications.

  • Les fonctions DAX ne prennent jamais une plage de cellules ou une plage comme référence, mais plutôt une colonne ou une table.

  • Les fonctions DAX de date et d'heure retournent un type de données datetime. Par opposition, les fonctions de date et d'heure Excel retournent un entier qui représente une date sous la forme d'un numéro de série.

  • Un grand nombre des nouvelles fonctions DAX retournent une table de valeurs ou effectuent des calculs basés sur une table de valeurs comme entrée. Par opposition, Excel n'a aucune fonction qui retourne une table, mais certaines fonctions peuvent utiliser des tableaux. La capacité de référencer facilement des tables et des colonnes complètes est une nouvelle fonctionnalité dans PowerPivot.

  • DAX fournit de nouvelles fonctions de recherche, semblables aux fonctions de recherche de tableau et de vecteur dans Excel. Toutefois, les fonctions DAX requièrent l'établissement d'une relation entre les tables.

  • DAX ne prend pas en charge le type de données variant que l'on trouve dans Excel. Les données d'une colonne sont supposées être toujours du même type. Si les données ne sont pas du même type, DAX modifie la colonne entière en type de données convenant le mieux à l'ensemble des valeurs.

Retour au début

Types de données DAX

Vous pouvez importer des données dans une feuille de calcul PowerPivot à partir de nombreuses sources de données différentes, qui peuvent prendre en charge des types de données différents. Lorsque vous importez ou chargez les données dans un classeur, puis utilisez les données dans des calculs ou dans des tableaux croisés dynamiques, les données sont converties dans l'un des types de données PowerPivot. Pour obtenir la liste des types de données, consultez Types de données pris en charge dans les classeurs PowerPivot.

Le type de données de table est un nouveau type de données dans DAX utilisé comme entrée ou sortie dans de nombreuses nouvelles fonctions. Par exemple, la fonction FILTER prend une table en entrée et génère en sortie une autre table qui contient uniquement les lignes qui répondent aux conditions de filtre. En associant des fonctions de table à des fonctions d'agrégation, vous pouvez effectuer des calculs complexes sur des jeux de données définis de façon dynamique. Pour plus d'informations, consultez Agrégations dans les formules.

Retour au début

Formules et modèle relationnel

La fenêtre PowerPivot est une zone où vous pouvez travailler avec plusieurs tables de données et connecter les tables au sein d'un modèle relationnel. Dans ce modèle, les tables sont connectées entre elles par des relations, ce qui vous permet de créer des corrélations avec des colonnes d'autres tables ainsi que des calculs plus intéressants. Par exemple, vous pouvez créer des formules qui additionnent des valeurs pour une table associée, puis enregistrer la valeur obtenue dans une cellule unique. Sinon, pour contrôler les lignes de la table associée, vous pouvez appliquer des filtres aux tables et aux colonnes. Pour plus d'informations, consultez Vue d'ensemble des relations.

Comme vous pouvez lier des tables à l'aide de relations, vos tableaux croisés dynamiques peuvent également inclure des données de plusieurs colonnes issues de tables différentes.

Toutefois, étant donné que les formules peuvent fonctionner avec des colonnes et des tables entières, vous devez concevoir des calculs d'une autre manière que dans Excel.

  • En général, une formule DAX dans une colonne est toujours appliquée au jeu entier de valeurs dans la colonne (elle ne s'applique jamais à quelques lignes ou cellules uniquement).

  • Les tables dans PowerPivot doivent toujours avoir le même nombre de colonnes dans chaque ligne, et toutes les lignes d'une colonne doivent contenir le même type de données.

  • Lorsque les tables sont connectées par une relation, vous devez vous assurer que les deux colonnes utilisées comme clés ont valeurs qui correspondent, pour la plupart. Étant donné que PowerPivot n'applique pas l'intégrité référentielle, il est possible d'avoir des valeurs sans correspondance dans une colonne clé et pour autant de créer une relation. Toutefois, la présence de valeurs vides ou sans correspondance peut affecter les résultats de formules et l'apparence de tableaux croisés dynamiques.

  • Lorsque vous liez des tables dans votre classeur à l'aide de relations, vous agrandissez l'étendue, ou le contexte, dans laquelle vos formules sont évaluées. Par exemple, les formules incluses dans un tableau croisé dynamique peuvent être affectées par des filtres ou des en-têtes de colonnes et de lignes quelconques dans le tableau croisé dynamique. Vous pouvez écrire des formules qui manipulent le contexte, mais ce dernier peut également provoquer des changements inattendus au niveau des résultats. Pour plus d'informations, consultez Contexte dans les formules DAX.

Retour au début

Colonnes calculées et mesures

Vous pouvez créer des formules dans PowerPivot dans des colonnes calculées ou dans des mesures.

Colonnes calculées

Une colonne calculée est une colonne que vous ajoutez à une table PowerPivot existante. Au lieu de coller ou importer des valeurs dans la colonne, vous créez une formule DAX qui définit les valeurs de colonne. Si vous incluez la table PowerPivot dans un tableau croisé dynamique (ou un graphique croisé dynamique), la colonne calculée peut être utilisée comme toute autre colonne de données.

Les formules dans les colonnes calculées sont très semblables aux formules que vous créez dans Excel. Toutefois, contrairement à Excel, vous ne pouvez pas créer une formule différente pour des lignes différentes dans une table ; à la place, la formule DAX est appliquée automatiquement à la colonne entière.

Lorsqu'une colonne contient une formule, la valeur est calculée pour chaque ligne. Les résultats sont calculés pour la colonne dès que vous créez la formule. Les valeurs de colonnes sont recalculées uniquement si les données sous-jacentes sont actualisées ou en cas de recalcul manuel.

Vous pouvez également créer des colonnes calculées reposant sur des mesures ou sur d'autres colonnes calculées. Toutefois, évitez d'utiliser le même nom pour une colonne calculée et une mesure, car cela peut donner lieu à confusion. Lorsque vous faites référence à une colonne, il est préférable d'utiliser une référence de colonne complète pour éviter d'appeler une mesure par inadvertance.

Mesures

Une mesure est une formule créée spécifiquement pour être utilisée dans un tableau croisé dynamique (ou un graphique croisé dynamique) qui utilise des données PowerPivot. Les mesures peuvent reposer sur des fonctions d'agrégation standard, comme COUNT ou SUM, ou vous pouvez définir votre propre formule à l'aide de DAX. Une mesure est utilisée dans la zone Valeurs d'un tableau croisé dynamique. Si vous souhaitez placer des résultats calculés dans une zone différente d'un tableau croisé dynamique, utilisez plutôt une colonne calculée.

Pour créer une mesure, vous devez commencer par ajouter un tableau croisé dynamique ou un graphique croisé dynamique à votre classeur PowerPivot. Lorsque vous définissez une formule pour une mesure, rien ne se passe tant que vous n'avez pas placé la mesure dans un tableau croisé dynamique. Lorsque vous ajoutez la mesure, la formule est évaluée pour chaque cellule dans la zone Valeurs du tableau croisé dynamique. Comme un résultat est créé pour chaque combinaison d'en-têtes de lignes et de colonnes, le résultat de la mesure peut être différent dans chaque cellule du tableau croisé dynamique.

La définition de la mesure que vous créez est enregistrée avec sa table de données sources. Elle apparaît dans la Liste de champs PowerPivot et est disponible à tous les utilisateurs du classeur.

Retour au début

Mise à jour des résultats de formules

L'actualisation des données et le recalcul sont deux opérations distinctes, mais connexes, que vous devez comprendre lorsque vous concevez un modèle de données qui contient des formules complexes, de grandes quantités de données ou des données obtenues de sources de données externes.

L'actualisation des données est le processus de mise à jour des données dans votre classeur avec de nouvelles données issues d'une source de données externe. Vous pouvez actualiser des données manuellement aux intervalles que vous spécifiez. Sinon, si vous avez publié le classeur sur un site SharePoint, vous pouvez planifier une actualisation automatique depuis des sources externes.

Le recalcul est le processus de mise à jour des résultats des formules et des colonnes calculées dans votre classeur afin de refléter toutes les modifications apportées aux formules, ainsi que toutes les modifications des données sous-jacentes. Le recalcul peut affecter les performances des façons suivantes :

  • Pour une colonne calculée, le résultat de la formule doit toujours être recalculé, pour la colonne entière, chaque fois que vous modifiez la formule.

  • Pour une mesure, toutefois, les résultats d'une formule ne sont pas calculés tant que la mesure n'a pas été placée dans le contexte d'un tableau croisé dynamique ou d'un graphique croisé dynamique. La formule est également recalculée lorsque vous modifiez tout en-tête de ligne ou de colonne qui affecte des filtres sur les données, ou lorsque vous actualisez manuellement le tableau croisé dynamique.

Pour plus d'informations, consultez les rubriques suivantes :

Retour au début