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 en separat DAX-formel (Data Analysis Expression).

Dynamiska formatsträngar övervinner en inneboende nackdel med att använda funktionen FORMAT. Med FORMAT returneras även numeriska datatyper som strängar, vilket kanske inte fungerar med visuella objekt som diagram som kräver numeriska värden. 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.

Du kan också använda dynamiska formatsträngar med beräkningsgrupper. Du kan använda samma DAX-mönster som fungerar med beräkningsgrupper 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

  1. I fönstret Data väljer du det mått som du vill ange en sträng i dynamiskt format för.

  2. > 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 statiska mått och DAX-uttrycket för dynamiska formatsträngar. 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.

    Skärmbild av listrutan Format.

  3. 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 en tabell med valutaformat för land/region :

    Skärmbild av måttuttryck i dynamiskt format.

  4. Kontrollera att strängen för dynamiskt format fungerar i ett visuellt objekt.

    Om du vill ta bort strängen för 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.

    Skärmbild av varning om formatändring.

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.

  1. I menyfliksområdet Start väljer du Ange data.

  2. I dialogrutan Skapa tabell anger du Country/Region Currency Format Strings i fältet Namn och kopierar och klistrar sedan in följande tabell:

    Country/Region 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
  3. Kontrollera att tabellen ser korrekt ut och välj Läs in.

    Skärmbild av dialogrutan Skapa tabell.

  4. Upprepa föregående steg för följande tabell:

    Tabellnamn: Årliga genomsnittliga växelkurser

    Country/Region 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.

  1. Högerklicka på tabellen Datum i modellvyn och välj Ny kolumn.

  2. I DAX-formelfältet anger du följande uttryck: Year = YEAR([Date])och trycker sedan på Retur.

    Skärmbild av formeln Year i DAX-formelfältet.

Skapa relationer

Relationer behövs mellan dina nya årliga genomsnittliga växelkurser och tabellerna Country/Region Currency Format Strings och mellan tabellen Årliga genomsnittliga växelkurser och den befintliga datumtabellen.

  1. Om du har Identifiera automatiskt för relationer på (på fliken Kolumnverktyg väljer du Hantera relationer och väljer sedan Identifiera automatiskt), kan relationen mellan lands-/regionsvalutaformatsträngar och årliga genomsnittliga växelkurser i kolumnen Land/region ha skapats åt dig. Om inte skapar du den här relationen med knappen Ny relation i Kolumnverktyg>Hantera relationer:

    • Tabell 1: Årliga genomsnittliga växelkurser
    • Tabell 1 Kolumn: Land/region
    • Kardinalitet: Många till en
    • Tabell 2: Formatsträngar för valuta enligt land/region
    • Tabell 2- kolumn: Land/region
    • Gör den här relationen aktiv: Ja
    • Korsfilterriktning: Enkel

    Relationen bör se ut så här:

    Skärmbild av relationsegenskaper mellan lands-/regionsvalutaformatsträngar och årliga genomsnittliga växelkurser.

  2. Om du har aktiverat Autodetektering för relationer kan en relation mellan lands-/regionsvalutaformatsträngar och försäljningsområde på kolumnen Land/region ha skapats. Den här relationen är dock inte korrekt för vår modell. Ta bort den här relationen.

  3. 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:

    Skärmbild av Förhållande.

  4. 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.

  1. I menyfliksområdet Start väljer du Ange data.

  2. Lämna värdena tomma i dialogrutan Skapa tabell. Ge tabellen namnet Sales measures (Försäljningsmått) och välj sedan Läs in. Den här tabellen innehåller dina nya mått.

Skapa mått

  1. I fönstret Data expanderar du och högerklickar 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:

    Skärmbild av DAX-formel för måttet Sales amount.

  2. Högerklicka på Kolumn1 i Försäljningsmått och välj 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:

    Skärmbild av Kolumn1 i måttgruppen Försäljning.

  3. 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 på Retur:

    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 bör se ut så här: Skärmbild av DAX-formel för växelkurs i DAX-redigeraren.

  4. Skapa nu ett annat 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 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: Skärmbild av måttformeln Konverterat försäljningsbelopp.

