DAX (pour Data Analysis expression) est un langage utilisé dans les applications Analysis Services, Power BI et Power Pivot dans Excel. Il s'agit d'un langage de requête conçu pour résoudre des problèmes de base d'analyse de données et de calcul, inspiré en partie des fonctions d'Excel mais adapté à la réalité de l'analyse de bases de données. Il offre une grande flexibilité pour les tâches d’analyse de données. Il s'agit en effet d'un ensemble de fonctions, d'opérateurs et de constantes qui peuvent être utilisés dans une formule, ou une expression, pour calculer et renvoyer une ou plusieurs valeurs.
Il est facile de créer un classeur et d’y importer des données. Vous pouvez même créer des tableaux croisés dynamiques ou des graphiques croisés dynamiques qui affichent des informations importantes sans utiliser de formules DAX. Mais que se passe-t-il si vous avez besoin d’analyser des données de ventes critiques sur plusieurs catégories de produits et pour différentes plages de dates ? Ou avez-vous besoin de combiner des données d’inventaire importantes provenant de plusieurs tables dans différentes sources de données ? Les formules DAX offrent cette fonctionnalité ainsi que de nombreuses autres fonctionnalités importantes. Apprendre à créer des formules DAX efficaces vous aidera à tirer le meilleur parti de vos données. Lorsque vous obtenez les informations dont vous avez besoin, vous pouvez commencer à résoudre de véritables problèmes commerciaux qui affectent vos résultats. Il s’agit de Business Intelligence, et DAX vous aidera à y parvenir.
Nous présenterons DAX autour de trois concepts fondamentaux très importants : la syntaxe, les fonctions et le contexte, les comprendre constituera la meilleure base sur laquelle développer vos compétences DAX.
La syntaxe comprend les différents éléments qui composent une formule, ou plus simplement, la manière dont la formule est écrite.
Cette formule comprend les éléments de syntaxe suivants :
Les fonctions sont des formules prédéfinies qui réalisent des calculs à l’aide de valeurs spécifiques, appelées arguments, indiquées dans une structure ou un ordre précis. Les arguments peuvent être d’autres fonctions, une autre formule, des références de colonnes, des chiffres, un texte, des valeurs logiques telles que TRUE ou FALSE, ou encore des constantes.
DAX inclut les catégories de fonctions suivantes : Date et heure, Information, Logique, Mathématique, Statistique, Texte et fonctions Time Intelligence. Si vous connaissez les fonctions des formules Excel, plusieurs des fonctions vous sembleront familières dans DAX ; toutefois, les formules DAX sont uniques à de nombreux égards
Dans la syntaxe ci-dessus, SUM est la fonction référencée par la lettre C.
Le contexte est l’un des concepts DAX les plus importants à maîtriser. Il existe deux types de contexte dans DAX : le contexte de ligne et le contexte de filtre.
Contexte de ligne Pour des raisons de simplicité, le contexte de ligne peut être considéré comme correspondant à la ligne actuelle. La formule =[SalesAmount] - [TotalCost] calcule une valeur dans une colonne pour chaque ligne de la table. Les valeurs de chaque ligne sont calculées à partir des valeurs de deux autres colonnes, [SalesAmount] et [TotalCost] dans la même ligne. DAX peut calculer les valeurs de chaque ligne dans la colonne car il existe un contexte : pour chaque ligne, les valeurs de la colonne [TotalCost] sont prises en compte et soustraites des valeurs de la colonne [SalesAmount]. Le contexte de ligne ne s’applique pas seulement aux colonnes calculées. Le contexte de ligne s’applique également chaque fois qu’une formule présente une fonction qui applique des filtres afin d’identifier une ligne unique dans une table. La fonction applique intrinsèquement un contexte de ligne pour chaque ligne de la table sur laquelle un filtrage a lieu. Ce type de contexte de ligne s’applique le plus souvent aux mesures.
Contexte de filtre est un peu plus difficile à comprendre que le contexte de ligne. Pour simplifier, essayez de vous représenter le contexte de filtre comme suit : un ou plusieurs filtres sont appliqués à un calcul qui détermine un résultat ou une valeur. Le contexte de filtre ne remplace pas le contexte de ligne ; il s’applique en plus du contexte de ligne. Par exemple, pour restreindre les valeurs à inclure dans un calcul, vous pouvez appliquer un contexte de filtre qui spécifie non seulement le contexte de ligne, mais indique également une valeur particulière (filtre) dans ce contexte de ligne. Le contexte de filtre est facilement observable dans des tableaux croisés dynamiques. Par exemple, lorsque vous ajoutez TotalCost à la zone Valeurs, puis ajoutez une année et une région à la ligne ou aux colonnes, vous définissez un contexte de filtre qui sélectionne un sous-ensemble de données par rapport à une année et à une région données.
Pourquoi le contexte de filtre est-il si important dans DAX ? Étant donné que si le contexte de filtre peut être appliqué très facilement en ajoutant des étiquettes de colonne et de ligne et des secteurs dans un tableau croisé dynamique, un contexte de filtre peut également être appliqué dans une formule DAX en définissant un filtre à l’aide de fonctions telles que ALL, RELATED, FILTER, CALCULATE, par des relations et par d’autres mesures et colonnes. Par exemple, examinons la formule suivante dans une mesure nommée StoreSales :
Visiblement, cette formule est plus complexe que certaines des autres formules que vous avez déjà vues. Toutefois, pour mieux comprendre cette formule, nous pouvons la décomposer, comme nous l’avons fait avec d’autres formules.
Cette formule comprend les éléments de syntaxe suivants :
Cette formule permet de s’assurer que seules les valeurs de ventes définies par la mesure Ventes, en tant que filtre, sont calculées uniquement pour les lignes de la colonne DimChannel[ChannelName] avec la valeur « Store », comme filtre.
Comme vous pouvez l’imaginer, le fait de pouvoir définir un contexte de filtre dans une formule représente une fonction majeure et puissante. Pouvoir faire référence à une valeur particulière uniquement dans une table associée ne constitue qu’un exemple de ce type. Ne vous inquiétez pas si vous ne comprenez pas encore tous les tenants et aboutissants du contexte. À mesure que vous créerez vos propres formules, vous comprendrez mieux le contexte et son importance dans DAX.
Le langage DAX peut se révéler un peu compliqué à maîtriser, mais vous disposez de nombreuses ressources pour y parvenir. Une fois que vous aurez lu cette rubrique plusieurs fois et que vous aurez fait quelques expérimentations avec vos propres formules, vous pourrez approfondir vos connaissances des concepts et des formules DAX afin de pouvoir résoudre les problèmes spécifiques à votre entreprise. Il existe de nombreuses ressources DAX à votre disposition dans l’aide de Power Pivot, la Documentation en ligne de SQL Server, les livres blancs, ainsi que les blogs rédigés à la fois par Microsoft et des professionnels du secteur décisionnel. Le centre de ressources Wiki DAX (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) est l’endroit idéal où commencer. La référence DAX (Data Analysis Expressions) constitue également une ressource très utile. Pensez à l’enregistrer dans vos favoris.
Profitez avec DAX