Partager via


Scénarios DAX

Cette section fournit des liens vers des exemples d'utilisation de formules DAX dans les scénarios suivants :

Réalisation de calculs complexes

Utilisation de texte et de dates

Valeurs conditionnelles et vérification de la présence d'erreurs

Utilisation des fonctions Time Intelligence

Classement et comparaison des valeurs

Mise en route

Si vous n'êtes pas familiarisé avec les formules DAX, nous vous recommandons de commencer par étudier les exemples proposés dans le classeur d'exemples DAX. Pour plus d'informations sur l'obtention du classeur d'exemples, consultez Obtenir des exemples de données pour PowerPivot.

Ressources supplémentaires

Vous pouvez utiliser les liens suivants pour rechercher des vidéos, des exemples supplémentaires et des procédures pas à pas concernant DAX.

Scénarios : réalisation de calculs complexes

Les formules DAX permettent de réaliser des calculs complexes avec agrégations personnalisées, filtrage et valeurs conditionnelles. Cette section fournit des exemples montrant comment commencer à utiliser les calculs personnalisés.

Créer des calculs personnalisés pour un tableau croisé dynamique

CALCULATE et CALCULATETABLE sont des fonctions puissantes et souples utilisées pour définir des mesures. Elles 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. Consultez les rubriques suivantes pour obtenir des exemples :

Appliquer un filtre à une formule

Lorsqu'une fonction DAX prend une table comme argument, vous pouvez généralement passer une table filtrée plutôt qu'une table, soit en utilisant la fonction FILTER à la place du nom de la table, soit en spécifiant une expression de filtre comme l'un des arguments de la fonction. Les rubriques suivantes donnent des exemples de création de filtres et montrent comment ces filtres affectent les résultats des formules. Pour plus d'informations, consultez Filtrer des données dans des formules.

La fonction FILTER vous permet de spécifier des critères de filtre en utilisant une expression, tandis que les autres fonctions sont conçues spécifiquement pour filtrer les valeurs vides.

Supprimer sélectivement des filtres afin de créer un ratio dynamique

En créant des filtres dynamiques dans les formules, vous pouvez facilement répondre à des questions comme les suivantes :

  • Quelle a été la contribution des ventes actuelles du produit par rapport aux ventes totales de l'année ?

  • Dans quelle mesure cette division a-t-elle contribué aux bénéfices totaux de toutes les années d'exploitation par rapport 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 ce contexte en ajoutant ou supprimant des filtres. L'exemple de la rubrique ALL vous indique comment procéder. Pour trouver le ratio des ventes d'un revendeur spécifique par rapport aux ventes de tous les revendeurs, créez une mesure qui calcule la valeur pour le contexte actuel divisée par la valeur pour le contexte ALL.

La rubrique ALLEXCEPT fournit un exemple montrant comment supprimer sélectivement des filtres dans une formule. Les deux exemples vous montrent étape par étape comment les résultats changent en fonction de la conception du tableau croisé dynamique.

Pour voir d'autres exemples de calcul de ratios et de pourcentages, consultez les rubriques suivantes :

Utilisation d'une valeur issue d'une boucle externe

Outre les valeurs du contexte actuel de calcul, DAX peut utiliser une valeur provenant d'une boucle antérieure et ainsi créer un jeu de calculs associés. La rubrique suivante décrit la procédure permettant de créer une formule qui référence une valeur issue 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, de même que sur l'utilisation de ce concept dans des formules, consultez Contexte dans les formules DAX.

Retour au début

Scénarios : utilisation de texte et de dates

Cette section fournit des liens vers des rubriques de référence sur DAX qui contiennent des exemples de scénarios courants impliquant l'utilisation de texte, l'extraction et la composition de valeurs de date et heure ou la création de valeurs selon une condition.

Créer une colonne clé par concaténation

PowerPivot n'autorise pas les clés composites. Par conséquent, si votre source de données contient des clés composites, vous devrez peut-être les combiner dans une colonne clé unique. La rubrique suivante fournit un exemple montrant comment créer une colonne calculée en fonction d'une clé composite.

Composer une date en fonction des éléments de date extraits d'une date sous forme de texte

