Partager via


Créer des chaînes de format dynamique pour les mesures

S’APPLIQUE À : Power BI Desktop Service Power BI

Avec les chaînes de format dynamique pour les mesures, vous pouvez personnaliser la façon dont les mesures apparaissent dans les visuels en appliquant de manière conditionnelle une chaîne de format avec une expression DAX distincte.

Notes

Les chaînes de format dynamique pour les mesures sont actuellement en préversion. Pendant la période de préversion, les fonctionnalités et la documentation sont susceptibles de changer.

Les chaînes de format dynamiques surmontent un inconvénient inhérent à l’utilisation de la fonction FORMAT. Autrement dit, avec FORMAT, même les types de données numériques sont retournés sous forme de chaîne, ce qui peut ne pas fonctionner avec des visuels qui nécessitent des valeurs numériques, comme des graphiques. Si vous utilisez des chaînes de format dynamique, la mesure conserve son type de données et n’est pas forcée de passer à un type de données en chaîne. Cela applique différentes chaînes de format à la mesure en fonction du contexte.

Les chaînes de format dynamique peuvent également être utilisées avec des groupes de calcul. Les mêmes modèles DAX qui fonctionnent avec des groupes de calcul peuvent également être utilisés dans des chaînes de format dynamique pour les mesures, mais l’étendue est limitée à des mesures individuelles au lieu de toutes les mesures du modèle. Pour plus d’informations, consultez Groupes de calcul – Chaînes de format dynamique.

Créer des chaînes de format dynamique

Pour créer une chaîne de format dynamique

  1. Dans le volet Données, sélectionnez la mesure pour laquelle vous souhaitez spécifier une chaîne de format dynamique.

  2. Dans le ruban Outils Mesure>Section Mise en forme>Zone de liste Mettre en forme, sélectionnez Dynamique. Une nouvelle zone de liste avec Mettre en forme déjà sélectionné apparaît à gauche de la barre de formule DAX. Cette liste déroulante vous permet de basculer entre l’expression DAX de mesure statique et l’expression DAX de la chaîne de format dynamique. La chaîne de format statique utilisée avant de passer à Dynamique est préremplie en tant que chaîne dans la barre de formule DAX.

    Capture d’écran de la liste déroulante Format.

  3. Remplacez la chaîne par une expression DAX qui génère la chaîne au format correct pour votre mesure. Par exemple, l’expression suivante recherche le format de devise approprié dans un tableau « Chaînes de format de devise par pays » :

    Capture d’écran de l’expression de mesure de format dynamique.

  4. Vérifiez que votre chaîne de format dynamique fonctionne dans un visuel.

    Pour supprimer la chaîne de format dynamique et utiliser à nouveau une chaîne de format statique, dans la zone de liste Mise en forme de la section >Mettre en forme, sélectionnez une autre option de format. Étant donné que cette action ne peut pas être annulée, une boîte de dialogue s’affiche pour vous demander si vous souhaitez continuer. Si vous souhaitez revenir à l’utilisation d’une chaîne de format dynamique, vous devez entrer à nouveau l’expression DAX.

    Capture d’écran de l’avertissement de modification de format.

Exemple

La meilleure façon d’en savoir plus sur une nouvelle fonctionnalité est de l’essayer vous-même. Vous pouvez le faire avec l’exemple de fichier PBIX Adventure Works 2020 disponible dans Exemple de modèle DAX. À l’aide de l’exemple de modèle, vous pouvez ajouter la conversion monétaire pour afficher le montant des ventes converties par année. Après le téléchargement, ouvrez le fichier dans Power BI Desktop.

Créer de nouvelles tables

