Vytváranie reťazcov dynamického formátu pre mierky

VZŤAHUJE SA NA: služba Power BI aplikácie Power BI Desktop

Použitím dynamických formátových reťazcov pre takty môžete ovládať, ako sa takty zobrazujú vo vizuáloch. Podmienečne aplikujte formátový reťazec použitím samostatného vzorca Data Analysis Expression (DAX).

Poznámka

Dynamické formátové reťazce pre miery sú dostupné v Power BI Desktop a Power BI Report Server (január 2025 a neskôr). Ak používate Power BI Report Server, uistite sa, že máte nainštalovanú najnovšiu verziu. Pre viac informácií si pozrite Čo je nové v Power BI Report Server.

Dynamické formátové reťazce riešia problém s funkciou FORMAT. FORMAT vracia všetky výsledky ako reťazce, dokonca aj číselné dátové typy. Toto správanie môže spôsobovať problémy s vizuálmi, ako sú grafy, ktoré vyžadujú číselné hodnoty.

Keď používate dynamické formátové reťazce, miera si zachováva svoj dátový typ a nemení sa na reťazcový typ dát. Na takt aplikujete rôzne formátové reťazce podľa kontextu.

Dynamické formátovacie reťazce môžete použiť aj so skupinami výpočtov. Rovnaké DAX vzory, ktoré fungujú s výpočtovými skupinami, fungujú aj v dynamických formátových reťazcoch pre miery. Rozsah je však obmedzený na jednotlivé miery namiesto všetkých ukazovateľov v modeli. Pre viac informácií pozri Výpočtové skupiny - Dynamické formátové reťazce.

Vytváranie reťazcov dynamického formátu

  1. Na table Údaje vyberte mierku, pre ktorú chcete zadať dynamický formát reťazca.
  2. Na pásiku nástrojov meraní , v sekcii Formátovanie , vyberte Dynamické v zozname Formátovanie . Naľavo od riadka vzorcov jazyka DAX sa zobrazí nový rozbaľovací zoznam s už vybratou položkou Formát . V tomto rozbaľovacom zozname môžete prepínať medzi výrazom DAX statickej mierky a výrazom jazyka DAX reťazca dynamického formátu. Statický formátový reťazec, ktorý ste použili pred prechodom na Dynamic, je predvyplnený ako reťazec v DAX vzorci.

Použite časť textového poľa s hodnotou

Keď pracujete s textovými políčkami vo svojich reportoch, môžete zobrazovať hodnoty mier s dynamickým formátovaním. Ak použijeme časť textového poľa s hodnotou:

  1. Vyberte textové pole vo svojej správe.

  2. V paneli Formát, v sekcii Hodnoty, vyberte tlačidlo pole (ikona efektov).

  3. Vyberte mieru, na ktorú je aplikovaný dynamický formátový reťazec.

  4. Textové pole zobrazuje hodnotu miery pomocou dynamického formátového reťazca.

    Pre viac informácií o textových poliach a dynamickom obsahu pozri Pridať textové polia a tvary do Power BI reportov.

    Snímka obrazovky rozbaľovacieho zoznamu Formát.

  5. Prepíšte reťazec výrazom DAX, ktorý je výstupom správneho formátu reťazca pre vašu mierku. Napríklad nasledujúci výraz vyhľadáva reťazec formátu meny, ktorý chcete, z tabuľky Country/Region Currency Format Strings :

    Snímka obrazovky s výrazom mierky dynamického formátu.

  6. Overte, či reťazec dynamického formátu funguje vo vizuáli.

    Ak chcete odstrániť reťazec dynamického formátu a vrátiť sa k používaniu reťazca statického formátu, v rozbaľovacom zozname Formát v časti >Formátovanie vyberte inú možnosť formátu. Keďže k tejto akcii nedôjde späť, zobrazí sa dialógové okno s otázkou, či chcete pokračovať. Ak sa chcete vrátiť k použitiu reťazca dynamického formátu znova, musíte znova zadajte výraz DAX.

    Snímka obrazovky s upozornením na zmenu formátu.

Príklad

