Del via


Opret dynamiske formatstrenge til målinger

GÆLDER FOR: Power BI Desktop Power BI-tjeneste

Ved at bruge dynamiske formatstrenge til takter kan du kontrollere, hvordan takter fremstår i visuelle fremstillinger. Anvende en formatstreng betinget ved at bruge en separat Data Analysis Expression (DAX)-formel.

Notat

Dynamiske formatstrenge til mål er tilgængelige i Power BI Desktop og Power BI Report Server (januar 2025 og senere). Hvis du bruger Power BI Report Server, skal du sikre dig, at du har den nyeste version installeret. For mere information, se Hvad er nyt i Power BI Report Server.

Dynamiske formatstrenge løser et problem med FORMAT-funktionen. FORMAT returnerer alle resultater som strenge, selv numeriske datatyper. Denne adfærd kan give problemer med visuelle elementer som diagrammer, der kræver numeriske værdier.

Når du bruger dynamiske formatstrenge, beholder målingen sin datatype og ændrer sig ikke til en streng-datatype. Du anvender forskellige formatstrenge på takten afhængigt af konteksten.

Du kan også bruge dynamiske formatsstrenge med beregningsgrupper. De samme DAX-mønstre, der arbejder med beregningsgrupper, fungerer også i dynamiske formatstrenge til mål. Omfanget er dog begrænset til individuelle mål i stedet for alle mål i modellen. For mere information, se Beregningsgrupper - Dynamiske formatstrenge.

Opret dynamiske formatstrenge

  1. Vælg den måling, du vil angive en streng til dynamisk format for, i ruden Data .
  2. I Measure tools-båndet , under Formatting-sektionen , vælg Dynamisk i Format-listeboksen . Der vises en ny rulleliste, hvor Format allerede er valgt, til venstre for DAX-formellinjen. På denne rulleliste kan du skifte mellem DAX-udtrykket for statisk måling og DAX-udtrykket for den dynamiske formatstreng. Den statiske formatstreng, du brugte før skiftet til Dynamisk, er forudfyldt som en streng i DAX-formellinjen.

Brug værdidelen af en tekstboks

Når du arbejder med tekstbokse i dine rapporter, kan du vise måleværdier med dynamisk formatering. For at bruge værdidelen af en tekstboks:

  1. Vælg tekstfeltet i din rapport.

  2. I Format-panelet , under Værdier, vælg feltknappen (fx-ikon).

  3. Vælg det mål, der har en dynamisk formatstreng anvendt.

  4. Tekstboksen viser målværdien ved hjælp af den dynamiske formatstreng.

    For mere information om tekstbokse og dynamisk indhold, se Tilføj tekstbokse og former til Power BI-rapporter.

    Skærmbillede af rullelisten Formatér.

  5. Overskriv strengen med et DAX-udtryk, der skriver den korrekte formatstreng for målingen. For eksempel slår følgende udtryk den ønskede valutaformatstreng op fra en Country/Region Currency Format Strings-tabel :

    Skærmbillede af målingsudtrykket dynamisk format.

  6. Kontrollér, at din dynamiske formatstreng fungerer i en visualisering.

    Hvis du vil slette den dynamiske formatstreng og vende tilbage til at bruge en statisk formatstreng, skal du vælge en anden formatindstilling i rullemenuen Formatering sektionen >Format . Da handlingen ikke kan fortrydes, vises der en dialogboks, hvor du bliver spurgt, om du vil fortsætte. Hvis du vil gå tilbage til at bruge en dynamisk formatstreng igen, skal du angive DAX-udtrykket igen.

    Skærmbillede af advarsel om ændring af format.

Eksempel

Den bedste måde at få mere at vide om en ny funktion på er at prøve den selv. Det kan du gøre med eksempelfilen Adventure Works 2020 PBIX , der er tilgængelig i DAX-eksempelmodellen. Ved hjælp af eksempelmodellen kan du tilføje valutakonvertering for at få vist omregnet salgsbeløb efter år. Når du har downloadet, skal du åbne filen i Power BI Desktop.

Opret nye tabeller