L’exemple de modèle ne contient pas toutes les données nécessaires pour créer et utiliser des chaînes de format dynamique. Pour commencer, vous devez d’abord ajouter deux tables.

  1. Dans le ruban Accueil, sélectionnez Entrer des données.

  2. Dans la boîte de dialogue Créer un tableau, entrez le nom du tableau suivant, puis copiez et collez le tableau suivant :

    Nom du tableau : Chaînes de format de devise par pays

    Pays ou région Devise Format
    Australie Dollar AU$#,0.00
    Canada Dollar C$#,0.00
    Danemark Krone kr#,0
    Zone Euro Euro € #,0.00
    Japon Yen ¥ #,0
    Suède Krona kr#,0
    Suisse Franc CHF#,0.00
    Royaume-Uni Dièse £ #,0
    États-Unis Dollar US$#,0.00
  3. Vérifiez que le tableau est correct, puis cliquez sur Charger.

    Capture d’écran de la boîte de dialogue Créer une table.

  4. Répétez les étapes précédentes pour le tableau suivant :

    Nom du tableau : Taux de change moyens annuels

    Pays ou région Devise Year Taux de change moyen annuel
    Australie Dollar 2022 1,442
    Australie Dollar 2021 1,332
    Australie Dollar 2020 1,452
    Australie Dollar 2019 1,439
    Australie Dollar 2018 1.34
    Australie Dollar 2017 1 358
    Canada Dollar 2022 1,301
    Canada Dollar 2021 1,254
    Canada Dollar 2020 1,341
    Canada Dollar 2019 1,327
    Canada Dollar 2018 1,297
    Canada Dollar 2017 1,35
    Danemark Krone 2022 7,077
    Danemark Krone 2021 6.29
    Danemark Krone 2020 6,538
    Danemark Krone 2019 6,67
    Danemark Krone 2018 6,319
    Danemark Krone 2017 6,864
    Zone Euro Euro 2022 0,951
    Zone Euro Euro 2021 0,846
    Zone Euro Euro 2020 0,877
    Zone Euro Euro 2019 0,893
    Zone Euro Euro 2018 0,848
    Zone Euro Euro 2017 0,923
    Japon Yen 2022 131,454
    Japon Yen 2021 109,817
    Japon Yen 2020 106,725
    Japon Yen 2019 109,008
    Japon Yen 2018 110,424
    Japon Yen 2017 116,667
    Suède Krona 2022 10,122
    Suède Krona 2021 8,584
    Suède Krona 2020 9,205
    Suède Krona 2019 9,457
    Suède Krona 2018 8,703
    Suède Krona 2017 8,894
    Suisse Franc 2022 0.955
    Suisse Franc 2021 0,914
    Suisse Franc 2020 0,939
    Suisse Franc 2019 0,994
    Suisse Franc 2018 0,979
    Suisse Franc 2017 1 024
    Royaume-Uni Dièse 2022 0,811
    Royaume-Uni Dièse 2021 0,727
    Royaume-Uni Dièse 2020 0,779
    Royaume-Uni Dièse 2019 0.784
    Royaume-Uni Dièse 2018 0,75
    Royaume-Uni Dièse 2017 0,808

Créer une colonne Année

Une nouvelle colonne Année est nécessaire dans le tableau Date existant.

  1. En mode Modèle, cliquez avec le bouton droit sur le tableau Date, puis sélectionnez Nouvelle colonne.

  2. Dans la barre de formule DAX, entrez l’expression suivante : Year = YEAR([Date]), puis appuyez sur Entrée.

    Capture d’écran de la formule Year dans la barre de formule DAX.

Créer des relations

Des relations sont nécessaires entre vos nouveaux tableaux Taux de change moyens annuels et Chaînes de format de devise par pays, et entre le tableau Taux de change moyens annuels et le tableau Date existant.

  1. Si vous avez activé la détection automatique des relations, la relation entre Chaînes de format de devise par pays et Taux de change moyens annuels sur la colonne Pays peut avoir été créée pour vous. Si ce n’est pas le cas, créez cette relation :

    • Tableau 1 : Taux de change moyens annuels
    • Colonne du tableau 1 : Pays
    • Cardinalité : Plusieurs à un
    • Tableau 2 : Chaînes de format de devise par pays
    • Colonne du tableau 2 : Pays
    • Rendre cette relation active : Oui
    • Direction du filtrage croisé : Simple

    La relation devrait avoir l’aspect suivant :

    Capture d’écran des propriétés de relation entre les chaînes de format monétaire pays et les taux de change moyens annuels.

  2. Si vous avez activé la détection automatique des relations, une relation entre Chaînes de format de devise par pays et Secteur de vente sur la colonne Pays peut avoir été créée. Toutefois, cette relation n’est pas correcte pour notre modèle. Dans la vue Modèle, supprimez cette relation.

  3. Au lieu de cela, créez une relation entre Taux de change moyens annuels et Date dans la colonne Année.

    • Tableau 1 : Taux de change moyens annuels
    • Colonne du tableau 1 : Année
    • Cardinalité : Plusieurs à plusieurs
    • Tableau 2 : Date
    • Colonne du tableau 2 : Année
    • Rendre cette relation active : Oui
    • Direction du filtrage croisé : Unique (« Taux de change moyen annuel » filtre « Date »)

    La relation devrait avoir l’aspect suivant :

    Capture d’écran de Relation.

  4. Enregistrez votre modèle.