Skapa en rapport

  1. Gå till rapportvyn. Lägg till en ny tom sida i rapporten.

  2. Lägg till ett visuellt linjediagram på den nya rapportsidan. Använd den här visualiseringen för att se ditt mått innan du lägger till en dynamisk formatsträng för mått.

  3. Välj Konverterat försäljningsbelopp i fönstret >. Utan att välja någon annanstans väljer du även År i tabellen Datum .

    Skärmbild av det visuella linjediagrammet i rapportvyn.

  4. Kopiera och klistra in det visuella objektet så att du har två visuella linjediagram. Ändra det andra linjediagrammet till en tabellvisualisering och flytta det sedan under linjediagrammet, som följande:

    Skärmbild av det visuella elementet

  5. Lägg till ett listfilter på rapportsidan genom att välja Lista utsnitt i fönstret Visualiseringar. I fönstret Data väljer du Land/region från tabellen Valutaformatsträngar för land/region för att lägga till den i utsnittet.

    Skärmbild av utsnittet Land/Region.

  6. Ordna om de visuella objekten tills de har en bättre layout, ungefär så här:

    Skärmbild av att ordna om visuella element.

  7. Även om det inte krävs kan du ändra visuella egenskaper för att göra en trevligare rapport. Använd knappen Formatera ditt visuella objekt i fönstret Visualiseringar för att göra följande ändringar:

    Slicer

    • Visuell flik >Utsnittsinställningar>Enskild markering>
    • Allmänna>Egenskaper>Utfyllnad: 10 px, alla kanter
    • Allmän flik >Effekter>Visuell kantlinje: , ljusgrå, 10 px rundade hörn
    • Rubrik på > Allmänt: Av
    • `Visuell flik >knappar>Kantlinje: #333333, 6 linjebredd`

    Tabell

    • flik>Egenskaper>Utfyllnad: 10 px, alla kanter
    • Allmän flik >Effekter>Visuell kantlinje: , ljusgrå, 10 px rundade hörn
    • Visuell flik >Rutnät>Horisontella rutnätslinjer: , Vit, 2 i bredd
    • Visuell flik >Rutnät>Vertikala rutnät: , Vit, 2 bredd
    • Visuell flik >Rutnäts>kantlinje: Vit
    • Visuell flik>Rutnätsalternativ>: 2 raders utfyllnad
    • Visual flik >värden>Bakgrundsfärg: #F6F4F4
    • Visuell flik>värden Alternativ bakgrundsfärg> #F6F4F4
    • Visuell flik >Kolumnrubriker>Text: Fet, Textfärg vit, Bakgrundsfärg #0D6ABF

    Linjediagram

    • Allmänt flik >Egenskaper>Utfyllnad: 10 px, alla kanter
    • Allmän flik >Effekter>Visuell kantlinje: , ljusgrå, 10 px rundade hörn
    • Allmän tab >Egenskaper>Rubrik>Underrubrik:
    • Visuell flik>Y-axel> rubrik: Avstängd
    • Visuell flik>Y-axel>värden: Avstängd
    • Visuella flik>markörer:
    • Visuell flik >Dataetiketter:
    • Visuell> flik Dataetiketter>Värde: Fet, Blå

    Canvas (valfritt)

    • Inställningar för arbetsytor>Arbetsytebakgrund: ljusgrå, 85% transparens

    Med dessa visuella egenskaper får du en bra rapportsida, så här:

    Skärmbild av grå dukbakgrund för visualisering.

Skapa en sträng i dynamiskt format

Om du väljer olika namn på land/region i utsnittet visas måttet Konverterat försäljningsbelopp i visuella objekt, men inte i rätt format för det landet/regionen.

  1. I fönstret Data går du till Försäljningsmått och väljer Konverterat försäljningsbelopp.

  2. I menyfliksområdet Måttverktyg väljer du Dynamisk i listrutan Format .

  3. 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/Region Currency Format Strings'[Format], "\$#,0.00;(\$#,0.00);\$#,0.00" )
    

    Den bör se ut så här:

    Skärmbild av dynamisk formel för valutaformat för land/region.

  4. Välj ett annat land/en annan region i utsnittet. De visuella tabell- och linjediagrammet ska nu visa det konverterade valutabeloppet, i rätt format, för det landet/regionen eller regionen. Prova att välja ett annat land/en annan region i utsnittet för att se hur de visuella objekten ändras.

    Skärmbild av visuell representation av försäljningsbelopp som konverterats.

  5. Spara din modell.

Kända problem och överväganden

  • 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 visualiseringar>Formatera visuella alternativ, söker efter Visningsenheter och ändrar dem från Auto till Ingen.

    Skärmbild av Visningsenheter från auto till inget.

  • Du kan referera direkt till själva måttet i dess dynamiska formatsträng med hjälp av dess namn (t.ex. [Mått A]) eller indirekt med hjälp av SELECTEDMEASURE().

  • Dynamiska formatsträngar för mått gäller endast för modellmått. Rapportmått som du kan lägga till i en live connect-rapport får inte ha dynamiska formatsträngar för sina mått.

  • Med DirectQuery för Analysis Services flyttas anslutningen till DirectQuery via Analysis Services när du väljer 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. Med dynamiska formatsträngar för mått:

    • 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.
    • Du kan inte ändra fjärrmodellmått 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.