Eksempelmodellen indeholder ikke alle de data, der er nødvendige for at oprette og bruge dynamiske formatstrenge. For at komme i gang skal du tilføje to tabeller.

  1. På båndet Hjem skal du vælge Angiv data.

  2. I dialogboksen Opret tabel skal du indtaste Lande-/områdevalutaformatstrenge i feltet Navn og derefter kopiere og indsætte følgende tabel:

    Land/område Valuta Format
    Australien Dollar KR#,0,00
    Canada Dollar C$#,0,00
    Danmark Krone kr#,0
    Euroområdet Euro € #,0,00
    Japan Yen ¥ #,0
    Sverige Krone kr#,0
    Schweiz Franc CHF#,0.00
    Storbritannien Pund Kr. #,0
    USA Dollar US$#,00
  3. Kontroller, at tabellen ser korrekt ud, og vælg Indlæs.

    Skærmbillede af dialogboksen Opret tabel.

  4. Gentag de forrige trin for følgende tabel:

    Tabelnavn: Årlige gennemsnitlige valutakurser

    Land/område Valuta Year Årlig gennemsnitlig valutakurs
    Australien Dollar 2022 1.442
    Australien Dollar 2021 1.332
    Australien Dollar 2020 1.452
    Australien Dollar 2019 1.439
    Australien Dollar 2018 1.34
    Australien 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
    Danmark Krone 2022 7.077
    Danmark Krone 2021 6.29
    Danmark Krone 2020 6.538
    Danmark Krone 2019 6.67
    Danmark Krone 2018 6.319
    Danmark Krone 2017 6.864
    Euroområdet Euro 2022 0.951
    Euroområdet Euro 2021 0.846
    Euroområdet Euro 2020 0.877
    Euroområdet Euro 2019 0.893
    Euroområdet Euro 2018 0.848
    Euroområdet Euro 2017 0.923
    Japan Yen 2022 131.454
    Japan Yen 2021 109.817
    Japan Yen 2020 106.725
    Japan Yen 2019 109.008
    Japan Yen 2018 110.424
    Japan Yen 2017 116.667
    Sverige Krone 2022 10.122
    Sverige Krone 2021 8.584
    Sverige Krone 2020 9.205
    Sverige Krone 2019 9.457
    Sverige Krone 2018 8.703
    Sverige Krone 2017 8.894
    Schweiz Franc 2022 0.955
    Schweiz Franc 2021 0.914
    Schweiz Franc 2020 0.939
    Schweiz Franc 2019 0.994
    Schweiz Franc 2018 0.979
    Schweiz Franc 2017 1.024
    Storbritannien Pund 2022 0.811
    Storbritannien Pund 2021 0.727
    Storbritannien Pund 2020 0.779
    Storbritannien Pund 2019 0.784
    Storbritannien Pund 2018 0.75
    Storbritannien Pund 2017 0.808

Opret en kolonne af typen Year

Tilføj en nyårskolonne til den eksisterende dato-tabel.

  1. Højreklik på tabellen Dato i modelvisning, og vælg Ny kolonne.

  2. I DAX-formellinjen indtastes følgende udtryk: Year = YEAR([Date]), og tryk derefter Enter.

    Skærmbillede af formlen Year på DAX-formellinjen.

Oprette relationer

Opret relationer mellem dine nye tabeller for årlige gennemsnitlige vekselkurser og land/region valutaformatstrenge samt mellem tabellen for årlige gennemsnitlige valutakurser og den eksisterende datotabel.

  1. Hvis du slår Autodetect for relationer til (vælg under fanen KolonneværktøjerManage relations, og vælg derefter Autodetect), kan forholdet mellem Country/Region Currency Format Strings og Yearly Average Exchange Courses i kolonnen Land/Region blive oprettet for dig. Hvis ikke, opret denne relation ved at bruge knappen Ny relation i Kolonneværktøjer>Administrer relationer:

    • Tabel 1: Årlige gennemsnitlige valutakurser
    • Tabel 1 Kolonne: Land/område
    • Kardinalitet: Mange til én
    • Tabel 2: Valutaformatstrenge for land/område
    • Tabel 2 Kolonne: Land/område
    • Aktivér denne relation: Ja
    • Tværgående filterretning: Enkelt

    Relationen skal se sådan ud:

    Skærmbillede af relationsegenskaber mellem lande/område, valutaformatstrenge og årlige gennemsnitlige valutakurser.

  2. Hvis du slår Autodetect til for relationer, kan der oprettes et forhold mellem Country/Region Currency Format Strings og Sales-område i kolonnen Land/Region . Slet denne relation, fordi den ikke er korrekt for modellen.

  3. Opret i stedet en relation mellem Årlige gennemsnitlige valutakurser og Dato i kolonnen Year .

    • Tabel 1: Årlige gennemsnitlige valutakurser
    • Tabel 1- kolonne: År
    • Kardinalitet: Mange til mange
    • Tabel 2: Dato
    • Tabel 2- kolonne: År
    • Aktivér denne relation: Ja
    • Krydsfilterretning: Single ('Årlig gennemsnitlig valutakurs' filtrerer 'Dato')

    Relationen skal se sådan ud:

    Skærmbillede af relation.

  4. Gem din model.

