Udostępnij za pomocą


Tworzenie ciągów formatu dynamicznego dla miar

DOTYCZY: aplikacja Power BI Desktop usługa Power BI

Za pomocą ciągów formatu dynamicznego dla miar można określić, jak miary są wyświetlane w wizualizacjach, warunkowo stosując ciąg formatu z oddzielną formułą języka DAX (Data Analysis Expression).

Ciągi formatu dynamicznego przezwyciężają nieodłączną wadę korzystania z funkcji FORMAT. W przypadku formatu nawet typy danych liczbowych są zwracane jako ciągi, które mogą nie działać z wizualizacjami, takimi jak wykresy wymagające wartości liczbowych. W przypadku używania ciągów formatu dynamicznego miara zachowuje swój typ danych i nie jest zmuszona do zmiany typu danych ciągu. Dotyczy to różnych ciągów formatu miary w zależności od kontekstu.

Można również używać ciągów formatu dynamicznego z grupami obliczeń. Można użyć tych samych wzorców języka DAX, które współpracują z grupami obliczeń w ciągach formatu dynamicznego dla miar, ale zakres jest ograniczony do poszczególnych miar zamiast wszystkich miar w modelu. Aby dowiedzieć się więcej, zobacz Grupy obliczeń — ciągi formatu dynamicznego.

Tworzenie ciągów formatu dynamicznego

Aby utworzyć ciąg formatu dynamicznego

  1. W okienku Dane wybierz miarę, dla której chcesz określić ciąg formatu dynamicznego.

  2. Na wstążce Narzędzia miary w sekcji >Formatowanie w polu >Listy Format wybierz pozycję Dynamiczny. Po lewej stronie paska formuły DAX pojawi się nowa lista rozwijana z już wybraną pozycją Format. Ta lista rozwijana umożliwia przełączanie między wyrażeniem DAX dla miary statycznej a wyrażeniem DAX dla dynamicznego ciągu formatowania. Niezależnie od tego, jaki ciąg formatu statycznego był używany przed przełączeniem na Dynamic, jest on automatycznie wypełniany jako ciąg znaków na pasku formuły DAX.

    zrzut ekranu przedstawiający listę rozwijaną Format.

  3. Zastąp ciąg wyrażeniem języka DAX, które zwraca prawidłowy ciąg formatu dla twojej miary danych. Na przykład następujące wyrażenie wyszukuje ciąg formatu waluty, którego chcemy użyć w tabeli Ciągi formatu waluty kraju/regionu :

    Zrzut ekranu przedstawiający wyrażenie dynamicznego formatu miary.

  4. Sprawdź, czy ciąg formatu dynamicznego działa w wizualizacji.

    Aby usunąć ciąg formatu dynamicznego i wrócić do używania ciągu formatu statycznego, na liście rozwijanej Format sekcji >Formatowanie wybierz inną opcję formatu. Ponieważ tej akcji nie można cofnąć, zostanie wyświetlone okno dialogowe, które zapyta, czy chcesz kontynuować. Jeśli chcesz ponownie wrócić do używania ciągu formatu dynamicznego, musisz ponownie wprowadzić wyrażenie języka DAX.

    Zrzut ekranu przedstawiający ostrzeżenie o zmianie formatu.

Przykład

Najlepszym sposobem na poznanie nowej funkcji jest wypróbowanie jej samodzielnie. Możesz to zrobić za pomocą przykładowego pliku Adventure Works 2020 PBIX dostępnego w przykładowym modelu DAX. Korzystając z przykładowego modelu, możesz dodać konwersję walut, aby pokazać przekonwertowaną kwotę sprzedaży według roku. Po pobraniu otwórz plik w programie Power BI Desktop.

Tworzenie nowych tabel

