Opprette dynamiske formatstrenger for mål

GJELDER FOR: Power BI Desktop Power Bi-tjeneste

Med dynamiske formatstrenger for mål kan du bestemme hvordan mål vises i visualobjekter ved å bruke en formatstreng betinget med et eget DAX-uttrykk.

Merk

Dynamiske formatstrenger for mål er for øyeblikket i forhåndsvisning. Når du er i forhåndsvisning, vil funksjonalitet og dokumentasjon sannsynligvis endres.

Dynamiske formatstrenger overvinner en iboende ulempe ved å bruke FORMAT-funksjonen. Det vil si, med FORMAT selv numeriske datatyper returneres som en streng, som kanskje ikke fungerer med visualobjekter som krever numeriske verdier, for eksempel diagrammer. Når du bruker dynamiske formatstrenger, beholder målet datatypen og blir ikke tvunget til å endre til en strengdatatype. Dette bruker forskjellige formatstrenger på målet avhengig av konteksten.

Dynamiske formatstrenger kan også brukes med beregningsgrupper. De samme DAX-mønstrene som fungerer med beregningsgrupper, kan også brukes i dynamiske formatstrenger for mål, men omfanget er begrenset til individuelle mål i stedet for alle mål i modellen. Hvis du vil ha mer informasjon, kan du se Beregningsgrupper – dynamiske formatstrenger.

Opprette dynamiske formatstrenger

Slik oppretter du en dynamisk formatstreng

  1. Velg målet du vil angi en dynamisk formatstreng for, i dataruten.

  2. Velg Dynamisk i formateringslisten Formateringsliste> i målverktøybåndet.> En ny listeboks med Format allerede valgt, vises til venstre for DAX-formellinjen. Denne rullegardinlisten er hvordan du kan bytte mellom det statiske DAX-uttrykket for mål og dax-uttrykket for dynamisk formatstreng. Uansett hva den statiske formatstrengen var i bruk før du bytter til Dynamisk, forhåndsutfylles som en streng på DAX-formellinjen.

    Skjermbilde av rullegardinlisten Format.

  3. Overskriv strengen med et DAX-uttrykk som sender ut riktig formatstreng for målet. Følgende uttrykk slår for eksempel opp valutaformatstrengen vi ønsker fra tabellen «Formatstrenger for landvaluta» :

    Skjermbilde av måluttrykk for dynamisk format.

  4. Kontroller at den dynamiske formatstrengen fungerer i et visualobjekt.

    Hvis du vil slette den dynamiske formatstrengen og gå tilbake til ved hjelp av en statisk formatstreng, velger du et annet formatalternativ i formateringsdelen>. Fordi det ikke er noen angre til denne handlingen, vises en dialogboks som spør om du vil fortsette. Hvis du vil gå tilbake til å bruke en dynamisk formatstreng på nytt, må du angi DAX-uttrykket på nytt.

    Skjermbilde av advarsel om endring av format.

Eksempel

Den beste måten å lære om en ny funksjon på, er å prøve den selv. Du kan gjøre nettopp dette med eksempelfilen Adventure Works 2020 PBIX tilgjengelig på DAX-eksempelmodellen. Ved hjelp av eksempelmodellen kan du legge til valutakonvertering for å vise konvertert salgsbeløp etter år. Når du har lastet ned, åpner du filen i Power BI Desktop.

Opprett nye tabeller

