Partager via


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

S’APPLIQUE À : Power BI Desktop Service Power BI

En utilisant des chaînes de format dynamique pour les mesures, vous pouvez contrôler l’apparence des mesures dans les visuels. Appliquez de manière conditionnelle une chaîne de format à l’aide d’une formule DAX (Data Analysis Expression) distincte.

Les chaînes de format dynamique résolvent un problème avec la fonction FORMAT. FORMAT retourne tous les résultats sous forme de chaînes, même de types de données numériques. Ce comportement peut entraîner des problèmes avec des visuels tels que des graphiques qui ont besoin de valeurs numériques.

Lorsque vous utilisez des chaînes de format dynamique, la mesure conserve son type de données et ne passe pas à un type de données de chaîne. Vous appliquez différentes chaînes de format à la mesure en fonction du contexte.

Vous pouvez également utiliser des chaînes de format dynamique avec des groupes de calcul. Les mêmes modèles DAX qui fonctionnent avec des groupes de calcul fonctionnent également dans des chaînes de format dynamique pour les mesures. Toutefois, l’étendue est limitée aux 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

  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 de mesure , sous la section Mise en forme , sélectionnez Dynamique dans la zone de liste Format . Une nouvelle liste déroulante avec Format 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 chaîne de format dynamique. La chaîne de format statique que vous avez utilisée avant de passer à Dynamic est préremplie en tant que chaîne dans la barre de formule DAX.

Utiliser la partie valeur d’une zone de texte

Lorsque vous utilisez des zones de texte dans vos rapports, vous pouvez afficher des valeurs de mesure avec une mise en forme dynamique. Pour utiliser la partie valeur d’une zone de texte :

  1. Sélectionnez la zone de texte dans votre rapport.

  2. Dans le volet Format , sous Valeurs, sélectionnez le bouton champ (icône fx).

  3. Choisissez la mesure qui a une chaîne de format dynamique appliquée.

  4. La zone de texte affiche la valeur de mesure à l’aide de la chaîne de format dynamique.

    Pour plus d’informations sur les zones de texte et le contenu dynamique, consultez Ajouter des zones de texte et des formes à des rapports Power BI.

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

  5. 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 la chaîne de format monétaire souhaitée à partir d’un tableau Chaînes de format monétaire country/région :

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

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

    Pour supprimer la chaîne de format dynamique et revenir à l’aide d’une chaîne de format statique, dans la liste déroulante Format de la section >Mise 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 ajouter deux tables.

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

  2. Dans la boîte de dialogue Créer une table , entrez les chaînes de format monétaire pays/région dans le champ Nom , puis copiez et collez le tableau suivant :

    Pays/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 la table semble correcte et sélectionnez 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/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

Ajoutez une nouvelle colonne Year à la table Date existante.

  1. En mode Modèle , cliquez avec le bouton droit sur la table Date et 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