Najlepší spôsob, ako sa naučiť o novej funkcii, je vyskúšať si ju sami. Jednoducho to môžete urobiť pomocou vzorového súboru Adventure Works 2020 PBIX , ktorý je k dispozícii v ukážkovom modeli DAX. Pomocou vzorového modelu môžete pridať konverziu meny, aby sa zobrazila skonvertovaná čiastka predaja podľa rokov. Po stiahnutí otvorte súbor v aplikácii Power BI Desktop.

Vytvorenie nových tabuliek

Vzorový model neobsahuje všetky údaje potrebné na vytvorenie a používanie dynamických reťazcov formátu. Na začiatok musíte pridať dve tabuľky.

  1. Na páse s nástrojmi Domov vyberte položku Zadať údaje.

  2. V dialógovom okne Vytvoriť tabuľku zadajte do poľa Názovreťazce formátu meny krajiny alebo oblasti a potom skopírujte a prilepte nasledujúcu tabuľku:

    Krajina/oblasť Mena Formát
    Austrália Dolár AU$#,0.00
    Kanada Dolár C$#,0.00
    Dánsko Krone kr#,0
    Eurozóny Euro € #,0,00
    Japonsko Len † #,0
    Švédsko Krona kr#,0
    Švajčiarsko Frank CHF#,0.00
    Spojené kráľovstvo Libra £ #,0
    Spojené štáty Dolár US$#,0.00
  3. Skontrolujte, či tabuľka vyzerá správne, a vyberte položku Načítať.

    Snímka obrazovky dialógového okna Vytvorenie tabuľky.

  4. Zopakujte predchádzajúce kroky pre nasledujúcu tabuľku:

    Názov tabuľky: Ročné priemerné výmenné kurzy

    Krajina/oblasť Mena Rok Ročný priemerný výmenný kurz
    Austrália Dolár 2022 1.442
    Austrália Dolár 2021 1.332
    Austrália Dolár 2020 1.452
    Austrália Dolár 2019 1.439
    Austrália Dolár 2018 1.34
    Austrália Dolár 2017 1.358
    Kanada Dolár 2022 1.301
    Kanada Dolár 2021 1.254
    Kanada Dolár 2020 1.341
    Kanada Dolár 2019 1.327
    Kanada Dolár 2018 1.297
    Kanada Dolár 2017 1.35
    Dánsko Krone 2022 7.077
    Dánsko Krone 2021 6.29
    Dánsko Krone 2020 6.538
    Dánsko Krone 2019 6.67
    Dánsko Krone 2018 6.319
    Dánsko Krone 2017 6.864
    Eurozóny Euro 2022 0.951
    Eurozóny Euro 2021 0.846
    Eurozóny Euro 2020 0.877
    Eurozóny Euro 2019 0.893
    Eurozóny Euro 2018 0.848
    Eurozóny Euro 2017 0.923
    Japonsko Len 2022 131.454
    Japonsko Len 2021 109.817
    Japonsko Len 2020 106.725
    Japonsko Len 2019 109.008
    Japonsko Len 2018 110.424
    Japonsko Len 2017 116.667
    Švédsko Krona 2022 10.122
    Švédsko Krona 2021 8.584
    Švédsko Krona 2020 9.205
    Švédsko Krona 2019 9.457
    Švédsko Krona 2018 8.703
    Švédsko Krona 2017 8.894
    Švajčiarsko Frank 2022 0.955
    Švajčiarsko Frank 2021 0.914
    Švajčiarsko Frank 2020 0.939
    Švajčiarsko Frank 2019 0.994
    Švajčiarsko Frank 2018 0.979
    Švajčiarsko Frank 2017 1.024
    Spojené kráľovstvo Libra 2022 0.811
    Spojené kráľovstvo Libra 2021 0.727
    Spojené kráľovstvo Libra 2020 0.779
    Spojené kráľovstvo Libra 2019 0.784
    Spojené kráľovstvo Libra 2018 0,75
    Spojené kráľovstvo Libra 2017 0.808

Vytvorenie stĺpca Year (Rok)

