{"id":3585,"date":"2023-10-12T08:04:52","date_gmt":"2023-10-12T08:04:52","guid":{"rendered":"https:\/\/akyalab.com\/?p=3585"},"modified":"2023-10-12T08:04:53","modified_gmt":"2023-10-12T08:04:53","slug":"quick-tour-of-the-dax-language","status":"publish","type":"post","link":"https:\/\/akyalab.com\/fr\/quick-tour-of-the-dax-language\/","title":{"rendered":"Pr\u00e9sentation rapide du langage DAX"},"content":{"rendered":"<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"320\" src=\"https:\/\/akyalab.com\/wp-content\/uploads\/2023\/10\/use-dax-power-bi-desktop-social.png\" alt=\"\" class=\"wp-image-3586\" srcset=\"https:\/\/akyalab.com\/wp-content\/uploads\/2023\/10\/use-dax-power-bi-desktop-social.png 640w, https:\/\/akyalab.com\/wp-content\/uploads\/2023\/10\/use-dax-power-bi-desktop-social-300x150.png 300w, https:\/\/akyalab.com\/wp-content\/uploads\/2023\/10\/use-dax-power-bi-desktop-social-18x9.png 18w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Qu\u2019est que le langage DAX ?<\/h2>\n\n\n\n<p>DAX (pour Data Analysis expression) est un langage utilis\u00e9 dans les applications Analysis Services, Power BI et Power Pivot dans Excel. Il s'agit d'un langage de requ\u00eate con\u00e7u pour r\u00e9soudre des probl\u00e8mes de base d'analyse de donn\u00e9es et de calcul, inspir\u00e9 en partie des fonctions d'Excel mais adapt\u00e9 \u00e0 la r\u00e9alit\u00e9 de l'analyse de bases de donn\u00e9es. Il offre une grande flexibilit\u00e9 pour les t\u00e2ches d\u2019analyse de donn\u00e9es. Il s'agit en effet d'un ensemble de fonctions, d'op\u00e9rateurs et de constantes qui peuvent \u00eatre utilis\u00e9s dans une formule, ou une expression, pour calculer et renvoyer une ou plusieurs valeurs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pourquoi DAX est-il si important ?<\/h2>\n\n\n\n<p>Il est facile de cr\u00e9er un classeur et d\u2019y importer des donn\u00e9es. Vous pouvez m\u00eame cr\u00e9er des tableaux crois\u00e9s dynamiques ou des graphiques crois\u00e9s dynamiques qui affichent des informations importantes sans utiliser de formules DAX. Mais que se passe-t-il si vous avez besoin d\u2019analyser des donn\u00e9es de ventes critiques sur plusieurs cat\u00e9gories de produits et pour diff\u00e9rentes plages de dates ? Ou avez-vous besoin de combiner des donn\u00e9es d\u2019inventaire importantes provenant de plusieurs tables dans diff\u00e9rentes sources de donn\u00e9es\u00a0? Les formules DAX offrent cette fonctionnalit\u00e9 ainsi que de nombreuses autres fonctionnalit\u00e9s importantes. Apprendre \u00e0 cr\u00e9er des formules DAX efficaces vous aidera \u00e0 tirer le meilleur parti de vos donn\u00e9es. Lorsque vous obtenez les informations dont vous avez besoin, vous pouvez commencer \u00e0 r\u00e9soudre de v\u00e9ritables probl\u00e8mes commerciaux qui affectent vos r\u00e9sultats. Il s\u2019agit de Business Intelligence, et DAX vous aidera \u00e0 y parvenir.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comment apprendre le DAX ?<\/h2>\n\n\n\n<p>Nous pr\u00e9senterons DAX autour de trois concepts fondamentaux tr\u00e8s importants : la syntaxe, les fonctions et le contexte, les comprendre constituera la meilleure base sur laquelle d\u00e9velopper vos comp\u00e9tences DAX.<\/p>\n\n\n\n<ul class=\"has-large-font-size\">\n<li style=\"font-size:22px\">Syntaxe<\/li>\n<\/ul>\n\n\n\n<p>La syntaxe comprend les diff\u00e9rents \u00e9l\u00e9ments qui composent une formule, ou plus simplement, la mani\u00e8re dont la formule est \u00e9crite.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"434\" height=\"148\" src=\"http:\/\/akyalab.com\/wp-content\/uploads\/2023\/10\/36eac5cc-400b-4ff8-b2c9-f5e2953cfb452.jpg\" alt=\"\" class=\"wp-image-3591\" srcset=\"https:\/\/akyalab.com\/wp-content\/uploads\/2023\/10\/36eac5cc-400b-4ff8-b2c9-f5e2953cfb452.jpg 585w, https:\/\/akyalab.com\/wp-content\/uploads\/2023\/10\/36eac5cc-400b-4ff8-b2c9-f5e2953cfb452-300x76.jpg 300w, https:\/\/akyalab.com\/wp-content\/uploads\/2023\/10\/36eac5cc-400b-4ff8-b2c9-f5e2953cfb452-18x5.jpg 18w\" sizes=\"(max-width: 434px) 100vw, 434px\" \/><\/figure>\n\n\n\n<p>Cette formule comprend les \u00e9l\u00e9ments de syntaxe suivants\u00a0:<\/p>\n\n\n\n<ol type=\"1\">\n<li>(A) Nom de la mesure Somme du montant des ventes. Les formules de mesures peuvent inclure le nom de la mesure, suivi de deux-points, puis la formule de calcul.<\/li>\n\n\n\n<li>(B) L\u2019op\u00e9rateur de signe \u00e9gal (=) indique le d\u00e9but de la formule de calcul. Au moment du calcul, un r\u00e9sultat est retourn\u00e9.<\/li>\n\n\n\n<li>(C) La fonction SUM additionne tous les nombres de la colonne [SalesAmount]. Vous en apprendrez plus sur les fonctions dans la suite de ce didacticiel.<\/li>\n\n\n\n<li>(D) Les parenth\u00e8ses () d\u00e9limitent un ou plusieurs arguments. Toutes les fonctions requi\u00e8rent au moins un argument. Un argument transmet une valeur \u00e0 une fonction.<\/li>\n\n\n\n<li>(E) La table r\u00e9f\u00e9renc\u00e9e FactSales.<\/li>\n\n\n\n<li>(F) La colonne r\u00e9f\u00e9renc\u00e9e [SalesAmount] de la table FactSales. Avec cet argument, la fonction SUM sait sur quelle colonne effectuer l\u2019agr\u00e9gation d\u2019une somme.<\/li>\n<\/ol>\n\n\n\n<ul class=\"has-large-font-size\">\n<li style=\"font-size:22px\">Fonctions<\/li>\n<\/ul>\n\n\n\n<p>Les fonctions sont des formules pr\u00e9d\u00e9finies qui r\u00e9alisent des calculs \u00e0 l\u2019aide de valeurs sp\u00e9cifiques, appel\u00e9es arguments, indiqu\u00e9es dans une structure ou un ordre pr\u00e9cis. Les arguments peuvent \u00eatre d\u2019autres fonctions, une autre formule, des r\u00e9f\u00e9rences de colonnes, des chiffres, un texte, des valeurs logiques telles que TRUE ou FALSE, ou encore des constantes.<\/p>\n\n\n\n<p>DAX inclut les cat\u00e9gories de fonctions suivantes : Date et heure, Information, Logique, Math\u00e9matique, Statistique, Texte et fonctions Time Intelligence. Si vous connaissez les fonctions des formules Excel, plusieurs des fonctions vous sembleront famili\u00e8res dans DAX ; toutefois, les formules DAX sont uniques \u00e0 de nombreux \u00e9gards<\/p>\n\n\n\n<ul>\n<li>Une fonction DAX fait toujours r\u00e9f\u00e9rence \u00e0 une table ou une colonne compl\u00e8te. Si vous souhaitez utiliser certaines valeurs particuli\u00e8res d\u2019une table ou colonne, vous pouvez ajouter des filtres \u00e0 la formule.<\/li>\n\n\n\n<li>Si vous devez personnaliser des calculs en fonction de chaque ligne, DAX fournit des fonctions qui vous permettent d\u2019utiliser la valeur de ligne actuelle ou une valeur associ\u00e9e en tant que genre d\u2019argument pour effectuer des calculs qui varient selon le contexte. Vous en apprendrez plus sur le contexte dans la suite de ce didacticiel.<\/li>\n\n\n\n<li>DAX inclut de nombreuses fonctions qui retournent une table, plut\u00f4t qu\u2019une valeur. La table n\u2019est pas affich\u00e9e, mais elle est utilis\u00e9e pour fournir une entr\u00e9e \u00e0 d\u2019autres fonctions. Par exemple, vous pouvez r\u00e9cup\u00e9rer une table, puis compter les valeurs distinctes qu\u2019elle contient, ou calculer les sommes dynamiques entre les colonnes ou les tables filtr\u00e9es.<\/li>\n\n\n\n<li>DAX int\u00e8gre une grande diversit\u00e9 de fonctions Time Intelligence. Ces fonctions vous permettent de d\u00e9finir ou de s\u00e9lectionner des plages de dates et d\u2019effectuer des calculs dynamiques bas\u00e9s sur ces informations. Par exemple, vous pouvez comparer les sommes sur des p\u00e9riodes parall\u00e8les.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"434\" height=\"148\" src=\"http:\/\/akyalab.com\/wp-content\/uploads\/2023\/10\/36eac5cc-400b-4ff8-b2c9-f5e2953cfb452.jpg\" alt=\"\" class=\"wp-image-3591\" srcset=\"https:\/\/akyalab.com\/wp-content\/uploads\/2023\/10\/36eac5cc-400b-4ff8-b2c9-f5e2953cfb452.jpg 585w, https:\/\/akyalab.com\/wp-content\/uploads\/2023\/10\/36eac5cc-400b-4ff8-b2c9-f5e2953cfb452-300x76.jpg 300w, https:\/\/akyalab.com\/wp-content\/uploads\/2023\/10\/36eac5cc-400b-4ff8-b2c9-f5e2953cfb452-18x5.jpg 18w\" sizes=\"(max-width: 434px) 100vw, 434px\" \/><\/figure>\n\n\n\n<p>Dans la syntaxe ci-dessus, SUM est la fonction r\u00e9f\u00e9renc\u00e9e par la lettre C.<\/p>\n\n\n\n<ul>\n<li style=\"font-size:22px\">Contexte<\/li>\n<\/ul>\n\n\n\n<p>Le contexte est l\u2019un des concepts DAX les plus importants \u00e0 ma\u00eetriser. Il existe deux types de contexte dans DAX : le contexte de ligne et le contexte de filtre.<\/p>\n\n\n\n<p><strong>Contexte de ligne <\/strong>Pour des raisons de simplicit\u00e9, le contexte de ligne peut \u00eatre consid\u00e9r\u00e9 comme correspondant \u00e0 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\u00e9es \u00e0 partir des valeurs de deux autres colonnes, [SalesAmount] et [TotalCost] dans la m\u00eame 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\u2019applique pas seulement aux colonnes calcul\u00e9es. Le contexte de ligne s\u2019applique \u00e9galement chaque fois qu\u2019une formule pr\u00e9sente une fonction qui applique des filtres afin d\u2019identifier une ligne unique dans une table. La fonction applique intrins\u00e8quement un contexte de ligne pour chaque ligne de la table sur laquelle un filtrage a lieu. Ce type de contexte de ligne s\u2019applique le plus souvent aux mesures.<\/p>\n\n\n\n<p><strong>Contexte de filtre <\/strong>est un peu plus difficile \u00e0 comprendre que le contexte de ligne. Pour simplifier, essayez de vous repr\u00e9senter le contexte de filtre comme suit : un ou plusieurs filtres sont appliqu\u00e9s \u00e0 un calcul qui d\u00e9termine un r\u00e9sultat ou une valeur. Le contexte de filtre ne remplace pas le contexte de ligne ; il s\u2019applique en plus du contexte de ligne. Par exemple, pour restreindre les valeurs \u00e0 inclure dans un calcul, vous pouvez appliquer un contexte de filtre qui sp\u00e9cifie non seulement le contexte de ligne, mais indique \u00e9galement une valeur particuli\u00e8re (filtre) dans ce contexte de ligne. Le contexte de filtre est facilement observable dans des tableaux crois\u00e9s dynamiques. Par exemple, lorsque vous ajoutez TotalCost \u00e0 la zone Valeurs, puis ajoutez une ann\u00e9e et une r\u00e9gion \u00e0 la ligne ou aux colonnes, vous d\u00e9finissez un contexte de filtre qui s\u00e9lectionne un sous-ensemble de donn\u00e9es par rapport \u00e0 une ann\u00e9e et \u00e0 une r\u00e9gion donn\u00e9es.<\/p>\n\n\n\n<p>Pourquoi le contexte de filtre est-il si important dans DAX ? \u00c9tant donn\u00e9 que si le contexte de filtre peut \u00eatre appliqu\u00e9 tr\u00e8s facilement en ajoutant des \u00e9tiquettes de colonne et de ligne et des secteurs dans un tableau crois\u00e9 dynamique, un contexte de filtre peut \u00e9galement \u00eatre appliqu\u00e9 dans une formule DAX en d\u00e9finissant un filtre \u00e0 l\u2019aide de fonctions telles que ALL, RELATED, FILTER, CALCULATE, par des relations et par d\u2019autres mesures et colonnes. Par exemple, examinons la formule suivante dans une mesure nomm\u00e9e StoreSales :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"475\" height=\"155\" src=\"http:\/\/akyalab.com\/wp-content\/uploads\/2023\/10\/7cd32f6f-ffd2-4bde-a638-7e79e6c2d37d2.jpg\" alt=\"\" class=\"wp-image-3597\" srcset=\"https:\/\/akyalab.com\/wp-content\/uploads\/2023\/10\/7cd32f6f-ffd2-4bde-a638-7e79e6c2d37d2.jpg 460w, https:\/\/akyalab.com\/wp-content\/uploads\/2023\/10\/7cd32f6f-ffd2-4bde-a638-7e79e6c2d37d2-300x101.jpg 300w, https:\/\/akyalab.com\/wp-content\/uploads\/2023\/10\/7cd32f6f-ffd2-4bde-a638-7e79e6c2d37d2-18x6.jpg 18w\" sizes=\"(max-width: 475px) 100vw, 475px\" \/><\/figure>\n\n\n\n<p>Visiblement, cette formule est plus complexe que certaines des autres formules que vous avez d\u00e9j\u00e0 vues. Toutefois, pour mieux comprendre cette formule, nous pouvons la d\u00e9composer, comme nous l\u2019avons fait avec d\u2019autres formules.<\/p>\n\n\n\n<p>Cette formule comprend les \u00e9l\u00e9ments de syntaxe suivants\u00a0:<\/p>\n\n\n\n<ol type=\"1\">\n<li>(A) Nom de la mesure StoreSales, suivi de deux-points :.<\/li>\n\n\n\n<li>(B) L\u2019op\u00e9rateur de signe \u00e9gal (=) indique le d\u00e9but de la formule.<\/li>\n\n\n\n<li>(C) La fonction CALCULATE \u00e9value une expression, en tant qu\u2019argument, dans un contexte modifi\u00e9 par les filtres sp\u00e9cifi\u00e9s.<\/li>\n\n\n\n<li>(D) Les parenth\u00e8ses () d\u00e9limitent un ou plusieurs arguments.<\/li>\n\n\n\n<li>(E) Une mesure [Ventes] dans la m\u00eame table qu\u2019une expression. La mesure Sales contient la formule : =SUM(FactSales[SalesAmount]).<\/li>\n\n\n\n<li>(F) Une virgule (,) s\u00e9pare chaque filtre.<\/li>\n\n\n\n<li>(G) La colonne r\u00e9f\u00e9renc\u00e9e et une valeur particuli\u00e8re DimChannel[ChannelName] =\u00ab Store \u00bb, comme filtre.<\/li>\n<\/ol>\n\n\n\n<p>Cette formule permet de s\u2019assurer que seules les valeurs de ventes d\u00e9finies par la mesure Ventes, en tant que filtre, sont calcul\u00e9es uniquement pour les lignes de la colonne DimChannel[ChannelName] avec la valeur \u00ab Store \u00bb, comme filtre.<\/p>\n\n\n\n<p>Comme vous pouvez l\u2019imaginer, le fait de pouvoir d\u00e9finir un contexte de filtre dans une formule repr\u00e9sente une fonction majeure et puissante. Pouvoir faire r\u00e9f\u00e9rence \u00e0 une valeur particuli\u00e8re uniquement dans une table associ\u00e9e ne constitue qu\u2019un exemple de ce type. Ne vous inqui\u00e9tez pas si vous ne comprenez pas encore tous les tenants et aboutissants du contexte. \u00c0 mesure que vous cr\u00e9erez vos propres formules, vous comprendrez mieux le contexte et son importance dans DAX.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>Le langage DAX peut se r\u00e9v\u00e9ler un peu compliqu\u00e9 \u00e0 ma\u00eetriser, 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\u00e9rimentations avec vos propres formules, vous pourrez approfondir vos connaissances des concepts et des formules DAX afin de pouvoir r\u00e9soudre les probl\u00e8mes sp\u00e9cifiques \u00e0 votre entreprise. Il existe de nombreuses ressources DAX \u00e0 votre disposition dans l\u2019aide de Power Pivot, la Documentation en ligne de SQL Server, les livres blancs, ainsi que les blogs r\u00e9dig\u00e9s \u00e0 la fois par Microsoft et des professionnels du secteur d\u00e9cisionnel. Le centre de ressources Wiki DAX (http:\/\/social.technet.microsoft.com\/wiki\/contents\/articles\/dax-resource-center.aspx) est l\u2019endroit id\u00e9al o\u00f9 commencer. <a rel=\"noreferrer noopener\" href=\"https:\/\/learn.microsoft.com\/fr-fr\/dax\/\" target=\"_blank\">La r\u00e9f\u00e9rence DAX (Data Analysis Expressions)<\/a> constitue \u00e9galement une ressource tr\u00e8s utile. Pensez \u00e0 l\u2019enregistrer dans vos favoris.<\/p>\n\n\n\n<p>Profitez avec DAX<\/p>","protected":false},"excerpt":{"rendered":"<p>Qu\u2019est-ce que le DAX ? DAX (pour Data Analysis expression) est un langage utilis\u00e9 dans les applications Analysis Services, Power BI et Power Pivot dans Excel. Il s'agit d'un langage de requ\u00eate con\u00e7u pour r\u00e9soudre des probl\u00e8mes de base d'analyse de donn\u00e9es et de calcul, inspir\u00e9 en partie des fonctions d'Excel mais adapt\u00e9 \u00e0 la r\u00e9alit\u00e9 de l'analyse de bases de donn\u00e9es. Il offre une grande flexibilit\u00e9 [\u2026]<\/p>","protected":false},"author":3,"featured_media":3586,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[98],"tags":[],"_links":{"self":[{"href":"https:\/\/akyalab.com\/fr\/wp-json\/wp\/v2\/posts\/3585"}],"collection":[{"href":"https:\/\/akyalab.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/akyalab.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/akyalab.com\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/akyalab.com\/fr\/wp-json\/wp\/v2\/comments?post=3585"}],"version-history":[{"count":14,"href":"https:\/\/akyalab.com\/fr\/wp-json\/wp\/v2\/posts\/3585\/revisions"}],"predecessor-version":[{"id":3603,"href":"https:\/\/akyalab.com\/fr\/wp-json\/wp\/v2\/posts\/3585\/revisions\/3603"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/akyalab.com\/fr\/wp-json\/wp\/v2\/media\/3586"}],"wp:attachment":[{"href":"https:\/\/akyalab.com\/fr\/wp-json\/wp\/v2\/media?parent=3585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/akyalab.com\/fr\/wp-json\/wp\/v2\/categories?post=3585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/akyalab.com\/fr\/wp-json\/wp\/v2\/tags?post=3585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}