Créez des relations entre vos nouvelles tables de taux de change moyens annuels et de chaînes de format monétaire pays/région, et entre la table Taux de change moyens annuels et la table Date existante.

  1. Si vous activez la détection automatique pour les relations (sous l’onglet Outils de colonne, sélectionnez Gérer les relations, puis sélectionnez Détection automatique), la relation entre les chaînes de format monétaire pays/région et les taux de change moyens annuels de la colonne Pays/Région peut être créée pour vous. Si ce n’est pas le cas, créez cette relation à l’aide du bouton Nouvelle relation dans les outils> de colonneGérer les relations :

    • Tableau 1 : Taux de change moyens annuels
    • Tableau 1 Colonne : pays/région
    • Cardinalité : Plusieurs à un
    • Tableau 2 : Chaînes de format monétaire pays/région
    • Tableau 2 Colonne : Pays/Région
    • 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/région et les taux de change moyens annuels.

  2. Si vous activez la détection automatique des relations, une relation entre les chaînes de format de devise de pays/région et le territoire de vente sur la colonne Pays/Région pourrait être créée. Supprimez cette relation, car elle n’est pas correcte pour le modèle.

  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
    • Sens du filtre croisé : unique ('Taux de change moyen annuel' filtre la 'Date')

    La relation devrait avoir l’aspect suivant :

    Capture d’écran de la 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 la table mesures de ventes, puis sélectionnez 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 Sales, 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 de mesure du montant des ventes.

  2. Dans Mesures de vente, cliquez avec le bouton droit sur Colonne1 et sélectionnez Masquer en mode Rapport. Cette modification rend les mesures Sales 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 la colonne 1 dans le groupe de mesures des ventes.

  3. Vous pouvez maintenant créer une mesure pour calculer le taux de change. Cliquez avec le bouton droit sur Mesures Sales, 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/Region Currency Format Strings'[Country/Region] ) )
            || SELECTEDVALUE ( 'Country/Region Currency Format Strings'[Country/Region] ) = "United States",
        1,
        AVERAGE ( 'Yearly Average Exchange Rates'[Yearly Average Exchange Rate] )
    )
    
    

    Il doit ressembler à ceci : capture d’écran de la formule DAX du taux d’échange dans l’éditeur DAX.

  4. À présent, créez une autre mesure pour convertir la mesure Sales Amount en d’autres devises. Cliquez avec le bouton droit sur Mesures Sales, 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 Sales doit maintenant ressembler à ceci : capture d’écran de la formule de mesure du montant des ventes converti.

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. Utilisez ce visuel pour voir 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 sélectionner ailleurs, sélectionnez Année dans la table Date .

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

  4. Copiez et collez le visuel afin que vous ayez 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 de liste à votre page de rapport en sélectionnant segment de liste dans le volet Visualisations . Dans le volet Données, sélectionnez Pays/Région dans la table chaînes de format de devise pays/région pour l’ajouter au filtre.

    Capture d’écran du segment Pays/Région.

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

    Capture d’écran de Réorganiser les visuels.

  7. Bien qu’il ne soit pas nécessaire, vous pouvez modifier les propriétés visuelles pour créer un rapport plus agréable. Utilisez le bouton Mettre en forme votre visuel dans le volet Visualisations pour apporter les modifications suivantes :

    Segment

    • Onglet visuel Paramètres du segment Sélection unique Activé
    • Onglet Général>Propriétés>Marge intérieure : 10 px, tous les bords
    • Ongletgénéral>effets>bordure visuelle: Activé, gris clair, coins arrondis de 10 pixels
    • Onglet Général>Titre : Désactivé
    • Onglet visuel>Boutons>Bordure: #333333, largeur de ligne 6

    Table

    • Onglet Général>Propriétés>Marge intérieure : 10 px, tous les bords
    • Onglet Général >Effets>Bordure visuelle : Activé, gris clair, coins arrondis de 10 px
    • Onglet Visuel>Grille>Grilles horizontales : Activé, Blanc, 2 de largeur
    • Onglet>Visuel>Quadrillage vertical : Activé, Blanc, 2 de largeur
    • Onglet>, >bordure de grille : blanc
    • Options> de l’onglet >Visuel : remplissage de 2 lignes
    • Onglet Visuel>, couleur> : #F6F4F4
    • Onglet Visuel>Valeurs>Couleur d’arrière-plan alternée : #F6F4F4
    • Onglet Visuel>En-têtes de colonne>Texte : Gras, Couleur de texte blanc, Couleur d’arrière-plan #0D6ABF

    Graphique en courbes

    • Onglet Général>Propriétés>Marge intérieure : 10 px, tous les bords
    • Général>Effets>Bordure visuelle : activée, gris clair, coins arrondis de 10 px
    • Onglet Général>Propriétés>Titre>Sous-titre: Activé
    • Onglet > > Titre : Désactivé
    • Visuel>onglet Y >axe Valeurs : Désactivé
    • Onglet Visuel>Marqueurs : Activé
    • Onglet Visuel>Étiquettes de données : Activé
    • Onglet>Visuel>Étiquettes de données : Gras, Bleu, Valeur

    Canevas (facultatif)

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

    À l’aide de ces propriétés visuelles, vous créez une page de rapport qui ressemble à ceci :

    Capture d’écran de l’arrière-plan du canevas gris à des fins visuelles.

Créer une chaîne de format dynamique

Lorsque vous sélectionnez différents noms de pays/région dans le segmenteur, les visuels affichent le résultat de la mesure 'montant des ventes converti', mais pas dans le format approprié pour ce pays/région.

  1. Dans le volet Données , sous Mesures ventes, sélectionnez Convertir le montant des ventes.

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

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

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

    Il doit se présenter comme suit :

    Capture d’écran de la formule dynamique des chaînes de format de devise par pays/région.

  4. Sélectionnez un autre pays/région dans le segmenteur. Les visuels de tableau et de graphique en courbes affichent désormais le montant monétaire converti, au format correct, pour ce pays/région ou 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 du montant des ventes converti.

  5. Enregistrez votre modèle.

Problèmes connus et considérations

  • Les visuels ont des options de mise en forme qui peuvent affecter la façon dont la chaîne de format s’affiche. Si la mise en forme s’affiche de façon inattendue dans un visuel, accédez aux options Format des visualisations>, recherchez les unités d’affichage et remplacez-les de Automatique à Aucun.

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

  • Vous pouvez référencer la mesure elle-même dans sa chaîne de format dynamique directement à l’aide de son nom, tel que [Mesure A], ou indirectement à l’aide de SELECTEDMEASURE().

  • Les chaînes de format dynamique pour les mesures s’appliquent uniquement aux mesures de modèle. Vous ne pouvez pas ajouter de chaînes de format dynamique pour les mesures de rapport dans un rapport de connexion dynamique.

  • En utilisant DirectQuery pour Analysis Services, lorsque vous sélectionnez Apporter des modifications à ce modèle sur un rapport de connexion dynamique, vous déplacez la connexion 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. En utilisant des chaînes de format dynamique pour les mesures :

    • 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.
    • Vous ne pouvez pas modifier les mesures de modèle distant d’une chaîne de format statique en une expression DAX 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.