PowerPivot fait appel à un type de données date/heure SQL Server pour l'utilisation de dates. Par conséquent, si vos données externes contiennent des dates mises en forme différemment (par exemple, si les dates sont écrites dans un format de date régional non reconnu par le moteur des données PowerPivot, ou si vos données utilisent des clés de substitution entières), vous devrez peut-être utiliser une formule DAX pour extraire les éléments de date, puis composer une date/heure valide à partir de ces éléments.

Par exemple, si vous avez une colonne de dates qui ont été représentées sous forme d'entier, puis importées sous forme de chaîne de texte, vous pouvez convertir cette chaîne en une valeur de date/heure à l'aide de la formule suivante :

=DATE(RIGHT([Value1],4),LEFT([Value1],2),MID([Value1],2))

Value1

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 garantir que ces valeurs seront correctement gérées. Ces formats sont utilisés lors de la conversion de valeurs en chaînes ou à partir de chaînes. Les rubriques suivantes donnent également une liste détaillée des formats prédéfinis qui sont disponibles lors de l'utilisation de dates et de nombres.

Modifier les types de données à l'aide d'une formule

Dans PowerPivot, le type de données de la sortie est déterminé par les colonnes sources. 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 PowerPivot. Toutefois, vous pouvez utiliser les conversions de type de données implicites effectuées par PowerPivot pour manipuler le type de données de la sortie. Pour plus d'informations sur les conversions de type, consultez Sources de données prises en charge dans les classeurs PowerPivot.

  • Pour convertir une date ou une chaîne de nombres en un nombre, multipliez par 1.0. Par exemple, la formule suivante calcule la date actuelle moins 3 jours, puis affiche en sortie la valeur entière correspondante.

    =(TODAY()-3)*1.0
    
  • Pour convertir une date, un nombre ou une valeur monétaire en une chaîne, concaténez 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 vérifier 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 dates ou nombres réels

Retour au début

Scénarios : valeurs conditionnelles et vérification de la présence d'erreurs

Comme Excel, DAX possède des fonctions qui vous permettent de tester les valeurs des données et de retourner une valeur différente selon une condition. Par exemple, vous pouvez créer une colonne calculée qui attribue l'étiquette Préféré ou Précieux aux revendeurs en fonction du montant annuel des ventes. 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 stoppent les calculs.

Créer une valeur selon 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 des exemples simples de traitement conditionnel et de valeurs conditionnelles :

Tester la présence d'erreurs dans une formule

Contrairement à Excel, vous ne pouvez pas avoir de valeurs valides dans une ligne d'une colonne calculée et des valeurs non valides dans une autre ligne. Autrement dit, si une colonne PowerPivot contient la moindre erreur, la colonne entière est signalée avec une erreur. Vous devez donc toujours corriger les erreurs de formule qui donnent 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 alors qu'une valeur numérique est attendue. Lors du développement de votre modèle de données, il est préférable de laisser les erreurs s'afficher 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 empêcher les valeurs inattendues de faire échouer les calculs.

Pour éviter que des erreurs ne soient retournées dans une colonne calculée, utilisez une combinaison de fonctions logiques et de fonctions d'information afin de tester la présence d'erreurs et de toujours retourner des valeurs valides. Les rubriques suivantes fournissent des exemples simples montrant comment procéder dans DAX :

Retour au début

Scénarios : utilisation des fonctions Time Intelligence

Les fonctions Time Intelligence du langage DAX (Data Analysis Expressions) incluent des fonctions conçues 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 semblables. Les fonctions Time Intelligence incluent également des fonctions qui utilisent des intervalles de dates standard pour vous permettre de comparer des valeurs sur des mois, des années ou des trimestres. Vous pouvez aussi créer une formule qui compare les valeurs de la première date 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 heures dans une analyse PowerPivot, consultez Dates dans PowerPivot.

Calculer les ventes cumulées

Les rubriques suivantes contiennent des exemples de calcul de soldes d'ouverture et de clôture. Ces exemples vous permettent de créer des totaux cumulés portant sur différents intervalles, tels que des jours, des mois, des trimestres ou des années.

Suivre l'évolution de valeurs dans le temps

Les rubriques suivantes contiennent des exemples de comparaison de totaux entre 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 découvrir des exemples de récupération de plages de dates personnalisées, telles que les 15 premiers jours qui suivent le lancement d'une promotion des ventes.