Eksempelmodellen inneholder ikke alle dataene som er nødvendige for å opprette og bruke dynamiske formatstrenger. Du må først legge til to tabeller for å komme i gang.

  1. Velg Skriv inn dataHjem-båndet.

  2. Skriv inn følgende tabellnavn i dialogboksen Opprett tabell, og kopier og lim deretter inn følgende tabell:

    Tabellnavn: Formatstrenger for landvaluta

    Land Valuta. Format
    Australia Dollar (dollar) AU$#,0.00
    Canada Dollar (dollar) C$#,0,00
    Danmark Krone (krone) kr#,0
    Eurosonen Euro € #,0.00
    Japan Yen ¥ #,0
    Sverige Kroner kr#,0
    Sveits Franc CHF#,0.00
    Storbritannia Pund £ #,0
    USA Dollar (dollar) US$#,0.00
  3. Kontroller at tabellen ser riktig ut, og klikk deretter Last inn.

    Skjermbilde av dialogboksen Opprett tabell.

  4. Gjenta de forrige trinnene for følgende tabell:

    Tabellnavn: Årlige gjennomsnittlige valutakurser

    Land Valuta. År Årlig gjennomsnittlig valutakurs
    Australia Dollar (dollar) 2022 1.442
    Australia Dollar (dollar) 2021 1.332
    Australia Dollar (dollar) 2020 1.452
    Australia Dollar (dollar) 2019 1.439
    Australia Dollar (dollar) 2018 1.34
    Australia Dollar (dollar) 2017 1.358
    Canada Dollar (dollar) 2022 1.301
    Canada Dollar (dollar) 2021 1.254
    Canada Dollar (dollar) 2020 1.341
    Canada Dollar (dollar) 2019 1.327
    Canada Dollar (dollar) 2018 1.297
    Canada Dollar (dollar) 2017 1.35
    Danmark Krone (krone) 2022 7.077
    Danmark Krone (krone) 2021 6.29
    Danmark Krone (krone) 2020 6.538
    Danmark Krone (krone) 2019 6.67
    Danmark Krone (krone) 2018 6.319
    Danmark Krone (krone) 2017 6.864
    Eurosonen Euro 2022 0.951
    Eurosonen Euro 2021 0.846
    Eurosonen Euro 2020 0.877
    Eurosonen Euro 2019 0.893
    Eurosonen Euro 2018 0.848
    Eurosonen 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 Kroner 2022 10.122
    Sverige Kroner 2021 8.584
    Sverige Kroner 2020 9.205
    Sverige Kroner 2019 9.457
    Sverige Kroner 2018 8.703
    Sverige Kroner 2017 8.894
    Sveits Franc 2022 0.955
    Sveits Franc 2021 0.914
    Sveits Franc 2020 0.939
    Sveits Franc 2019 0.994
    Sveits Franc 2018 0.979
    Sveits Franc 2017 1.024
    Storbritannia Pund 2022 0.811
    Storbritannia Pund 2021 0.727
    Storbritannia Pund 2020 0.779
    Storbritannia Pund 2019 0.784
    Storbritannia Pund 2018 0,75
    Storbritannia Pund 2017 0.808

Opprett en År-kolonne

En ny År-kolonne er nødvendig i den eksisterende datotabellen.

  1. Høyreklikk datotabellen i modellvisning, og velg deretter Ny kolonne.

  2. Skriv inn følgende uttrykk på DAX-formellinjen: Year = YEAR([Date]), og trykk deretter ENTER.

    Skjermbilde av Year-formelen på DAX-formellinjen.

Opprette relasjoner

Relasjoner er nødvendig mellom tabellene for nye årlige gjennomsnittlige valutakurser og landvalutaformatstrenger, og mellom tabellen Årlig gjennomsnittlige valutakurser og den eksisterende datotabellen.

  1. Hvis du har automatisk gjenkjenning for relasjoner på, kan relasjonen mellom landformatstrenger og årlige gjennomsnittlige valutakurser i landkolonnen ha blitt opprettet for deg. Hvis ikke, oppretter du denne relasjonen:

    • Tabell 1: Årlige gjennomsnittlige valutakurser
    • Tabell 1 kolonne: Land
    • Kardinalitet: Mange til én
    • Tabell 2: Formatstrenger for landvaluta
    • Tabell 2-kolonne: Land
    • Gjør denne relasjonen aktiv: Ja
    • Kryssfiltreringsretning: Enkel

    Relasjonen skal se slik ut:

    Skjermbilde av relasjonsegenskapene mellom formatstrenger for landvaluta og årlige gjennomsnittlige valutakurser.

  2. Hvis du har automatisk gjenkjenning for relasjoner på, kan det hende at det er opprettet en relasjon mellom landformatstrenger og salgsdistrikt i landkolonnen . Denne relasjonen er imidlertid ikke riktig for modellen vår. Slett denne relasjonen i modellvisning .

  3. Opprett i stedet en relasjon mellom Årlige gjennomsnittlige valutakurser og Dato i År-kolonnen .

    • Tabell 1: Årlige gjennomsnittlige valutakurser
    • Tabell 1 kolonne: År
    • Kardinalitet: Mange til mange
    • Tabell 2: Dato
    • Tabell 2-kolonne: År
    • Gjør denne relasjonen aktiv: Ja
    • Kryssfiltreringsretning: Enkel («Årlig gjennomsnittlig valutakurs»-filtrene «Dato»)

    Relasjonen skal se slik ut:

    Skjermbilde av relasjon.

  4. Lagre modellen.

