Cette section fournit des liens vers des exemples qui illustrent l’utilisation de formules DAX dans les scénarios suivants.
-
Exécution de calculs complexes
-
Utilisation du texte et des dates
-
Valeurs conditionnelles et test des erreurs
-
Utilisation de time intelligence
-
Classement et comparaison des valeurs
Contenu de cet article
Prise en main
Visitez le Wiki du Centre de ressources DAX où vous trouverez toutes sortes d’informations sur DAX, notamment des blogs, des exemples, des livres blancs et des vidéos fournis par des professionnels de pointe et Microsoft.
Scénarios : Exécution de calculs complexes
Les formules DAX peuvent effectuer des calculs complexes qui impliquent des agrégations personnalisées, un filtrage et l’utilisation de valeurs conditionnelles. Cette section fournit des exemples de prise en main des calculs personnalisés.
Créer des calculs personnalisés pour un tableau croisé dynamique
CALCULATE et CALCULATETABLE sont des fonctions puissantes et flexibles qui sont utiles pour définir des champs calculés. Ces fonctions vous permettent de modifier le contexte dans lequel le calcul sera effectué. Vous pouvez également personnaliser le type d’agrégation ou d’opération mathématique à effectuer. Pour obtenir des exemples, consultez les rubriques suivantes.
Appliquer un filtre à une formule
Dans la plupart des cas où une fonction DAX prend une table comme argument, vous pouvez généralement passer une table filtrée à la place, soit en utilisant la fonction FILTER au lieu du nom de la table, soit en spécifiant une expression de filtre comme l’un des arguments de fonction. Les rubriques suivantes fournissent des exemples de création de filtres et d’impact sur les résultats des formules. Pour plus d’informations, consultez Filtrer les données dans les formules DAX.
La fonction FILTER vous permet de spécifier des critères de filtre à l’aide d’une expression, tandis que les autres fonctions sont conçues spécifiquement pour filtrer les valeurs vides.
Supprimer les filtres de manière sélective pour créer un ratio dynamique
En créant des filtres dynamiques dans des formules, vous pouvez facilement répondre à des questions telles que les suivantes :
-
Quelle a été la contribution des ventes du produit actuel aux ventes totales de l’année ?
-
Combien cette division a-t-elle contribué aux bénéfices totaux pour toutes les années d’exploitation, comparativement aux autres divisions ?
Les formules que vous utilisez dans un tableau croisé dynamique peuvent être affectées par le contexte de tableau croisé dynamique, mais vous pouvez modifier de manière sélective le contexte en ajoutant ou en supprimant des filtres. L’exemple de la rubrique ALL vous montre comment procéder. Pour trouver le ratio des ventes d’un revendeur spécifique par rapport aux ventes de tous les revendeurs, vous créez une mesure qui calcule la valeur du contexte actuel divisée par la valeur du contexte ALL.
La rubrique ALLEXCEPT fournit un exemple d’effacement sélectif des filtres sur une formule. Les deux exemples vous guident dans la façon dont les résultats changent en fonction de la conception du tableau croisé dynamique.
Pour obtenir d’autres exemples de calcul des ratios et des pourcentages, consultez les rubriques suivantes :
Utilisation d’une valeur à partir d’une boucle externe
En plus d’utiliser des valeurs du contexte actuel dans les calculs, DAX peut utiliser une valeur d’une boucle précédente pour créer un ensemble de calculs associés. La rubrique suivante fournit une procédure pas à pas montrant comment générer une formule qui référence une valeur à partir d’une boucle externe. La fonction EARLIER prend en charge jusqu’à deux niveaux de boucles imbriquées.
Pour en savoir plus sur le contexte de ligne et les tables associées et sur l’utilisation de ce concept dans les formules, consultez Contexte dans les formules DAX.
Scénarios : Utilisation du texte et des dates
Cette section fournit des liens vers des rubriques de référence DAX qui contiennent des exemples de scénarios courants impliquant l’utilisation de texte, l’extraction et la composition de valeurs de date et d’heure, ou la création de valeurs basées sur une condition.
Créer une colonne clé par concaténation
Power Pivot n’autorise pas les clés composites ; par conséquent, si vous avez des clés composites dans votre source de données, vous devrez peut-être les combiner en une seule colonne de clé. La rubrique suivante fournit un exemple de création d’une colonne calculée basée sur une clé composite.
Composer une date en fonction des parties de date extraites d’une date de texte
Power Pivot utilise un type de données date/heure SQL Server pour utiliser des dates ; Par conséquent, si vos données externes contiennent des dates qui sont mises en forme différemment (par exemple, si vos dates sont écrites dans un format de date régional qui n’est pas reconnu par le moteur de données Power Pivot, ou si vos données utilisent des clés de substitution entières), vous devrez peut-être utiliser une formule DAX pour extraire les parties de date, puis composer les parties dans une représentation de date/heure valide.
Par exemple, si vous avez une colonne de dates qui ont été représentées sous forme d’entier, puis importées en tant que chaîne de texte, vous pouvez convertir la chaîne en valeur de date/heure à l’aide de la formule suivante :
=DATE(RIGHT([Valeur1],4),LEFT([Valeur1],2),MID([Valeur1],2))
valeur1 |
Result (Résultat) |
---|---|
01032009 |
1/3/2009 |
12132008 |
12/13/2008 |
06252007 |
6/25/2007 |
Les rubriques suivantes fournissent plus d’informations sur les fonctions utilisées pour extraire et composer des dates.
Définir un format de date ou de nombre personnalisé
Si vos données contiennent des dates ou des nombres qui ne sont pas représentés dans l’un des formats de texte Windows standard, vous pouvez définir un format personnalisé pour vous assurer que les valeurs sont gérées correctement. Ces formats sont utilisés lors de la conversion de valeurs en chaînes ou à partir de chaînes. Les rubriques suivantes fournissent également une liste détaillée des formats prédéfinis disponibles pour l’utilisation des dates et des nombres.
Modifier les types de données à l’aide d’une formule
Dans Power Pivot, le type de données de la sortie est déterminé par les colonnes sources et vous ne pouvez pas spécifier explicitement le type de données du résultat, car le type de données optimal est déterminé par Power Pivot. Toutefois, vous pouvez utiliser les conversions implicites de type de données effectuées par Power Pivot pour manipuler le type de données de sortie.
-
Pour convertir une date ou une chaîne numérique en nombre, multipliez par 1,0. Par exemple, la formule suivante calcule la date actuelle moins 3 jours, puis génère la valeur entière correspondante.
=(TODAY()-3)*1.0
-
Pour convertir une date, un nombre ou une valeur monétaire en chaîne, concaténer la valeur avec une chaîne vide. Par exemple, la formule suivante retourne la date du jour sous forme de chaîne.
=""& TODAY()
Les fonctions suivantes peuvent également être utilisées pour s’assurer qu’un type de données particulier est retourné :
Convertir des nombres réels en entiers
-
Convertir des nombres réels, des entiers ou des dates en chaînes
-
Convertir des chaînes en nombres ou dates réels
Scénario : Valeurs conditionnelles et test des erreurs
Comme Excel, DAX a des fonctions qui vous permettent de tester des valeurs dans les données et de retourner une valeur différente en fonction d’une condition. Par exemple, vous pouvez créer une colonne calculée qui étiquette les revendeurs comme Preferred ou Value en fonction du montant des ventes annuelles. Les fonctions qui testent des valeurs sont également utiles pour vérifier la plage ou le type de valeurs, afin d’éviter que des erreurs de données inattendues ne rompent les calculs.
Créer une valeur basée sur une condition
Vous pouvez utiliser des conditions IF imbriquées pour tester des valeurs et générer de nouvelles valeurs de manière conditionnelle. Les rubriques suivantes contiennent quelques exemples simples de traitement conditionnel et de valeurs conditionnelles :
Tester les erreurs au sein d’une formule
Contrairement à Excel, vous ne pouvez pas avoir de valeurs valides dans une ligne d’une colonne calculée et de valeurs non valides dans une autre ligne. Autrement dit, s’il y a une erreur dans une partie d’une colonne Power Pivot, la colonne entière est marquée d’une erreur, de sorte que vous devez toujours corriger les erreurs de formule qui entraînent des valeurs non valides.
Par exemple, si vous créez une formule qui divise par zéro, vous pouvez obtenir le résultat infini ou une erreur. Certaines formules échouent également si la fonction rencontre une valeur vide lorsqu’elle attend une valeur numérique. Pendant que vous développez votre modèle de données, il est préférable d’autoriser les erreurs à apparaître afin que vous puissiez cliquer sur le message et résoudre le problème. Toutefois, lorsque vous publiez des classeurs, vous devez incorporer la gestion des erreurs pour éviter que des valeurs inattendues ne provoquent l’échec des calculs.
Pour éviter de retourner des erreurs dans une colonne calculée, vous utilisez une combinaison de fonctions logiques et d’informations pour tester les erreurs et retourner toujours des valeurs valides. Les rubriques suivantes fournissent quelques exemples simples de la procédure à suivre dans DAX :
Scénarios : Utilisation de Time Intelligence
Les fonctions time intelligence DAX incluent des fonctions pour vous aider à récupérer des dates ou des plages de dates à partir de vos données. Vous pouvez ensuite utiliser ces dates ou plages de dates pour calculer des valeurs sur des périodes similaires. Les fonctions Time Intelligence incluent également des fonctions qui fonctionnent avec des intervalles de date standard, pour vous permettre de comparer des valeurs sur plusieurs mois, années ou trimestres. Vous pouvez également créer une formule qui compare les valeurs de la première et de la dernière date d’une période spécifiée.
Pour obtenir la liste de toutes les fonctions time intelligence, consultez Fonctions Time Intelligence (DAX). Pour obtenir des conseils sur l’utilisation efficace des dates et des heures dans une analyse Power Pivot, consultez Dates dans Power Pivot.
Calculer les ventes cumulées
Les rubriques suivantes contiennent des exemples de calcul des soldes de fermeture et d’ouverture. Les exemples vous permettent de créer des soldes en cours d’exécution sur différents intervalles tels que des jours, des mois, des trimestres ou des années.
Comparer les valeurs au fil du temps
Les rubriques suivantes contiennent des exemples de comparaison des sommes sur différentes périodes. Les périodes par défaut prises en charge par DAX sont les mois, les trimestres et les années.
Calculer une valeur sur une plage de dates personnalisée
Consultez les rubriques suivantes pour obtenir des exemples de récupération de plages de dates personnalisées, telles que les 15 premiers jours après le début d’une promotion commerciale.
Si vous utilisez des fonctions Time Intelligence pour récupérer un ensemble personnalisé de dates, vous pouvez utiliser ce jeu de dates comme entrée dans une fonction qui effectue des calculs, afin de créer des agrégats personnalisés sur des périodes. Consultez la rubrique suivante pour obtenir un exemple de procédure à suivre :
-
Remarque : Si vous n’avez pas besoin de spécifier une plage de dates personnalisée, mais que vous utilisez des unités comptables standard telles que des mois, des trimestres ou des années, nous vous recommandons d’effectuer des calculs à l’aide des fonctions time intelligence conçues à cet effet, telles que TOTALQTD, TOTALMTD, TOTALQTD, etc.
Scénarios : Classement et comparaison des valeurs
Pour afficher uniquement les n premiers éléments d’une colonne ou d’un tableau croisé dynamique, vous avez plusieurs options :
-
Vous pouvez utiliser les fonctionnalités d’Excel pour créer un filtre Top. Vous pouvez également sélectionner un certain nombre de valeurs supérieures ou inférieures dans un tableau croisé dynamique. La première partie de cette section explique comment filtrer les 10 premiers éléments d’un tableau croisé dynamique. Pour plus d’informations, consultez la documentation Excel.
-
Vous pouvez créer une formule qui classe dynamiquement les valeurs, puis filtrer par valeurs de classement, ou utiliser la valeur de classement comme segment. La deuxième partie de cette section explique comment créer cette formule, puis utiliser ce classement dans un segment.
Chaque méthode présente des avantages et des inconvénients.
-
Le filtre Excel Top est facile à utiliser, mais le filtre est uniquement à des fins d’affichage. Si les données sous-jacentes au tableau croisé dynamique changent, vous devez actualiser manuellement le tableau croisé dynamique pour voir les modifications. Si vous avez besoin d’utiliser dynamiquement des classements, vous pouvez utiliser DAX pour créer une formule qui compare les valeurs à d’autres valeurs d’une colonne.
-
La formule DAX est plus puissante ; En outre, en ajoutant la valeur de classement à un segment, vous pouvez simplement cliquer sur le segment pour modifier le nombre de premières valeurs affichées. Toutefois, les calculs sont coûteux en calcul et cette méthode peut ne pas être adaptée aux tables avec de nombreuses lignes.
Afficher uniquement les dix principaux éléments d’un tableau croisé dynamique
Pour afficher les valeurs supérieures ou inférieures dans un tableau croisé dynamique
|
Trier les éléments dynamiquement à l’aide d’une formule
La rubrique suivante contient un exemple d’utilisation de DAX pour créer un classement stocké dans une colonne calculée. Étant donné que les formules DAX sont calculées dynamiquement, vous pouvez toujours être sûr que le classement est correct même si les données sous-jacentes ont changé. En outre, étant donné que la formule est utilisée dans une colonne calculée, vous pouvez utiliser le classement dans un segment, puis sélectionner les 5 premières, les 10 premières ou même les 100 premières valeurs.