Tworzenie ciągów formatu dynamicznego dla miar
DOTYCZY: aplikacja Power BI Desktop
usługa Power BI
Za pomocą dynamicznych ciągów formatu dla miarmożna określić sposób, w jaki miary są wyświetlane w wizualizacjach, stosując warunkowo ciąg formatu przy użyciu oddzielnej formuły DAX.
Ciągi formatu dynamicznego przezwyciężają nieodłączną wadę korzystania z funkcji FORMAT. Oznacza to, że z formatem nawet numeryczne typy danych są zwracane jako ciąg, który może nie działać z wizualizacjami, które wymagają wartości liczbowych, takich jak wykresy. 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.
Ciągi formatu dynamicznego mogą być również używane z grupami obliczeń. Te same wzorce języka DAX, które współpracują z grupami obliczeń, mogą być również używane 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
W okienku Dane wybierz miarę, dla której chcesz określić ciąg formatu dynamicznego.
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ę nowe pole listy z już wybraną opcją Format. Ta lista rozwijana umożliwia przełączanie się między wyrażeniem języka DAX miary statycznej a wyrażeniem języka DAX w formacie dynamicznym. 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.
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 potrzebujemy, w tabeli 'Ciągi formatu waluty kraju':
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, w polu listy Format>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.
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.
Na wstążce Narzędzia główne wybierz pozycję Wprowadź dane.
W oknie dialogowym Tworzenie tabeli wprowadź następującą nazwę tabeli, a następnie skopiuj i wklej następującą tabelę:
Nazwa tabeli: Ciągi formatu waluty kraju
Kraj 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 Sprawdź, czy tabela wygląda poprawnie, a następnie kliknij przycisk Załaduj.
Powtórz poprzednie kroki dla następującej tabeli:
Nazwa tabeli: Roczne średnie kursy wymiany
Kraj 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 Korona 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.
W widoku Model kliknij prawym przyciskiem myszy tabelę Data, a następnie wybierz pozycję Nowa kolumna.
Na pasku formuły języka DAX wprowadź następujące wyrażenie:
Year = YEAR([Date])
, a następnie naciśnij Enter.
Utwórz relacje
Relacje są potrzebne między nowymi tabelami Średnich rocznych kursów wymiany i Ciągami formatu waluty kraju oraz między tabelą Średnich rocznych kursów wymiany a istniejącą tabelą Data.
Jeśli dla relacji zastosowano autowykrywanie, relacja między ciągami formatu waluty kraju a średnimi rocznymi kursami wymiany w kolumnie Country mogła zostać utworzona dla Ciebie. Jeśli nie, utwórz tę relację:
- Tabela 1. Roczne średnie kursy wymiany
- Tabela 1 Kolumna: Kraj
- Kardynalność: Wiele do jednego
- Tabela 2. Ciągi formatu waluty kraju
- Tabela 2 Kolumna: Kraj
- Uaktywnij tę relację: Tak
- Kierunek filtrowania krzyżowego: pojedynczy
Relacja powinna wyglądać następująco:
Jeśli dla relacji zastosowano autowykrywanie, może zostać utworzona relacja między ciągami formatu waluty krajowej a obszarem sprzedaży w kolumnie Kraj. Ta relacja nie jest jednak poprawna dla naszego modelu. W widoku modelu usuń tę relację.
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:
Zapisz model.
Tworzenie tabeli grupy miar
Grupa miar ułatwia organizowanie różnych miar przez ich posiadanie w jednej tabeli.
Na wstążce Narzędzia główne wybierz pozycję Wprowadź dane.
W oknie dialogowym Tworzenie tabeli pozostaw wartości puste. Nadaj tabeli nazwę Miary sprzedaży, a następnie kliknij pozycję Załaduj. Ta tabela zawiera nowe miary.
Tworzenie miar
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:
W miarach sprzedaży kliknij prawym przyciskiem myszy pozycję Kolumna1, a następnie wybierz polecenie Ukryj w widoku raportu. Spowoduje to zmianę miar Sales na grupę miar, która jest teraz wyświetlana w górnej części okienka Dane z ikoną grupy miar, w następujący sposób:
Teraz możesz utworzyć miarę do obliczenia kursu wymiany. Kliknij prawym przyciskiem myszy na Miary sprzedaży, wybierz Nowa miara, wprowadź następujące wyrażenie na pasku formuły języka DAX, a następnie naciśnij Enter:
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] ) )
Teraz utworzysz kolejną miarę, aby przekonwertować miarę Sales Amount na inne waluty. Kliknij prawym przyciskiem myszy Miary sprzedaży, wybierz pozycję Nowa miara, wprowadź następujące wyrażenie na pasku formuły języka DAX, a następnie naciśnij Enter:
Converted Sales Amount = SUMX('Date', CALCULATE( [Sales Amount] * [Exchange Rate (Yearly Avg)]))
Tworzenie raportu
Przejdź do widoku raportów. Dodaj nową, pustą stronę do raportu.
Dodaj wizualizację wykresu liniowego do nowej strony raportu. Ta wizualizacja służy do wyświetlenia miary przed dodaniem ciągu formatu dynamicznego dla miar.
W okienku Dane>Miary sprzedaży wybierz pozycję Sprzedaż przekonwertowana kwota. Nie klikając nigdzie indziej, wybierz również Rok w tabeli Data.
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:
Dodaj wizualizację fragmentatora do strony raportu. Na wstążce Format dodaj Kraj z tabeli Ciągi formatu waluty kraju do fragmentatora.
Zmień kolejność wizualizacji, dopóki nie będą miały lepszego układu, w następujący sposób:
Chociaż nie jest to wymagane, możesz zmienić właściwości wizualizacji, aby utworzyć raport bardziej atrakcyjny:
Krajalnica
- Ustawienia fragmentatora: wybór pojedynczy
- Rozmiar i styl, wypełnienie: 10 pikseli, wszystkie krawędzie
- Rozmiar i styl, Obramowanie wizualne: jasnoszary, zaokrąglone rogi o promieniu 10 pikseli
- Ustawienia fragmentatora, Styl: Kafelek
- Nagłówek filtrowany: wyłączony
- Wartości, obramowanie: Lewo, #333333, szerokość linii 6
Tabela
- Rozmiar i styl, wypełnienie: 10 pikseli, wszystkie krawędzie
- Rozmiar i styl: Obramowanie wizualne: jasnoszare, zaokrąglone narożniki o promieniu 10 pikseli.
- Siatka, Poziome linie siatki: Białe, szerokość 2
- Siatka, pionowe linie siatki: białe, szerokość 2
- Siatka, obramowanie: białe
- Siatka, opcje: 2 odstęp wierszy
- Wartości, Wartości: kolor tła #F6F4F4
- Wartości, Wartości: Alternatywny kolor tła #F6F4F4
- Nagłówki kolumn, tekst: pogrubiony, kolor tekstu biały, kolor tła #0D6ABF
Wykres liniowy
- Rozmiar i styl, wypełnienie: 10 pikseli, wszystkie krawędzie
- Rozmiar i styl, wizualne obramowanie: jasnoszare, narożniki zaokrąglone o promieniu 10 pikseli
- Tytuł, podtytuł: włączone
- Oś Y, Tytuł: Wyłączone
- Oś Y: wyłączone
- Znaczniki: włączone
- Etykiety danych: włączone
- Etykiety danych, wartości: Pogrubiony, Niebieski
Kanwa (opcjonalnie)
- Tło kanwy: jasnoszary, przezroczystość 85%
Dzięki tym właściwościom wizualizacji uzyskasz miłą stronę raportu, w następujący sposób:
Tworzenie ciągu formatu dynamicznego
Wybranie różnych nazw krajów we fragmentatorze powoduje wyświetlenie wyników miary Przekonwertowana Kwota Sprzedaży w wizualizacjach, ale nie w odpowiednim formacie dla wybranego kraju lub regionu.
W okienku DaneMiary sprzedaży wybierz pozycję Przekonwertowana Kwota Sprzedaży.
Na wstążce Narzędzia miary kliknij listę rozwijaną Format, a następnie wybierz Dynamiczne.
Pole listy rozwijanej z lewej strony paska formuły powinno 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 Currency Format Strings'[Format], "\$#,0.00;(\$#,0.00);\$#,0.00" )
Powinien on wyglądać następująco:
Wybierz inny kraj we fragmentatorze. Wizualizacje tabeli i wykresu liniowego powinny teraz wyświetlać przekonwertowaną kwotę waluty w poprawnym formacie dla tego kraju lub regionu. Spróbuj wybrać inny kraj/region we fragmentatorze, aby zobaczyć, jak zmieniają się wizualizacje.
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 Format wizualizacji, wyszukaj Jednostki wyświetlania i zmień ustawienie z Auto na Brak.
Miara może być odwołana bezpośrednio w formacie dynamicznego tekstu, używając jej nazwy, takiej jak [Measure A], lub pośrednio za pomocą
SELECTEDMEASURE()
.Ciągi formatu dynamicznego dla miar są przeznaczone tylko dla miar modelu. Miary raportu, które można dodać do raportu Live Connect, nie mogą mieć dynamicznych ciągów formatowania dla miar.
W przypadku użycia DirectQuery dla usług Analysis Services, po kliknięciu Wprowadź zmiany w tym modelu w raporcie z połączeniem na żywo, połączenie zostaje przełączone na tryb DirectQuery przez usługi 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.
- Miary modelu zdalnego nie można zmienić 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.