Créer un tableau de groupe de mesures

Un groupe de mesures vous aide à organiser différentes mesures en les plaçant dans une seule table.

  1. Dans le ruban Accueil, sélectionnez Entrer des données.

  2. Dans la boîte de dialogue Créer un tableau, laissez les valeurs vides. Nommez le tableau Mesures des ventes, puis cliquez sur Charger. Ce tableau contient vos nouvelles mesures.

Créer des mesures

  1. Dans le volet Données, développez et cliquez avec le bouton droit sur Mesures des ventes, puis sélectionnez Nouvelle mesure. Entrez l’expression DAX suivante dans la barre de formule DAX, puis appuyez sur Entrée :

    Sales Amount = SUM(Sales[Sales Amount])
    

    Il doit se présenter comme suit :

    Capture d'écran de la formule DAX pour mesurer le montant des ventes.

  2. Dans Mesures des ventes, cliquez avec le bouton droit sur Colonne1, puis sélectionnez Masquer dans la vue Rapport. Cela modifie les mesures Sales en un groupe de mesures, qui apparaît désormais en haut du volet Données avec une icône de groupe de mesures, comme suit :

    Capture d’écran de Column1 dans le groupe de mesures Sales.

  3. Vous pouvez maintenant créer une mesure pour calculer le taux de change. Cliquez avec le bouton droit sur Mesures des ventes, sélectionnez Nouvelle mesure, entrez l’expression suivante dans la barre de formule DAX, puis appuyez sur Entrée :

    Exchange Rate (Yearly Avg) = 
    IF (
        ISBLANK ( SELECTEDVALUE ( 'Country Currency Format Strings'[Country] ) )
            || SELECTEDVALUE ( 'Country Currency Format Strings'[Country] ) = "United States",
        1,
        AVERAGE ( 'Yearly Average Exchange Rates'[Yearly Average Exchange Rate] )
    )
    
    

    Elle devrait se présenter comme suit : Capture d'écran de la formule Dax du taux de change dans l'éditeur DAX.

  4. Vous créez maintenant une autre mesure pour convertir la mesure Montant des ventes en d’autres devises. Cliquez avec le bouton droit sur Mesures des ventes, sélectionnez Nouvelle mesure, entrez l’expression suivante dans la barre de formule DAX, puis appuyez sur Entrée :

        Converted Sales Amount = 
        SUMX('Date',
        CALCULATE( [Sales Amount] * [Exchange Rate (Yearly Avg)]))
    
    

    Le groupe de mesures Mesures des ventes doit maintenant avoir l’aspect suivant : Capture d’écran de la formule de mesure conversion du montant des ventes.

Créer un rapport

  1. Accédez à la vue Rapport. Ajoutez une nouvelle page vierge au rapport.

  2. Ajoutez un visuel de graphique en courbes à votre nouvelle page de rapport. Vous utilisez ce visuel pour afficher votre mesure avant d’ajouter la chaîne de format dynamique pour les mesures.

  3. Dans le volet Données >Mesures des ventes, sélectionnez Montant des ventes converti. Sans cliquer ailleurs, sélectionnez également Année dans le tableau Date.

    Capture d’écran du visuel graphique en courbes en mode Rapport.

  4. Copiez et collez le visuel afin d’avoir deux visuels de graphique en courbes. Remplacez le deuxième visuel de graphique en courbes par un visuel de tableau, puis déplacez-le sous le graphique en courbes, comme suit :

    Capture d’écran du visuel Copier un graphique en courbes.

  5. Ajoutez un visuel de segment à votre page de rapport. Dans le ruban Format, ajoutez Pays du tableau Chaînes de format de devise par pays au segment.

    Capture d’écran du segment Country.

  6. Réorganisez les visuels jusqu’à ce qu’ils aient une meilleure disposition, comme suit :

    Capture d’écran des visuels Réorganiser.

  7. Bien que ce ne soit pas obligatoire, vous pouvez modifier les propriétés visuelles pour créer un rapport plus agréable :

    Segment

    • Paramètres du segment : sélection simple
    • Taille et style, remplissage : 10 px, tous les bords
    • Taille et style, bordure visuelle : gris clair, 10 px coins arrondis
    • Paramètres du segment, Style : Vignette
    • En-tête du segment : Désactivé
    • Valeurs, bordure : gauche, #333333, 6 lignes de largeur

    Table de charge de travail

    • Taille et style, remplissage : 10 px, tous les bords
    • Taille et style, bordure visuelle : gris clair, 10 px coins arrondis
    • Grille, Quadrillage horizontal : Blanc, 2 de largeur
    • Grille, Quadrillage vertical : Blanc, 2 de largeur
    • Grille, Bordure : Blanc
    • Grille, Options : 2 lignes de remplissage
    • Valeurs, Valeurs : couleur d’arrière-plan #F6F4F4
    • Valeurs, Valeurs : autre couleur d’arrière-plan #F6F4F4
    • En-têtes de colonnes, Texte : Gras, Couleur du texte blanc, Couleur d’arrière-plan #0D6ABF

    Graphique en courbes

    • Taille et style, remplissage : 10 px, tous les bords
    • Taille et style, bordure visuelle : gris clair, 10 px coins arrondis
    • Titre, Sous-titre : Activé
    • Axe Y, Titre : Désactivé
    • Axe Y : Désactivé
    • Marqueurs : Activé
    • Étiquettes de données : Activé
    • Étiquettes de données, Valeurs : Gras, Bleu

    Canevas (facultatif)

    • Arrière-plan du canevas : gris clair, transparence de 85 %

    Avec ces propriétés visuelles, vous obtenez une belle page de rapport, comme suit :

    Capture d'écran du fond de toile grise pour le visuel.

