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
Velg målet du vil angi en dynamisk formatstreng for, i dataruten.
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.
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» :
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.
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.
Velg Skriv inn data på Hjem-båndet.
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 AU$#,0.00 Canada Dollar C$#,0,00 Danmark Krone (krone) kr#,0 Eurosonen Euro € #,0.00 Japan Yen ¥ #,0 Sverige Krone kr#,0 Sveits Franc CHF#,0.00 Storbritannia Pund £ #,0 USA Dollar US$#,0.00 Kontroller at tabellen ser riktig ut, og klikk deretter Last inn.
Gjenta de forrige trinnene for følgende tabell:
Tabellnavn: Årlige gjennomsnittlige valutakurser
Land Valuta. År Årlig gjennomsnittlig valutakurs Australia Dollar 2022 1.442 Australia Dollar 2021 1.332 Australia Dollar 2020 1.452 Australia Dollar 2019 1.439 Australia Dollar 2018 1.34 Australia 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 (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 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 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.
Høyreklikk datotabellen i modellvisning, og velg deretter Ny kolonne.
Skriv inn følgende uttrykk på DAX-formellinjen:
Year = YEAR([Date])
, og trykk deretter ENTER.
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.
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:
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 .
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:
Lagre modellen.
Opprette en målgruppetabell
En målgruppe hjelper deg med å organisere ulike mål ved å ha dem i én enkelt tabell.
Velg Skriv inn data på Hjem-båndet.
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
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:
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:
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:
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:
Opprette en rapport
Gå til rapportvisning. Legg til en ny, tom side i rapporten.
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.
Velg Konvertert salgsbeløp i dataruten> Salgsmål. Uten å klikke noe annet sted, velger du også År i Dato-tabellen .
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:
Legg til et slicervisualobjekt på rapportsiden. Legg til Land fra tabellen Formatstrenger for landvalutaformat i sliceren på Format-båndet.
Omorganiser visualobjektene til de har et bedre oppsett, noe som dette:
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:
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.
Velg Konvertert salgsbeløp i dataruten> Salgsmål.
Klikk rullegardinlisten Format på målverktøybåndet, og velg deretter Dynamisk.
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:
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.
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.
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.