Pridajte nový stĺpec Rok do existujúcej tabuľky dátumov.

  1. V zobrazení modelu kliknite pravým tlačidlom myši na tabuľku Dátum a vyberte položku Nový stĺpec.

  2. V DAX riadku formuly zadajte nasledujúci výraz: Year = YEAR([Date]), a potom stlačte Enter.

    Snímka obrazovky so vzorcom Year (Rok) v riadku vzorcov DAX.

Vytvorenie vzťahov

Vytvorte vzťahy medzi novými tabuľkami Ročných priemerných výmenných kurzov a tabuľkami formátov meny krajiny/regiónu, a medzi tabuľkou ročných priemerných výmenných kurzov a existujúcou tabuľkou dátumov.

  1. Ak zapnete Autodetect pre vzťahy (na karte Nástroje stĺpca , vyberte Spravovať vzťahy a potom Autodetect), vzťah medzi reťazcami formátu meny krajiny/regiónu a ročnými priemernými výmennými kurzami v stĺpci Krajina/región môže byť vytvorený pre vás. Ak nie, vytvorte tento vzťah pomocou tlačidla Nový vzťah v nástrojoch> StĺpcovSpravovať vzťahy:

    • Tabuľka 1: Priemerné ročné výmenné kurzy
    • Tabuľka 1 Stĺpec: Krajina/región
    • Kardinalita: Many to one
    • Tabuľka 2: Reťazce formátu meny krajiny alebo oblasti
    • Stĺpec tabuľky 2: Krajina/región
    • Aktivovať tento vzťah: Áno
    • Smer krížového filtrovania: Jeden

    Vzťah by mal vyzerať takto:

    Snímka obrazovky s vlastnosťami vzťahu medzi reťazcami formátu meny krajiny alebo oblasti a priemernými ročnými výmennými kurzami.

  2. Ak zapnete Autodetect pre vzťahy, môže sa vytvoriť vzťah medzi reťazcami formátu meny krajina/región a územie predaja v stĺpci Krajina/región . Vymažte tento vzťah, pretože nie je správny pre daný model.

  3. Namiesto toho vytvorte vzťah medzi stĺpcom Yearly Average Exchange Rates (Ročné priemerné výmenné kurzy ) a Date (Dátum ) v stĺpci Year (Rok ).

    • Tabuľka 1: Priemerné ročné výmenné kurzy
    • Stĺpec Tabuľka 1: Rok
    • Kardinalita: Many to Many
    • Tabuľka 2: Dátum
    • Stĺpec Tabuľka 2: Rok
    • Aktivovať tento vzťah: Áno
    • Smer krížového filtra: Jeden ('Ročný priemerný výmenný kurz' filtruje 'Dátum')

    Vzťah by mal vyzerať takto:

    snímka obrazovky vzťahu.

  4. Uložte svoj model.

Vytvorenie tabuľky skupiny mierok

Skupina mierok pomáha usporiadať rôzne mierky tak, že ich máte v jednej tabuľke.

  1. Na páse s nástrojmi Domov vyberte položku Zadať údaje.
  2. V dialógovom okne Vytvoriť tabuľku ponechajte hodnoty prázdne. Nazvite tabuľku Predajné miery a potom vyberte Načítanie. Táto tabuľka obsahuje vaše nové mierky.

Vytvorenie meraní

  1. V paneli Dáta rozbalte a kliknite pravým tlačidlom na Predajné miery a potom vyberte Nové meranie. Do riadka vzorcov DAX zadajte nasledujúci výraz DAX a potom stlačte kláves Enter:

    Sales Amount = SUM(Sales[Sales Amount])
    

    Malo by to vyzerať takto:

    Snímka obrazovky mierky Čiastka predaja mierky DAX.

  2. V časti Mierky predaja kliknite pravým tlačidlom myši na položku Stĺpec1 a vyberte položku Skryť v zobrazení zostavy. Táto zmena robí z mier predaj skupinu mier, ktorá sa teraz zobrazuje v hornej časti panela s ikonou skupiny meraní, takto:

    Snímka obrazovky so skupinou mierok Column1 in Sales (Predaj).

  3. Teraz môžete vytvoriť mierku na výpočet výmenného kurzu. Kliknite pravým tlačidlom myši na mierky predaja, vyberte položku Nová mierka, zadajte nasledujúci výraz do riadka vzorcov jazyka DAX a stlačte kláves Enter:

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

    Malo by to vyzerať takto: Snímka obrazovky vzorca DAX výmenného kurzu v editore DAX.

  4. Teraz vytvorte ďalšiu mierku na konverziu mierky Čiastka predaja na iné meny. Kliknite pravým tlačidlom myši na mierky predaja, vyberte položku Nová mierka, zadajte nasledujúci výraz do riadka vzorcov jazyka DAX a stlačte kláves Enter:

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

    Mierky Sales mierky by teraz mali vyzerať takto: Snímka obrazovky vzorca mierky Konvertovaná suma predaja.