Przykładowy model nie zawiera wszystkich danych niezbędnych do utworzenia ciągów formatu dynamicznego i używania ich. Aby rozpocząć, najpierw musisz dodać dwie tabele.

  1. Na wstążce Narzędzia główne wybierz pozycję Wprowadź dane.

  2. W oknie dialogowym Tworzenie tabeli wprowadź Ciągi formatu waluty kraju/regionu w polu Nazwa , a następnie skopiuj i wklej następującą tabelę:

    Country/Region Waluta Formatuj
    Australia Dolar AU$#,0.00
    Kanada Dolar C$#,0,00
    Dania Korona kr#,0
    Strefa euro Euro € #,0,00
    Japonia Jen ¥ #,0
    Szwecja Krona kr#,0
    Szwajcaria Frank CHF#,0.00
    Zjednoczone Królestwo Funt £ #,0
    Stany Zjednoczone Dolar US$#,0,00
  3. Sprawdź, czy tabela wygląda poprawnie i wybierz pozycję Załaduj.

    zrzut ekranu przedstawiający okno dialogowe Tworzenie tabeli.

  4. Powtórz poprzednie kroki dla następującej tabeli:

    Nazwa tabeli: Roczne średnie kursy wymiany

    Country/Region Waluta Rok Średni kurs wymiany rocznej
    Australia Dolar 2022 1.442
    Australia Dolar 2021 1.332
    Australia Dolar 2020 1.452
    Australia Dolar 2019 1.439
    Australia Dolar 2018 1.34
    Australia Dolar 2017 1.358
    Kanada Dolar 2022 1.301
    Kanada Dolar 2021 1.254
    Kanada Dolar 2020 1.341
    Kanada Dolar 2019 1.327
    Kanada Dolar 2018 1.297
    Kanada Dolar 2017 1.35
    Dania Korona 2022 7.077
    Dania Korona 2021 6.29
    Dania Korona 2020 6.538
    Dania Korona 2019 6.67
    Dania Korona 2018 6.319
    Dania Korona 2017 6,864
    Strefa euro Euro 2022 0.951
    Strefa euro Euro 2021 0.846
    Strefa euro Euro 2020 0.877
    Strefa euro Euro 2019 0.893
    Strefa euro Euro 2018 0.848
    Strefa euro Euro 2017 0.923
    Japonia Jen 2022 131.454
    Japonia Jen 2021 109.817
    Japonia Jen 2020 106.725
    Japonia Jen 2019 109.008
    Japonia Jen 2018 110.424
    Japonia Jen 2017 116.667
    Szwecja Krona 2022 10.122
    Szwecja Krona 2021 8.584
    Szwecja Krona 2020 9.205
    Szwecja Krona 2019 9.457
    Szwecja Krona 2018 8.703
    Szwecja Krona 2017 8.894
    Szwajcaria Frank 2022 0.955
    Szwajcaria Frank 2021 0.914
    Szwajcaria Frank 2020 0.939
    Szwajcaria Frank 2019 0.994
    Szwajcaria Frank 2018 0.979
    Szwajcaria Frank 2017 1.024
    Zjednoczone Królestwo Funt 2022 0.811
    Zjednoczone Królestwo Funt 2021 0.727
    Zjednoczone Królestwo Funt 2020 0.779
    Zjednoczone Królestwo Funt 2019 0,784
    Zjednoczone Królestwo Funt 2018 0.75
    Zjednoczone Królestwo Funt 2017 0.808

Utwórz kolumnę Rok

W istniejącej tabeli Date potrzebna jest nowa kolumna Rok.

  1. W widoku Model kliknij prawym przyciskiem myszy tabelę Data i wybierz pozycję Nowa kolumna.

  2. Na pasku formuły języka DAX wprowadź następujące wyrażenie: Year = YEAR([Date]), a następnie naciśnij Enter.

    zrzut ekranu formuły funkcji YEAR w pasku formuły DAX.

Utwórz relacje