Si vous utilisez des fonctions Time Intelligence pour récupérer un ensemble personnalisé de dates, vous pouvez utiliser cet ensemble de dates comme données d'entrée pour une fonction qui effectue des calculs afin de créer des agrégats personnalisés sur différentes périodes. Pour découvrir un exemple de la procédure à suivre pour effectuer cette opération, consultez la rubrique suivante :

[!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, comme les mois, les trimestres ou les années, nous vous recommandons d'effectuer des calculs à l'aide des fonctions Time Intelligence conçues à cet effet, telles que TOTALQTD, TOTALMTD, etc.

Retour au début

Scénarios : classement et comparaison de valeurs

Pour afficher uniquement les n premiers éléments d'une colonne ou d'un tableau croisé dynamique, plusieurs options sont disponibles :

  • Vous pouvez utiliser les fonctionnalités d'Excel 2010 pour créer le filtre permettant d'afficher les premiers éléments. Vous pouvez également sélectionner un nombre de premières ou dernières valeurs dans un tableau croisé dynamique. La première partie de cette section explique comment filtrer les 10 premiers éléments dans un tableau croisé dynamique. Pour plus d'informations, consultez la documentation Excel.

  • Vous pouvez créer une formule qui classe les valeurs de manière dynamique, puis filtrer selon les valeurs de classement ou utiliser la valeur de classement comme segment. La seconde partie de cette section décrit 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 permettant d'afficher les premiers éléments est facile à utiliser, mais il ne peut l'être qu'à des fins d'affichage. En cas de modification des données sous-jacentes au tableau croisé dynamique, vous devez actualiser manuellement le tableau croisé dynamique pour voir les modifications. Si vous devez utiliser des classements de manière dynamique, vous pouvez faire appel à DAX pour créer une formule qui compare des valeurs à d'autres valeurs dans une colonne.

  • La formule DAX est plus puissante. Par ailleurs, si vous ajoutez la valeur de classement à un segment, il vous suffit de cliquer sur le segment pour modifier le nombre de premières valeurs qui sont affichées. Toutefois, ces calculs sont coûteux en ressources informatiques et cette méthode peut ne pas convenir aux tableaux contenant de nombreuses lignes.

Afficher uniquement les dix premiers éléments d'un tableau croisé dynamique

Pour afficher les premières ou dernières valeurs dans un tableau croisé dynamique

  1. Dans le tableau croisé dynamique, cliquez sur la flèche bas dans le titre Étiquettes de ligne.

  2. Dans le menu contextuel, sélectionnez Filtres s'appliquant aux valeurs, puis sélectionnez 10 premiers.

  3. Dans la boîte de dialogue Filtre des 10 premiers <nom de la colonne>, choisissez la colonne à classer, ainsi que le nombre de valeurs, comme suit :

    1. Sélectionnez Haut pour afficher les cellules ayant les valeurs les plus élevées ou Bas pour afficher les cellules ayant les valeurs les plus faibles.

    2. Tapez le nombre de premières ou dernières valeurs que vous souhaitez voir. La valeur par défaut est 10.

    3. Sélectionnez le mode d'affichage des valeurs :

Nom

Description

Éléments

Sélectionnez cette option pour filtrer le tableau croisé dynamique afin d'afficher uniquement la liste des premiers ou derniers éléments par leurs valeurs.

Pourcentage

Sélectionnez cette option pour filtrer le tableau croisé dynamique afin d'afficher uniquement les éléments dont la somme correspond au pourcentage spécifié.

Somme

Sélectionnez cette option pour afficher la somme des valeurs pour les premiers ou derniers éléments.

  1. Sélectionnez la colonne qui contient les valeurs que vous souhaitez classer.

  2. Cliquez sur OK.

Classer dynamiquement des éléments à 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 de l'exactitude du classement, même si les données sous-jacentes ont changé. Par ailleurs, la formule étant utilisée dans une colonne calculée, vous pouvez utiliser le classement dans un segment, puis sélectionner les 5, 10, voire 100 premières valeurs.

Retour au début

Voir aussi

Concepts

Vue d'ensemble du langage DAX (Data Analysis Expressions)

Ajouter des calculs à vos rapports, graphiques et tableaux croisés dynamiques