Vytvorenie zostavy

  1. Prejdite do zobrazenia Zostava. Pridajte do zostavy novú prázdnu stranu.

  2. Pridajte vizuál čiarového grafu na novú stranu zostavy. Tento vizuál použite na zobrazenie mierky pred pridaním reťazca dynamického formátu pre mierky.

  3. predaja vyberte > predaja. Bez toho, aby ste vybrali kdekoľvek inde, vyberte aj Rok v tabuľke Dátum .

    Snímka obrazovky vizuálu Čiarový graf v zobrazení zostavy.

  4. Skopírujte a prilepte vizuál, aby ste mali dva vizuály čiarového grafu. Zmeňte vizuál druhého čiarového grafu na tabuľkový a potom ho presuňte pod čiarový graf, takto:

    Snímka obrazovky s vizuálom Kopírovať čiarový graf.

  5. Vizuál rýchleho filtra zoznamu pridajte na stranu zostavy výberom rýchleho filtra zoznamu na table Vizualizácie . Na table Údaje vyberte položku Krajina/oblasť v tabuľke Reťazce formátu meny krajiny/oblasti a pridajte ju do rýchleho filtra.

    Snímka obrazovky rýchleho filtra krajiny alebo oblasti.

  6. Zmeňte usporiadanie vizuálov, kým nebudú mať lepšie rozloženie, napríklad takto:

    Snímka obrazovky so zmeneným usporiadaní vizuálov.

  7. Aj keď sa to nevyžaduje, môžete zmeniť vlastnosti vizuálu, aby ste vytvorili krajšiu zostavu. Pomocou tlačidla Formátovať vizuál na table Vizualizácie vykonajte nasledujúce zmeny:

    Krájač

    • Karta > Nastavenia >Jeden výber>Zapnuté
    • Karta >Vlastnosti>Výplň: 10 px, všetky hrany
    • Všeobecná záložka >Efekty>Vizuálny rám:Zapnuté, svetlosivá, 10-px zaoblené rohy
    • Karta >Názov: Vypnuté
    • Vizuálna karta >Tlačidlá>Okraj: #333333, šírka riadku 6

    tabuľky

    • Karta >Vlastnosti>Výplň: 10 px, všetky hrany
    • Všeobecná záložka >Efekty>Vizuálny rám:Zapnuté, svetlosivá, 10-px zaoblené rohy
    • Karta >Mriežka>Vodorovné mriežky: Zapnuté, Biele, 2 šírky
    • Karta >Mriežka>Zvislé mriežky: Zapnuté, Biele, 2 šírky
    • Karta >Orámovanie mriežky>:biela
    • Vizuálna>>: 2 riadkové výplne
    • Karta >Hodnoty>Farba pozadia: #F6F4F4
    • Karta >Hodnoty>Alternatívna farba pozadia: #F6F4F4
    • Karta >Hlavičky stĺpcov>Text: Tučné, Farba textu biela, Farba pozadia #0D6ABF

    Čiarový graf

    • Karta >Vlastnosti>Výplň: 10 px, všetky hrany
    • Všeobecná záložka >Efekty>Vizuálny rám:zapnutý, svetlosivý, 10 px zaoblené rohy
    • Karta >Vlastnosti>Názov>: Zapnuté
    • Vizuálna karta >Os> YNázov: Vypnuté
    • Vizuálna>> Y: Vypnuté
    • Značky karty >vizuálu: Zapnuté
    • Karta >Označenia údajov: Zapnuté
    • Karta >Označenia> údajovHodnota: Tučné, Modré

    Plátno (voliteľné)

    • Nastavenia >Pozadie plátna: svetlosivé, 85% priehľadnosť

    Použitím týchto vizuálnych vlastností vytvoríte stránku reportu, ktorá vyzerá takto:

    Snímka obrazovky so sivým pozadím plátna pre vizuál