Relacje są wymagane między nowymi tabelami Yearly Average Exchange Rates i Country/Region Currency Format Strings (Ciągi formatu waluty kraju/regionu) oraz między tabelą Yearly Average Exchange Rates (Średnie kursy wymiany rocznej) i istniejącą tabelą Date (Data).

  1. Jeśli masz włączoną opcję Autowykrywanie relacji (na karcie Narzędzia kolumny wybierz pozycję Zarządzaj relacjami, a następnie wybierz Autowykrywanie), relacja między Formatami Walut Kraj/Region a Rocznymi Średnimi Kursami Wymiany w kolumnie Kraj/Region mogła zostać utworzona automatycznie. Jeśli nie, utwórz tę relację przy użyciu przycisku Nowa relacja w Narzędziach kolumn>Zarządzaj relacjami:

    • Tabela 1. Roczne średnie kursy wymiany
    • Tabela 1 Kolumna: kraj/region
    • Kardynalność: Wiele do jednego
    • Tabela 2. Ciągi formatu waluty kraju/regionu
    • Tabela 2 Kolumna: kraj/region
    • Uaktywnij tę relację: Tak
    • Kierunek filtrowania krzyżowego: pojedynczy

    Relacja powinna wyglądać następująco:

    Zrzut ekranu przedstawiający właściwości Relacji między ciągami formatu waluty kraju/regionu i średnimi kursami wymiany rocznej.

  2. Jeśli włączono autowykrywanie dla relacji, może zostać utworzona zależność między ciągami formatu waluty kraju/regionu a obszarem sprzedaży w ramach kolumny Kraj/Region. Ta relacja nie jest jednak poprawna dla naszego modelu. Usuń tę relację.

  3. Zamiast tego utwórz relację między rocznymi średnimi kursamiwymiany i datą w kolumnie Year.

    • Tabela 1. Roczne średnie kursy wymiany
    • Tabela 1 Kolumna: Rok
    • Kardynalność: wiele do wielu
    • Tabela 2. Data
    • Tabela 2 Kolumna: Rok
    • Uaktywnij tę relację: Tak
    • Kierunek filtrowania krzyżowego: pojedynczy ("Roczna średnia kurs wymiany" filtruje wartość "Data")

    Relacja powinna wyglądać następująco:

    zrzut ekranu przedstawiający relację.

  4. Zapisz model.

Tworzenie tabeli grupy miar

Grupa miar ułatwia organizowanie różnych miar przez ich posiadanie w jednej tabeli.

  1. Na wstążce Narzędzia główne wybierz pozycję Wprowadź dane.

  2. W oknie dialogowym Tworzenie tabeli pozostaw wartości puste. Nadaj tabeli nazwę Miary sprzedaży, a następnie wybierz pozycję Załaduj. Ta tabela zawiera nowe miary.

Tworzenie miar

  1. W okienku Dane rozwiń i kliknij prawym przyciskiem myszy pozycję Miary sprzedaży, a następnie wybierz pozycję Nowa miara. Wprowadź następujące wyrażenie języka DAX na pasku formuły języka DAX, a następnie naciśnij Enter:

    Sales Amount = SUM(Sales[Sales Amount])
    

    Powinien on wyglądać następująco:

    Zrzut ekranu formuły DAX dla miary kwoty sprzedaży.

  2. W miarach sprzedaży kliknij prawym przyciskiem myszy Kolumna1 i wybierz polecenie Ukryj w widoku raportu. Spowoduje to zmianę miar sprzedaży na grupę miar, która jest teraz wyświetlana w górnej części okienka Danych z ikoną grupy miar, w następujący sposób:

    Zrzut ekranu kolumny

  3. Teraz możesz utworzyć miarę do obliczenia kursu wymiany. Kliknij prawym przyciskiem myszy Miary Sprzedaż, wybierz Nowa miara, wprowadź następujące wyrażenie w pasku formuły DAX i naciśnij 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] )
    )
    
    

    Powinien wyglądać następująco: Zrzut ekranu przedstawiający formułę kursu wymiany w edytorze DAX.

  4. Teraz utwórz kolejną miarę, aby przekonwertować miarę Sales Amount na inne waluty. Kliknij prawym przyciskiem myszy na Miary Sprzedaży, wybierz Nowa miara, wprowadź następujące wyrażenie w pasku formuły DAX i naciśnij Enter:

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

    Miary Sales miar grupy powinny teraz wyglądać następująco: Zrzut ekranu przedstawiający formułę miary 'Przekonwertowana kwota sprzedaży'.

