# Expressions d'analyse de données

Les Expressions d'Analyse de Données (DAX), constituent le langage de formules et de requêtes propre à Microsoft PowerPivot, Power BI Desktop et aux modèles Tabulaires de SQL Server Analysis Services (SSAS). DAX intègre certaines des fonctions que l'on retrouve dans les formules Excel, mais également des fonctions supplémentaires conçues pour traiter des données relationnelles et réaliser des agrégations dynamiques. En partie, DAX représente une évolution du langage d'Expression Multidimensionnelle (MDX), développé par Microsoft pour les modèles multidimensionnels des Analysis Services, souvent appelés "cubes", en y associant les fonctions de formules Excel. DAX vise à être simple et facile à apprendre, tout en mettant en avant la puissance et la flexibilité des modèles tabulaires de PowerPivot et de SSAS.

## Contexte

Le langage DAX (Data Analysis Expressions) fournit une syntaxe spécialisée pour interroger le modèle tabulaire Analysis Services. DAX n'est pas un langage de programmation. DAX est principalement un langage de formule et est également un langage de requête. DAX peut être utilisé pour définir des calculs personnalisés pour les colonnes calculées, les mesures, les tables calculées, les groupes de calcul, les chaînes de format personnalisées et les expressions de filtre dans la sécurité basée sur les rôles dans les modèles tabulaires. Le même moteur Analysis Services pour les modèles tabulaires est également utilisé dans Power BI et Power Pivot pour Excel. Power BI utilise également DAX pour les expressions de mise en forme conditionnelle et d'autres propriétés dynamiques des composants visuels.

## Histoire

DAX a été développé par l'équipe SQL Server Analysis Services de Microsoft dans le cadre du projet Gemini et publié en 2009 avec la première version du complément PowerPivot pour Excel 2010. DAX et MDX peuvent être utilisés pour interroger des modèles PowerPivot et tabulaires, mais seul MDX peut être utilisé pour interroger des modèles SSAS multidimensionnels (cubes) dans les versions de SSAS jusqu'à SQL Server 2012 RTM. Les futures versions de SSAS (modèles multidimensionnels et tabulaires) prendront en charge DAX de manière native. 2016 marque une amélioration significative avec l'adoption rapide de Microsoft Power BI et de SQL Server 2016. Power BI est un outil d'analyse en libre-service basé sur un abonnement et Power BI Desktop est une application d'analyse de bureau et de création de rapports. SQL Server 2016 inclut une nouvelle version de SQL Analysis Services Tabular avec de nombreuses améliorations par rapport aux versions précédentes. Les améliorations apportées au langage DAX après 2015 incluent la prise en charge des tables calculées, la génération automatique de tables de dates, les variables et un total de 340 fonctions.

## Types de données DAX

DAX peut traiter des valeurs pour sept types de données :
* Entier
* Réel
* Monnaie
* Date (dateheure)
* VRAI/FAUX (booléen)
* Chaîne
* Une variante
Le type de données BLOB (binary large object) est géré par le modèle tabulaire mais ne peut pas être directement manipulé par les expressions DAX.
DAX dispose d'un puissant système de gestion des types afin que vous n'ayez pas à vous soucier des types de données. Lorsque vous écrivez une expression DAX, le type résultant est basé sur le type des termes utilisés dans l'expression et sur l'opérateur utilisé. La conversion de type se produit automatiquement lors de l'évaluation de l'expression. Toutefois, si une expression peut renvoyer différents types de données en fonction des conditions, le type de données de l'expression est défini comme Variant.