Opprette en målgruppetabell

En målgruppe hjelper deg med å organisere ulike mål ved å ha dem i én enkelt tabell.

  1. Velg Skriv inn dataHjem-båndet.

  2. La verdiene stå tomme i dialogboksen Opprett tabell. Gi tabellen et navn til salgsmålene, og klikk deretter Last inn. Denne tabellen inneholder de nye målene.

Opprett mål

  1. Utvid og høyreklikk salgsmål i dataruten, og velg deretter Nytt mål. Skriv inn følgende DAX-uttrykk i DAX-formellinjen, og trykk deretter ENTER:

    Sales Amount = SUM(Sales[Sales Amount])
    

    Det skal se slik ut:

    Skjermbilde av DAX-formelen for salgsbeløpsmåling.

  2. Høyreklikk Kolonne1 i Salgsmål, og velg deretter Skjul i rapportvisning. Dette endrer salgsmål til en målgruppe, som nå vises øverst i dataruten med et målgruppeikon, slik som dette:

    Skjermbilde av Kolonne1 i Målgruppe for salg.

  3. Nå kan du opprette et mål for å beregne valutakursen. Høyreklikk på Salgsmål, velg Nytt mål, skriv inn følgende uttrykk i DAX-formellinjen, og trykk deretter ENTER:

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

    Det skal se slik ut: Skjermbilde av Dax-formel for valutakurs i DAX-redigeringsprogrammet.

  4. Nå oppretter du et annet mål for å konvertere mål for salgsbeløp til andre valutaer. Høyreklikk på Salgsmål, velg Nytt mål, skriv inn følgende uttrykk i DAX-formellinjen, og trykk deretter ENTER:

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

    Målgruppen for salgsmål skal nå se slik ut: Skjermbilde av målformelen for konvertert salgsbeløp.

Opprette en rapport

  1. Gå til rapportvisning. Legg til en ny, tom side i rapporten.

  2. Legg til et visualobjekt for linjediagram på den nye rapportsiden. Du bruker dette visualobjektet til å se målet ditt før du legger til den dynamiske formatstrengen for mål.

  3. Velg Konvertert salgsbeløp i dataruten> Salgsmål. Uten å klikke noe annet sted, velger du også År i Dato-tabellen .

    Skjermbilde av Visualobjekt for linjediagram i rapportvisning.

  4. Kopier og lim deretter inn visualobjektet slik at du har to linjediagramvisualobjekter. Endre visualobjektet for det andre linjediagrammet til et tabellvisualobjekt, og flytt det deretter under linjediagrammet, slik som dette:

    Skjermbilde av visualobjektet Kopier linjediagram.

  5. Legg til et slicervisualobjekt på rapportsiden. Legg til Land fra tabellen Formatstrenger for landvalutaformat i sliceren på Format-båndet.

    Skjermbilde av Country slicer.

  6. Omorganiser visualobjektene til de har et bedre oppsett, noe som dette:

    Skjermbilde av Ordne visualobjekter på nytt.

  7. Selv om det ikke er nødvendig, kan du endre visuelle egenskaper for å lage en bedre rapport:

    Slicer

    • Slicerinnstillinger: Enkeltvalg
    • Størrelse og stil, utfylling: 10 px, alle kanter
    • Størrelse og stil, visuell kantlinje: lyse grå, 10 px avrundede hjørner
    • Slicerinnstillinger, Stil: Flis
    • Sliceroverskrift: Av
    • Verdier, kantlinje: Venstre, #333333, 6 linjebredde

    Table

    • Størrelse og stil, utfylling: 10 px, alle kanter
    • Størrelse og stil, visuell kantlinje: lyse grå, 10 px avrundede hjørner
    • Rutenett, vannrette rutenettlinjer: Hvit, 2 bredde
    • Rutenett, loddrette rutenettlinjer: Hvit, 2 bredde
    • Rutenett, kantlinje: Hvit
    • Rutenett, Alternativer: 2 radutfylling
    • Verdier, verdier: Bakgrunnsfarge #F6F4F4
    • Verdier, verdier: Alternativ bakgrunnsfarge #F6F4F4
    • Kolonneoverskrifter, Tekst: Fet, Tekstfarge hvit, Bakgrunnsfarge #0D6ABF

    Linjediagram

    • Størrelse og stil, utfylling: 10 px, alle kanter
    • Størrelse og stil, visuell kantlinje: lyse grå, 10 px avrundede hjørner
    • Tittel, undertittel: På
    • Y-akse, tittel: Av
    • Y-akse: Av
    • Indikatorer: På
    • Dataetiketter: På
    • Dataetiketter, Verdier: Fet, Blå

    Lerret (valgfritt)

    • Lerretsbakgrunn: lys grå, 85 % gjennomsiktighet

    Med disse visuelle egenskapene får du en fin rapportside, slik som dette:

    Skjermbilde av grå lerretsbakgrunn for visualobjekter.