Tworzenie raportu

  1. Przejdź do widoku raportów. Dodaj nową pustą stronę do raportu.

  2. Dodaj wizualizację wykresu liniowego do nowej strony raportu. Użyj tej wizualizacji, aby zobaczyć miarę, zanim dodasz dynamiczny ciąg formatu dla miar.

  3. W okienku Dane>Miary sprzedaży wybierz pozycję Sprzedaż przekonwertowana kwota. Bez wybierania innej opcji, wybierz również pozycję Rok w tabeli Data.

    zrzut ekranu przedstawiający wizualizację wykresu liniowego w widoku raportu.

  4. Skopiuj i wklej wizualizację, aby mieć dwie wizualizacje wykresu liniowego. Zmień drugą wizualizację wykresu liniowego na wizualizację tabeli, a następnie przenieś ją poniżej wykresu liniowego w następujący sposób:

    Zrzut ekranu wizualizacji wykresu liniowego do skopiowania.

  5. Dodaj wizualizację fragmentatora listy do strony raportu, wybierając pozycję Fragmentator Listy w okienku Wizualizacje . W okienku Dane wybierz pozycję Kraj/Region z tabeli Ciągi formatu waluty kraju/regionu , aby dodać go do fragmentatora.

    Zrzut ekranu przedstawiający selektor Kraj/Region.

  6. Zmień kolejność wizualizacji, dopóki nie będą miały lepszego układu, w następujący sposób:

    zrzut ekranu przedstawiający ponowne rozmieszczanie wizualizacji.

  7. Mimo że nie jest to wymagane, można zmienić właściwości wizualizacji, aby utworzyć bardziej atrakcyjny raport. Użyj przycisku Sformatuj wizualizację w okienku Wizualizacje , aby wprowadzić następujące zmiany:

    Krajalnica

    • Wizualny>Ustawienia fragmentatora>— pojedyncze wybieranie>Włączone
    • Ogólne>Właściwości> karty Wypełnienie: 10 px, wszystkie krawędzie
    • Ogólne zakładka >Efekty>Obramowanie wizualne: On, jasnoszary, 10 px zaokrąglone rogi
    • Ogólne karty >Tytuł: Wyłączony
    • Karta>> Obramowanie: #333333, 6 szerokość linii

    tabela

    • Ogólne>Właściwości> karty Wypełnienie: 10 px, wszystkie krawędzie
    • Ogólna karta >Efekty>Obramowanie wizualne: Włączone, o jasnoszarym, zaokrąglone rogi 10 pikseli
    • Wizualizacja>>Linie siatki poziomej: Wł., białe, szerokość 2
    • Karta 'Wizualne'>Siatka>Siatki pionowe: Włączone, Białe, 2 szerokości
    • Karta wizualna>Siatka>Obramowanie: białe
    • Zakładka wizualna>Opcje siatki>: 2 odstępy wierszy
    • Karta>Wartości>Kolor tła: #F6F4F4
    • Wizualne zakładka >Wartości>Kolor tła alternatywnego: #F6F4F4
    • Karta 'Wizualizacja'>Nagłówki kolumn>Tekst: pogrubiony, Kolor tekstu biały, Kolor tła #0D6ABF

    Wykres liniowy

    • Ogólne>Właściwości> karty Wypełnienie: 10 px, wszystkie krawędzie
    • Karta>Efekty>Obramowanie wizualne: Aktywny, jasnoszary, 10 pikseli, zaokrąglone rogi
    • Ogólne karta >Właściwości>Tytuł>Podtytuł: Włączone
    • Zakładka>Oś Y>Tytuł: Wyłącz
    • Karta>> Wartości: Wyłączone
    • Zakładka wizualna>Znaczniki: Włączone
    • Etykiety danych na karcie >: włączone
    • Zakładka Wizual>Etykiety danych>Wartość: pogrubiona, niebieska

    Kanwa (opcjonalnie)

    • Ustawienia> kanwyTło kanwy: jasnoszary, 85% przezroczystość

    Dzięki tym właściwościom wizualizacji uzyskasz miłą stronę raportu, w następujący sposób:

    Zrzut ekranu przedstawiający szare tło kanwy dla wizualizacji.

