Dela via


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

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

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

    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 tabellen Landsvalutaformatsträngar:

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

    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 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
  3. Kontrollera att tabellen ser korrekt ut och klicka sedan på 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

    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.

  1. Högerklicka på tabellen Datum i modellvyn och välj sedan 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 landsvalutaformatsträngar, och mellan tabellen Årliga genomsnittliga växelkurser och den befintliga datumtabellen.

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

    Skärmbild av relationsegenskaper mellan landsvalutaformatsträngar och årliga genomsnittliga växelkurser.

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

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

  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 klicka sedan på Läs in. Den här tabellen innehåller dina nya mått.

Skapa mått

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

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

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

    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 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: Skärmbild av Dax-formeln för Växelkurs i DAX-redigeraren.

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

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

    Skärmbild av det visuella linjediagrammet i rapportvyn.

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

    Skärmbild av det visuella objektet Kopiera linjediagram.

  5. Lägg till ett visuellt utsnitt på rapportsidan. I menyfliksområdet Format lägger du till Land från tabellen Landsvalutaformatsträngar i utsnittet.

    Skärmbild av country-utsnitt.

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

    Skärmbild av Ordna om visuella objekt.

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

    Skärmbild av den grå arbetsytans bakgrund för visuella objekt.

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.

  1. Välj Konverterat försäljningsbelopp i fönstret >Dataförsäljningsmått.

  2. I menyfliksområdet Måttverktyg klickar du på listrutan Format och väljer sedan Dynamisk.

  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 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 landsvalutaformatsträngar.

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

    Skärmbild av visuella objekt för konverterade försäljningsbelopp.

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

    Skärmbild av Visa enheter 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.