Opret en målingsgruppetabel

En målingsgruppe hjælper dig med at organisere forskellige målinger ved at have dem i en enkelt tabel.

  1. På båndet Hjem skal du vælge Angiv data.
  2. Lad værdierne være tomme i dialogboksen Opret tabel. Navngiv tabellen Salgsmål, og vælg derefter Indlæs. Denne tabel indeholder dine nye målinger.

Oprette målinger

  1. I Data-panelet udvid og højreklik på Salgsmål, og vælg derefter Ny måling. Indtast følgende DAX-udtryk på DAX-formellinjen, og tryk derefter på Enter:

    Sales Amount = SUM(Sales[Sales Amount])
    

    Det skal se sådan ud:

    Skærmbillede af målingen Sales amount DAX.

  2. Højreklik på Kolonne1 i Salgsmålinger, og vælg Skjul i rapportvisning. Denne ændring gør Salg til en målgruppe, som nu vises øverst i Datapanelet med et målgruppeikon, sådan her:

    Skærmbillede af Kolonne1 i målingsgruppen Salg.

  3. Du kan nu oprette en måling for at beregne valutakursen. Højreklik på Salgsmålinger, vælg Ny måling, angiv følgende udtryk på DAX-formellinjen, og tryk på Enter:

    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] )
    )
    
    

    Det skal se sådan ud: Skærmbillede af DAX-formlen for valutakurs i DAX-editoren.

  4. Opret nu en anden måling for at konvertere målingen Salgsbeløb til andre valutaer. Højreklik på Salgsmålinger, vælg Ny måling, angiv følgende udtryk på DAX-formellinjen, og tryk på Enter:

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

    Målingsgruppen Sales bør nu se sådan ud: Skærmbillede af formlen for målingen Konverteret salgsbeløb.

Opret en rapport

  1. Gå til Rapportvisning. Føj en ny tom side til rapporten.

  2. Føj et kurvediagramvisual til din nye rapportside. Brug denne visualisering til at se din måling, før du tilføjer den dynamiske formatstreng for målinger.

  3. Vælg Konverteret salgsbeløb i ruden> Data. Hvis du ikke vælger andre steder, skal du også vælge År i tabellen Dato .

    Skærmbillede af visualiseringen Kurvediagram i rapportvisning.

  4. Kopiér og indsæt visualiseringen, så du har to visualiseringer i kurvediagrammet. Ændr det visuelle diagram på anden linje til et tabel-visual, og flyt det derefter under linjediagrammet, sådan her:

    Skærmbillede af visualiseringen Kopiér kurvediagram.

  5. Føj en visualisering til listeudsnit til rapportsiden ved at vælge Listeudsnit i ruden Visualiseringer . I ruden Data skal du vælge Land/område i tabellen Lande/område valutaformatstrenge for at føje det til udsnittet.

    Skærmbillede af udsnittet Land/område.

  6. Omarranger visualiseringerne, indtil de har et bedre layout, f.eks.:

    Skærmbillede af Omarranger visualiseringer.

  7. Selvom det ikke er nødvendigt, kan du ændre visuelle egenskaber for at lave en pænere rapport. Brug knappen Formatér visualiseringen i ruden Visualiseringer til at foretage følgende ændringer:

    Udsnitsfilter

    • Fanen> Visualisering Indstillinger for >Enkelt valg>Til
    • Fanen >Generelt Egenskaber>Polstring: 10 px, alle kanter
    • Generelle>>Visuell kant: Tændt, lysegrå, 10-px afrundede hjørner
    • Fanen> Generelt Titel: Fra
    • Fanen >Knapper>Kant: #333333, 6 linjebredde

    Tabel

    • Fanen >Generelt Egenskaber>Polstring: 10 px, alle kanter
    • Generelle>>Visuell kant: Tændt, lysegrå, 10-px afrundede hjørner
    • Fanen >Gitter>Vandrette gitterlinjer: Til, Hvid, 2 bredde
    • Fanen >Gitter>Lodrette gitterlinjer: Til, Hvid, 2 bredde
    • Fanen >Gitter>Kant: Hvid
    • Fanen Visuel>Gitterindstillinger>: 2 rækkers margen
    • Fanen >Værdier>Baggrundsfarve: #F6F4F4
    • Fanen >Værdier>Alternativ baggrundsfarve: #F6F4F4
    • Fanen >Kolonneoverskrifter>Tekst: Fed, Tekstfarve hvid, Baggrundsfarve #0D6ABF

    Kurvediagram

    • Fanen >Generelt Egenskaber>Polstring: 10 px, alle kanter
    • Generelle>>Visuelle kanter: Tændt, lysegrå, 10 px afrundede hjørner
    • Fanen> Generelt Egenskaber>Titel>Undertekst: Til
    • Fanen >>: Fra
    • Fanen>Visualisering Y-akse>Værdier: Fra
    • Fanen>Visuel fane Markører: Til
    • Dataetiketter under > Visualisering: Til
    • > > Værdi: Fed, Blå

    Lærred (valgfrit)

    • Lærredsindstillinger>Lærredsbaggrund: lysegrå, 85% gennemsigtighed

    Ved at bruge disse visuelle egenskaber opretter du en rapportside, der ser sådan ud:

    Skærmbillede af grå lærredsbaggrund for visualisering.