Opprette en dynamisk formatstreng

Hvis du velger forskjellige landnavn i sliceren, vises målresultatet for konvertert salgsbeløp i visualobjekter, men ikke i riktig format for landet eller området.

  1. Velg Konvertert salgsbeløp i dataruten> Salgsmål.

  2. Klikk rullegardinlisten Format på målverktøybåndet, og velg deretter Dynamisk.

  3. Rullegardinlisten til venstre for formellinjen skal nå si Format, og formelen på formellinjen skal ha en formatstreng. Erstatt formatstrengen med følgende DAX-uttrykk, og trykk deretter enter:

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

    Det skal se slik ut:

    Skjermbilde av dynamisk formel for formatstrenger for landvalutaformat.

  4. Velg et annet land i sliceren. Visualobjektene i tabell- og linjediagrammet skal nå vise det konverterte valutabeløpet, i riktig format, for landet eller området. Prøv å velge et annet land/område i sliceren for å se hvordan visualobjektene endres.

    Skjermbilde av visualobjekt for konvertert salgsbeløp.

  5. Lagre modellen.

Kjente problemer og vurderinger

Under forhåndsvisningen løses følgende problemer og begrensninger:

  • Visualobjekter har formateringsalternativer som kan påvirke hvordan formatstrengen vises. Hvis formateringen vises uventet i et visualobjekt, går du til alternativene for visualobjektformat, søker etter visningsenheter og endrer den fra Auto til Ingen.

    Skjermbilde av Visningsenheter fra automatisk til ingen.

  • Selve målet kan refereres direkte i den dynamiske formatstrengen ved hjelp av navnet, for eksempel [Mål A], eller indirekte ved hjelp SELECTEDMEASURE()av .

  • Dynamiske formatstrenger for mål er bare for modellmål. Rapportmål som kan legges til i en live connect-rapport, kan ikke ha dynamiske formatstrenger for mål.

  • Når du klikker Gjør endringer i denne modellen i en direkte tilkoblingsrapport med DirectQuery for Analysis Services, flyttes tilkoblingen til DirectQuery over Analysis Services. Generelt sett kan du gjøre endringer i formatstrengene for de eksterne modellmålene. Under forhåndsvisning:

    • Eksterne modellmål med dynamiske formatstrenger som er definert, blokkeres fra å gjøre formateringsstrengendringer til en statisk formatstreng eller til et annet DAX-uttrykk for dynamisk formatstreng.
    • Eksterne modellmål kan ikke endres fra en statisk formatstreng til et DAX-uttrykk for dynamisk formatstreng som er definert i den lokale modellen.
    • Lokale modellmål blokkeres fra å bruke dynamiske formatstrenger for mål.