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 Colonnes calculées.
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 Mesures dans PowerPivot.
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 les 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 prises 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 des formules et l'apparence de tableaux croisés dynamiques. Pour plus d'informations, consultez Relations et recherches dans les formules.
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
Mesures et colonnes calculées
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 pour 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
Compatibilité avec les modèles tabulaires Analysis Services et le mode DirectQuery
En général, les formules DAX que vous construisez dans PowerPivot sont totalement compatibles avec les modèles tabulaires Analysis Services. Cependant, si vous migrez votre modèle PowerPivot vers une instance Analysis Services s'exécutant en mode VertiPaq et si vous déployez le modèle en mode DirectQuery, il existe un certain nombre de limitations.
Certaines formules DAX peuvent retourner des résultats différents si vous déployez le modèle en mode DirectQuery.
Certaines formules peuvent provoquer des erreurs de validation lorsque vous déployez le modèle en mode DirectQuery, car la formule contient une fonction DAX qui n'est pas prise en charge sur une source de données relationnelle.
Pour plus d'informations, consultez https://go.microsoft.com/fwlink/?LinkId=219172.
Voir aussi
Concepts
Ajouter des calculs à vos rapports, graphiques et tableaux croisés dynamiques
Types de données prises en charge dans les classeurs PowerPivot
Vue d'ensemble du langage DAX (Data Analysis Expressions)
Autres ressources
Référence DAX (Data Analysis Expressions)
Préparer les données pour analyse dans PowerPivot
Ajouter des données et en assurer la maintenance dans PowerPivot