Opret en streng til dynamisk format

Når du vælger forskellige land-/regionsnavne i sliceren, viser grafikken resultatet af Konverteret Salgsbeløb, men ikke i det rigtige format for det pågældende land/region.

  1. I ruden Data under Salgsmålinger skal du vælge Konverteret salgsbeløb.

  2. På båndet Måleværktøjer skal du vælge Dynamisk på rullelisten Formatér .

  3. Rullemenuen til venstre for formellinjen siger nu Format, og formlen i formellinjen har en formatstreng. Erstat formatstrengen med følgende DAX-udtryk, og tryk derefter på Enter:

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

    Det skal se sådan ud:

    Skærmbillede af den dynamiske formel for lande/områdevalutaformat.

  4. Vælg et andet land/område i udsnittet. Tabellen og linjediagrammets visuals viser nu det konverterede valutabeløb, i korrekt format, for det pågældende land/region eller region. Prøv at vælge et andet land/område i udsnittet for at se, hvordan visualiseringerne ændres.

    Skærmbillede af visualiseringen Konverteret salgsbeløb.

  5. Gem din model.

Dynamiske formatstrenge til varighedsmål

Når du har varighedsdata lagret i millisekunder, er det ikke brugervenligt at vise råværdier som "3.600.000 ms". Du kan bruge dynamiske formatstrenge til at vise "1,0 h" i stedet, mens du beholder den underliggende måling i millisekunder for nøjagtige beregninger og sammenligninger.

Opret en testtabel

For at prøve dette mønster skal du oprette en beregnet tabel med værdier for prøvevarighed:

Events = 
DATATABLE(
    "Event", STRING,
    "DurationMs", INTEGER,
    {
        {"Quick click", 500},
        {"Page load", 5000},
        {"Report refresh", 120000},
        {"Data export", 7200000}
    }
)

Opret varighedsmålet

Skab et mål, der summerer varigheden og returnerer de rå millisekunder:

Duration (ms) = SUM(Events[DurationMs])

Tilføj den dynamiske formatstreng

Tilføj en dynamisk formatstreng, der konverterer og formaterer værdien til den passende tidsenhed:

VAR ms = SELECTEDMEASURE()
RETURN
    SWITCH(
        TRUE(),
        ms < 1000, FORMAT(ms, "#,0") & " \m\s",
        ms < 60000, "'" & FORMAT(ms / 1000, "#,0.0") & " s'",
        ms < 3600000, "'" & FORMAT(ms / 60000, "#,0.0") & " m'",
        "'" & FORMAT(ms / 3600000, "#,0.0") & " h'"
    )

Hvordan formatstrengen fungerer

Følgende tabel viser, hvordan rå millisekundværdier konverteres til læsbare formater:

