Skapa dynamiska formatsträngar för mått
GÄLLER FÖR: Power BI Desktop-Power BI-tjänst
Med dynamiska formatsträngar för mått kan du avgöra hur mått visas i visuella objekt genom att villkorligt tillämpa en formatsträng med ett separat DAX-uttryck.
Kommentar
Dynamiska formatsträngar för mått finns för närvarande i förhandsversion. När du är i förhandsversion kommer funktioner och dokumentation sannolikt att ändras.
Dynamiska formatsträngar övervinner en inneboende nackdel med att använda funktionen FORMAT. Med FORMAT returneras alltså även numeriska datatyper som en sträng, vilket kanske inte fungerar med visuella objekt som kräver numeriska värden, till exempel diagram. När du använder dynamiska formatsträngar behåller måttet sin datatyp och tvingas inte att ändra till en strängdatatyp. Detta tillämpar olika formatsträngar på måttet beroende på kontexten.
Dynamiska formatsträngar kan också användas med beräkningsgrupper. Samma DAX-mönster som fungerar med beräkningsgrupper kan också användas i dynamiska formatsträngar för mått, men omfånget är begränsat till enskilda mått i stället för alla mått i modellen. Mer information finns i Beräkningsgrupper – Dynamiska formatsträngar.
Skapa dynamiska formatsträngar
Så här skapar du en sträng i dynamiskt format
I fönstret Data väljer du det mått som du vill ange en sträng i dynamiskt format för.
I listrutan Formatering i menyfliksområdet>> Måttverktyg väljer du Dynamisk. En ny listruta med Format redan markerat visas till vänster om DAX-formelfältet. Den här listrutan är hur du kan växla mellan DAX-uttrycket för statiskt mått och DAX-uttrycket för strängen för dynamiskt format. Oavsett vilken statisk formatsträng som användes innan du växlar till Dynamisk fylls den i som en sträng i DAX-formelfältet.
Skriv över strängen med ett DAX-uttryck som matar ut rätt formatsträng för måttet. Följande uttryck söker till exempel upp den valutaformatsträng som vi vill använda från tabellen Landsvalutaformatsträngar:
Kontrollera att strängen för dynamiskt format fungerar i ett visuellt objekt.
Om du vill ta bort strängen med dynamiskt format och återgå till med en statisk formatsträng går du till listrutan Formateringsavsnittet >Formatera och väljer ett annat formatalternativ. Eftersom det inte går att ångra den här åtgärden visas en dialogruta som frågar om du vill fortsätta. Om du vill gå tillbaka till att använda en sträng i dynamiskt format igen måste du ange DAX-uttrycket igen.
Exempel
Det bästa sättet att lära sig om en ny funktion är att prova själv. Du kan göra just det med exempelfilen Adventure Works 2020 PBIX som är tillgänglig i DAX-exempelmodellen. Med hjälp av exempelmodellen kan du lägga till valutakonvertering för att visa konverterat försäljningsbelopp per år. När du har laddat ned öppnar du filen i Power BI Desktop.
Skapa nya tabeller
Exempelmodellen innehåller inte alla data som krävs för att skapa och använda dynamiska formatsträngar. För att komma igång måste du först lägga till två tabeller.
I menyfliksområdet Start väljer du Ange data.
I dialogrutan Skapa tabell anger du följande tabellnamn och kopierar och klistrar sedan in följande tabell:
Tabellnamn: Landsvalutaformatsträngar
Land Valuta Format Australien Dollar AU$#,0.00 Kanada Dollar C$#,0.00 Danmark Krone kr#,0 Euroområdet Euro € #,0,00 Japan Yen ¥ #,0 Sverige Krona kr#,0 Schweiz Franc CHF#,0.00 Storbritannien Pund £ #,0 USA Dollar US$#,0.00 Kontrollera att tabellen ser korrekt ut och klicka sedan på Läs in.
Upprepa föregående steg för följande tabell:
Tabellnamn: Årliga genomsnittliga växelkurser
Land Valuta Year Årlig genomsnittlig växelkurs 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 Kanada Dollar 2022 1.301 Kanada Dollar 2021 1.254 Kanada Dollar 2020 1.341 Kanada Dollar 2019 1.327 Kanada Dollar 2018 1.297 Kanada 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 Krona 2022 10.122 Sverige Krona 2021 8.584 Sverige Krona 2020 9.205 Sverige Krona 2019 9.457 Sverige Krona 2018 8.703 Sverige Krona 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
Skapa en kolumn för år
En ny year-kolumn behövs i den befintliga datumtabellen.
Högerklicka på tabellen Datum i modellvyn och välj sedan Ny kolumn.
I DAX-formelfältet anger du följande uttryck:
Year = YEAR([Date])
och trycker sedan på Retur.
Skapa relationer
Relationer behövs mellan dina nya årliga genomsnittliga växelkurser och landsvalutaformatsträngar, och mellan tabellen Årliga genomsnittliga växelkurser och den befintliga datumtabellen.
Om du har Identifiera automatiskt för relationer på kan relationen mellan landsvalutaformatsträngar och årliga genomsnittliga växelkurser i kolumnen Land ha skapats åt dig. Om inte skapar du den här relationen:
- Tabell 1: Årliga genomsnittliga växelkurser
- Tabell 1- kolumn: Land
- Kardinalitet: Många till en
- Tabell 2: Landsvalutaformatsträngar
- Tabell 2- kolumn: Land
- Gör den här relationen aktiv: Ja
- Korsfilterriktning: Enkel
Relationen bör se ut så här:
Om du har identifiera automatiskt för relationer på kan en relation mellan landsvalutaformatsträngar och försäljningsområde i kolumnen Land ha skapats. Den här relationen är dock inte korrekt för vår modell. Ta bort den här relationen i modellvyn .
Skapa i stället en relation mellan årliga genomsnittliga växelkurser och datum i kolumnen År .
- Tabell 1: Årliga genomsnittliga växelkurser
- Tabell 1 Kolumn: År
- Kardinalitet: Många till många
- Tabell 2: Datum
- Tabell 2- kolumn: År
- Gör den här relationen aktiv: Ja
- Korsfilterriktning: Enkel ("Årlig genomsnittlig växelkurs" filtrerar "Datum")
Relationen bör se ut så här:
Spara din modell.
Skapa en måttgruppstabell
En måttgrupp hjälper dig att organisera olika mått genom att ha dem i en enda tabell.
I menyfliksområdet Start väljer du Ange data.
Lämna värdena tomma i dialogrutan Skapa tabell. Ge tabellen namnet Sales measures (Försäljningsmått) och klicka sedan på Läs in. Den här tabellen innehåller dina nya mått.
Skapa mått
I fönstret Data expanderar och högerklickar du på Försäljningsmått och väljer sedan Nytt mått. Ange följande DAX-uttryck i DAX-formelfältet och tryck sedan på Retur:
Sales Amount = SUM(Sales[Sales Amount])
Den bör se ut så här:
Högerklicka på Kolumn1 i Försäljningsmått och välj sedan Dölj i rapportvyn. Detta ändrar Försäljningsmått till en måttgrupp som nu visas överst i fönstret Data med en måttgruppikon, så här:
Nu kan du skapa ett mått för att beräkna växelkursen. Högerklicka på Försäljningsmått, välj Nytt mått, ange följande uttryck i DAX-formelfältet och tryck sedan på Retur:
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 bör se ut så här:
Nu skapar du ytterligare ett mått för att konvertera måttet Försäljningsbelopp till andra valutor. Högerklicka på Försäljningsmått, välj Nytt mått, ange följande uttryck i DAX-formelfältet och tryck sedan på Retur:
Converted Sales Amount = SUMX('Date', CALCULATE( [Sales Amount] * [Exchange Rate (Yearly Avg)]))
Måttgruppen Försäljningsåtgärder bör nu se ut så här:
Skapa en rapport
Gå till rapportvyn. Lägg till en ny tom sida i rapporten.
Lägg till ett visuellt linjediagram på den nya rapportsidan. Du använder det här visuella objektet för att se måttet innan du lägger till strängen för dynamiskt format för mått.
Välj Konverterat försäljningsbelopp i fönstret >Dataförsäljningsmått. Utan att klicka någon annanstans väljer du även År i tabellen Datum .
Kopiera och klistra sedan in det visuella objektet så att du har två visuella linjediagram. Ändra det andra visuella linjediagrammet till ett visuellt tabellobjekt och flytta det sedan under linjediagrammet, så här:
Lägg till ett visuellt utsnitt på rapportsidan. I menyfliksområdet Format lägger du till Land från tabellen Landsvalutaformatsträngar i utsnittet.
Ordna om de visuella objekten tills de har en bättre layout, ungefär så här:
Även om det inte krävs kan du ändra visuella egenskaper för att göra en trevligare rapport:
Segment
- Utsnittsinställningar: Enkelval
- Storlek och format, utfyllnad: 10 px, alla kanter
- Storlek och format, visuell kantlinje: ljusgrå, 10 px rundade hörn
- Utsnittsinställningar, Format: Panel
- Utsnittsrubrik: Av
- Värden, kantlinje: Vänster, #333333, 6 linjebredd
Register
- Storlek och format, utfyllnad: 10 px, alla kanter
- Storlek och format, visuell kantlinje: ljusgrå, 10 px rundade hörn
- Rutnät, vågräta stödlinjer: Vit, 2 bredd
- Rutnät, lodräta stödlinjer: Vit, 2 bredd
- Rutnät, kantlinje: Vit
- Rutnät, alternativ: 2 raders utfyllnad
- Värden, värden: Bakgrundsfärg #F6F4F4
- Värden, värden: Alternativ bakgrundsfärg #F6F4F4
- Kolumnrubriker, Text: Fet, Textfärg vit, Bakgrundsfärg #0D6ABF
Linjediagram
- Storlek och format, utfyllnad: 10 px, alla kanter
- Storlek och format, visuell kantlinje: ljusgrå, 10 px rundade hörn
- Rubrik, underrubrik: På
- Y-axel, Rubrik: Av
- Y-axel: Av
- Markörer: På
- Dataetiketter: På
- Dataetiketter, Värden: Fet, Blå
Arbetsyta (valfritt)
- Arbetsytebakgrund: ljusgrå, 85 % genomskinlighet
Med dessa visuella egenskaper får du en bra rapportsida, så här:
Skapa en sträng i dynamiskt format
Om du väljer olika landsnamn i utsnittet visas måttet Konverterat försäljningsbelopp i visuella objekt, men inte i rätt format för det landet eller regionen.
Välj Konverterat försäljningsbelopp i fönstret >Dataförsäljningsmått.
I menyfliksområdet Måttverktyg klickar du på listrutan Format och väljer sedan Dynamisk.
Listrutan till vänster om formelfältet ska nu stå Format och formeln i formelfältet ska ha en formatsträng. Ersätt formatsträngen med följande DAX-uttryck och tryck sedan på Retur:
SELECTEDVALUE ( 'Country Currency Format Strings'[Format], "\$#,0.00;(\$#,0.00);\$#,0.00" )
Den bör se ut så här:
Välj ett annat land i utsnittet. De visuella tabell- och linjediagrammet ska nu visa det konverterade valutabeloppet, i rätt format, för det landet eller regionen. Prova att välja ett annat land/en annan region i utsnittet för att se hur de visuella objekten ändras.
Spara din modell.
Kända problem och överväganden
Under förhandsversionen åtgärdas följande problem och begränsningar:
Visuella objekt har formateringsalternativ som kan påverka hur formatsträngen visas. Om formateringen visas oväntat i ett visuellt objekt går du till alternativen för visuellt format, söker efter Visningsenheter och ändrar den från Auto till Ingen.
Själva måttet kan refereras direkt i dess dynamiska formatsträng med hjälp av dess namn, till exempel [Mått A], eller indirekt med hjälp
SELECTEDMEASURE()
av .Dynamiska formatsträngar för mått gäller endast för modellmått. Rapportmått som kan läggas till i en live connect-rapport kan inte ha dynamiska formatsträngar för mått.
Med DirectQuery för Analysis Services flyttas anslutningen till DirectQuery via Analysis Services när du klickar på Gör ändringar i den här modellen i en live connect-rapport. I allmänhet kan du göra ändringar i formatsträngarna för fjärrmodellmåtten. Under förhandsversionen:
- Fjärrmodellmått med definierade dynamiska formatsträngar blockeras från att göra ändringar i formatsträngar till en statisk formatsträng eller till ett annat DAX-uttryck för dynamisk formatsträng.
- Fjärrmodellmått kan inte ändras från en statisk formatsträng till ett DAX-uttryck för dynamisk formatsträng som definierats i den lokala modellen.
- Lokala modellmått blockeras från att använda dynamiska formatsträngar för mått.