Tworzenie ciągu formatu dynamicznego

Wybranie różnych nazw krajów/regionów we fragmentatorze powoduje wyświetlenie wyniku miary Przekonwertowana kwota sprzedaży w wizualizacjach, ale nie w odpowiednim formacie dla tego kraju/regionu.

  1. W okienku Dane w obszarze Miary sprzedaży wybierz pozycję Przekonwertowana kwota sprzedaży.

  2. Na wstążce Narzędzia miary wybierz pozycję Dynamiczny z listy rozwijanej Format .

  3. Lista rozwijana po lewej stronie paska formuły powinna teraz powiedzieć Format, a formuła na pasku formuły powinna mieć ciąg formatu. Zastąp ciąg formatu następującym wyrażeniem języka DAX, a następnie naciśnij Enter:

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

    Powinien on wyglądać następująco:

    Zrzut ekranu przedstawiający formułę dynamiczną Ciągi formatu waluty kraju/regionu.

  4. Wybierz inny kraj/region we fragmentatorze. Wizualizacje tabeli i wykresu liniowego powinny teraz wyświetlać przekonwertowaną kwotę waluty w poprawnym formacie dla tego kraju/regionu lub regionu. Spróbuj wybrać inny kraj/region we fragmentatorze, aby zobaczyć, jak zmieniają się wizualizacje.

    zrzut ekranu wizualizacji przedstawiającej przekonwertowaną kwotę sprzedaży.

  5. Zapisz model.

Znane problemy i rozważania

  • Wizualizacje mają opcje formatowania, które mogą mieć wpływ na sposób wyświetlania ciągu formatu. Jeśli formatowanie jest nieoczekiwanie wyświetlane w wizualizacji, przejdź do opcji wizualizacji Format wizualizacji>, wyszukaj opcję Jednostki wyświetlania i zmień je z Auto na Brak.

    Zrzut ekranu przedstawiający jednostki wyświetlania od automatycznego do żadnego.

  • Możesz bezpośrednio odwołać się do samej miary w ciągu formatu dynamicznego, używając jej nazwy (na przykład [Miara A]) lub pośrednio używając symbolu SELECTEDMEASURE().

  • Ciągi formatu dynamicznego dla miar są przeznaczone tylko dla miar modelu. Miary, które można dodać do raportu na żywo, nie mogą mieć dynamicznych ciągów formatowania dla miar.

  • W przypadku trybu DirectQuery dla usług Analysis Services po wybraniu pozycji Wprowadź zmiany w tym modelu w raporcie połączenia na żywo powoduje przesunięcie połączenia z zapytaniem bezpośrednim za pośrednictwem usług Analysis Services. Ogólnie rzecz biorąc, można wprowadzić zmiany w ciągach formatu miar modelu zdalnego. Za pomocą ciągów formatu dynamicznego dla miar:

    • Miary zdalnego modelu z zdefiniowanymi dynamicznymi ciągami formatu są zablokowane przed wprowadzaniem zmian w statycznym ciągu formatu lub w innym dynamicznym wyrażeniu ciągu formatu w języku DAX.
    • Nie można zmienić miar modelu zdalnego z ciągu formatu statycznego na wyrażenie języka DAX w formacie dynamicznym zdefiniowane w modelu lokalnym.
    • Lokalne miary modelu nie mogą używać ciągów formatu dynamicznego dla miar.