Rå værdi (ms) Konverteret Skærm
500 500 500 ms
5,000 5.0 5.0 s
120,000 2.0 2,0 m
7,200,000 2.0 2,0 timer

Funktionen SELECTEDMEASURE() henter den faktiske målværdi, konverterer den til den relevante enhed og indpakker den derefter i en literal format-streng ved hjælp af enkeltstående citationstegn.

Fordele ved denne tilgang

  • Beregningerne forbliver nøjagtige: Din måling returnerer millisekunder, så totaler, gennemsnit og sammenligninger fungerer korrekt.
  • Skærmen er menneskelæsbar: Brugerne ser "2,5 s" i stedet for "2.500".
  • Et mønster, mange takter: Anvend samme formatstreng på alle dine varighedsmål.
  • Diagrammer fungerer korrekt: I modsætning til at bruge FORMAT() det i selve målet, bevarer dynamiske formatstrenge den numeriske datatype til visualiseringer.

Tips til varighedsformatstrenge

  • Brug \m\s den til at undslippe "ms" som bogstavelig tekst i formatstrenge.
  • De enkelte citater ('...') i return-sætningen tvinger Power BI til at behandle hele den formaterede streng som en literal.
  • Dette mønster fungerer også med beregningsgrupper. Anvend det én gang og formater flere målinger automatisk.

Tips

Hvis du har flere varighedsmål, der har brug for denne formatstreng, kan du overveje at oprette en brugerdefineret DAX-funktion til at definere formateringslogikken én gang og genbruge den på tværs af alle dine mål.

Kendte problemer og overvejelser

  • Visuals har formateringsmuligheder, der kan påvirke, hvordan formatstrengen ser ud. Hvis formateringen uventet vises i en visuel version, gå til visuelle visualiseringsformat-indstillinger>, søg efter displayenheder, og skift dem fra Auto til Ingen.

    Skærmbillede af Vis enheder fra automatisk til ingen.

    For at slå display-enheder fra for alle visuelle elementer i en rapport, kan du bruge et brugerdefineret rapporttema. Opret en JSON-fil med følgende indhold og importer den som et tema:

    {
       "$schema": "https://raw.githubusercontent.com/microsoft/powerbi-desktop-samples/main/Report%20Theme%20JSON%20Schema/reportThemeSchema-2.149.json",
       "name": "DisplayUnitsNone",
       "visualStyles": {
         "*": {
           "*": {
             "*": [
               {
                 "displayUnits": 1,
                 "labelDisplayUnits": 1,
                 "titleDisplayUnits": 1,
                 "detailDisplayUnits": 1,
                 "valueDisplayUnits": 1,
                 "secLabelDisplayUnits": 1,
                 "titleLabelDisplayUnits": 1
               }
             ]
           }
         },
         "cardVisual": {
           "*": {
             "*": [{
                 "$id": "default",
                 "displayUnits": 1,
                 "labelDisplayUnits": 1,
                 "titleDisplayUnits": 1,
                 "detailDisplayUnits": 1,
                 "valueDisplayUnits": 1,
                 "secLabelDisplayUnits": 1,
                 "titleLabelDisplayUnits": 1
               }
             ]
           }
         }
       }
    }
    
  • Du kan referere til selve målingen i dens dynamiske formatstreng direkte ved at bruge dens navn, såsom [Measure A], eller indirekte ved at bruge SELECTEDMEASURE().

  • Dynamiske formatstrenge for mål gælder kun for modelmål. Du kan ikke tilføje dynamiske formatstrenge til rapportmålinger i en live connect-rapport.

  • Ved at bruge DirectQuery for Analysis Services, når du vælger Lav ændringer til denne model i en live connect-rapport, flytter du forbindelsen til DirectQuery over Analysis Services. Generelt kan du foretage ændringer af formatstrengene for fjernmodelmålingerne. Ved at bruge dynamiske formatstrenge til målinger:

    • Eksterne modelmålinger med definerede dynamiske formatstrenge blokeres fra at foretage ændringer af formatstrengen i en statisk formatstreng eller til et andet DAX-udtryk for strengen dynamisk format.
    • Du kan ikke ændre fjernmodelmålinger fra en statisk formatstreng til et DAX-udtryk for dynamisk formatstreng, der er defineret i den lokale model.
    • Lokale modelmålinger er blokeret fra at bruge dynamiske formatstrenge til målinger.