Créer une chaîne de format dynamique

La sélection de différents noms de Pays dans le segment affiche le résultat de la mesure Montant des ventes converti dans les visuels, mais pas dans le format approprié pour ce pays ou cette région.

  1. Dans le volet Données >Mesures des ventes, sélectionnez Montant des ventes converti.

  2. Dans le ruban Outils de mesure, cliquez sur la liste déroulante Format, puis sélectionnez Dynamique.

  3. La zone de liste déroulante à gauche de la barre de formule doit maintenant indiquer Format, et la formule dans la barre de formule doit avoir une chaîne de format. Remplacez la chaîne de format par l’expression DAX suivante, puis appuyez sur Entrée :

    SELECTEDVALUE ( 'Country Currency Format Strings'[Format], "\$#,0.00;(\$#,0.00);\$#,0.00" )
    

    Il doit se présenter comme suit :

    Capture d’écran de la formule dynamique Chaînes de format monétaire country.

  4. Sélectionnez un autre pays dans le segment. Les visuels de tableau et de graphique en courbes doivent maintenant afficher le montant monétaire converti, dans le format approprié, pour ce pays ou cette région. Essayez de sélectionner un autre pays/région dans le segment pour voir comment les visuels changent.

    Capture d’écran du visuel De montant des ventes convertis.

  5. Enregistrez votre modèle.

Problèmes connus et considérations

Pendant la préversion, les problèmes et limitations suivants sont en cours de résolution :

  • Les visuels ont des options de formatage qui peuvent avoir un impact sur la façon dont la chaîne de format est affichée. Si le format s’affiche de manière inattendue dans un visuel, accédez aux options Format visuel, recherchez Unités d’affichage et remplacez Auto par Aucune.

    Capture d’écran des unités d’affichage de l’auto à aucun.

  • La mesure elle-même peut être référencée directement dans sa chaîne de format dynamique à l’aide de son nom, comme [Mesure A], ou indirectement à l’aide de SELECTEDMEASURE().

  • Les chaînes de format dynamique pour les mesures sont uniquement destinées aux mesures de modèle. Les mesures de rapport qui peuvent être ajoutées à un rapport de connexion dynamique ne peuvent pas avoir de chaînes de format dynamique pour les mesures.

  • Avec DirectQuery pour Analysis Services, lorsque vous cliquez sur Apporter des modifications à ce modèle dans un rapport de connexion dynamique, la connexion est déplacée vers DirectQuery sur Analysis Services. En général, vous pouvez apporter des modifications aux chaînes de format des mesures du modèle distant. Pendant la préversion :

    • Les mesures de modèle distants avec des chaînes de format dynamique définies ne peuvent pas apporter des modifications de chaîne de format à une chaîne de format statique ou à une autre expression DAX de chaîne de format dynamique.
    • Les mesures de modèle distants ne peuvent pas être modifiés d’une chaîne de format statique en une expression DAX de chaîne de format dynamique définie dans le modèle local.
    • Les mesures de modèle local ne peuvent pas utiliser des chaînes de format dynamique pour les mesures.