Vytvorenie reťazca dynamického formátu

Keď v sliceri vyberiete rôzne názvy krajín/regiónov , vizuály zobrazia výsledok miery Converted Sales Amount, ale nie v správnom formáte pre danú krajinu/región.

  1. Na table Údaje v časti Miery predaja vyberte položku Konvertovaná čiastka predaja.

  2. Na páse s nástrojmi Nástroje merania vyberte v rozbaľovacom zozname Formátpoložku Dynamický.

  3. Rozbaľovacie menu vľavo od riadku s formulou teraz ukazuje Formát a formula v riadku má reťazec formátu. Nahraďte formátový reťazec nasledujúcim DAX výrazom a potom stlačte Enter:

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

    Malo by to vyzerať takto:

    Snímka obrazovky dynamického vzorca reťazcov formátu meny krajiny alebo oblasti.

  4. V rýchlom filtri vyberte inú krajinu alebo oblasť. Vizualizácie tabuľky a čiarového grafu teraz ukazujú premenenú sumu v správnom formáte pre danú krajinu/región alebo región. Skúste v rýchlom filtri vybrať inú krajinu alebo oblasť a zistiť, ako sa vizuály menia.

    Snímka obrazovky s vizuálom Skonvertovaná čiastka predaja.

  5. Uložte svoj model.

Dynamické formátové reťazce pre meranie trvania

Keď máte údaje o trvaní uložené v milisekundách, zobrazovanie surových hodnôt ako "3 600 000 ms" nie je užívateľsky prívetivé. Môžete použiť dynamické formátové reťazce na zobrazenie "1.0 h" namiesto toho, pričom základné meranie zostane v milisekundách pre presné výpočty a porovnania.

Vytvorte testovaciu tabuľku

Na vyskúšanie tohto vzoru vytvorte vypočítanú tabuľku s hodnotami trvania vzorky:

Events = 
DATATABLE(
    "Event", STRING,
    "DurationMs", INTEGER,
    {
        {"Quick click", 500},
        {"Page load", 5000},
        {"Report refresh", 120000},
        {"Data export", 7200000}
    }
)

Vytvorte mieru trvania

Vytvorte mieru, ktorá sčíta trvanie a vráti surové milisekundy:

Duration (ms) = SUM(Events[DurationMs])

Pridajte reťazec dynamického formátu

Pridajte dynamický formátovací reťazec, ktorý prevádza a formátuje hodnotu do príslušnej časovej jednotky:

VAR ms = SELECTEDMEASURE()
RETURN
    SWITCH(
        TRUE(),
        ms < 1000, FORMAT(ms, "#,0") & " \m\s",
        ms < 60000, "'" & FORMAT(ms / 1000, "#,0.0") & " s'",
        ms < 3600000, "'" & FORMAT(ms / 60000, "#,0.0") & " m'",
        "'" & FORMAT(ms / 3600000, "#,0.0") & " h'"
    )

Ako funguje formátovací reťazec

Nasledujúca tabuľka ukazuje, ako sa surové hodnoty milisekúnd konvertujú do čitateľných formátov:

Surová hodnota (ms) Prestavba Zobrazenie
500 500 500 ms
5 000 5.0 5,0 s
120,000 2,0 2,0 m
7,200,000 2,0 2.0 h

Funkcia SELECTEDMEASURE() získa skutočnú hodnotu miery, prevedie ju na príslušnú jednotku a potom ju zabalí do reťazca literálneho formátu pomocou jednoduchých úvodzoviek.

Výhody tohto prístupu

  • Výpočty zostávajú presné: Vaše meranie vracia milisekundy, takže súčty, priemery a porovnania fungujú správne.
  • Displej je čitateľný pre ľudí: používatelia vidia "2,5 s" namiesto "2 500".
  • Jeden vzor, veľa taktov: Použite rovnaký formátový reťazec na všetky svoje časové takty.
  • Grafy fungujú správne: Na rozdiel od použitia FORMAT() priamo v miere, dynamické formátové reťazce zachovávajú číselný dátový typ pre vizualizácie.

Tipy na formátovanie trvania

  • Použite \m\s na únik "ms" ako doslovný text vo formátových reťazcoch.
  • Jednoduché úvodzovky ('...') v príkaze return nútia Power BI považovať celý formátovaný reťazec za literál.
  • Tento vzor funguje aj s výpočtovými skupinami. Aplikuj ho raz a automaticky naformátuj viacero taktov.

Prepitné

Ak máte viacero mier trvania, ktoré potrebujú tento formátový reťazec, zvážte vytvorenie DAX užívateľsky definovanej funkcie na definovanie formátovacej logiky raz a opätovné použitie vo všetkých meraniach.

Známe problémy a úvahy

  • Vizuály majú možnosti formátovania, ktoré môžu ovplyvniť, ako sa formátovací reťazec zobrazí. Ak sa formátovanie nečakane objaví vo vizuáli, choďte do vizuálnych nastavení Visuals>Format , vyhľadajte Zobrazovacie jednotky a zmeňte ich z Automatického na Žiadne.

    Snímka obrazovky zobrazujúca jednotky z možnosti Automaticky na žiadne.

    Na vypnutie zobrazovacích jednotiek pre všetky vizuály v reporte môžete použiť vlastnú tému reportu. Vytvorte JSON súbor s nasledujúcim obsahom a importujte ho ako tému:

    {
       "$schema": "https://raw.githubusercontent.com/microsoft/powerbi-desktop-samples/main/Report%20Theme%20JSON%20Schema/reportThemeSchema-2.149.json",
       "name": "DisplayUnitsNone",
       "visualStyles": {
         "*": {
           "*": {
             "*": [
               {
                 "displayUnits": 1,
                 "labelDisplayUnits": 1,
                 "titleDisplayUnits": 1,
                 "detailDisplayUnits": 1,
                 "valueDisplayUnits": 1,
                 "secLabelDisplayUnits": 1,
                 "titleLabelDisplayUnits": 1
               }
             ]
           }
         },
         "cardVisual": {
           "*": {
             "*": [{
                 "$id": "default",
                 "displayUnits": 1,
                 "labelDisplayUnits": 1,
                 "titleDisplayUnits": 1,
                 "detailDisplayUnits": 1,
                 "valueDisplayUnits": 1,
                 "secLabelDisplayUnits": 1,
                 "titleLabelDisplayUnits": 1
               }
             ]
           }
         }
       }
    }
    
  • Na samotnú mieru môžete odkazovať priamo v jej dynamickom formátovom reťazci použitím jej názvu, napríklad [Measure A], alebo nepriamo použitím SELECTEDMEASURE().

  • Dynamické formátové reťazce pre miery sa vzťahujú iba na modelové miery. Dynamické formátové reťazce nemôžete pridávať pre meranie reportov v live connect reporte.

  • Použitím DirectQuery pre Analysis Services, keď vyberiete možnosť Urobiť zmeny tohto modelu v živom connect reporte, presuniete spojenie na DirectQuery cez Analysis Services. Vo všeobecnosti môžete vykonávať zmeny reťazcov formátu mierok vzdialeného modelu. Použitím dynamických formátových reťazcov pre miery:

    • Mierky vzdialeného modelu s definovanými dynamickými reťazcami formátu nie sú blokované v tom, aby sa reťazcový formát zmenil na statický reťazec formátu alebo na iný dynamický výraz DAX s reťazcom formátu.
    • Vzdialené mierky modelu nie je možné zmeniť zo statického formátovacieho reťazca na dynamický formátovací reťazec DAX definovaný v lokálnom modeli.
    • Mierky lokálneho modelu nie sú blokované v používaní reťazcov dynamického formátu pre mierky.