Obliczenia wizualne

Dotyczy:✅ Power BI Desktop i usługa Power BI

Obliczenie wizualne to obliczenie języka DAX, które definiujesz i uruchamiasz bezpośrednio w wizualizacji, zamiast dodawać je do modelu semantycznego. Ponieważ obliczenia wizualne współdziałają z danymi widocznymi już w wizualizacji, można wyrazić typowe obliczenia biznesowe — takie jak sumy bieżące, średnie ruchome i porównania okresowe — bez nawigowania w kontekście filtru lub relacji modelu. Wynikiem jest zwykle krótszy kod DAX, który jest łatwiejszy w utrzymaniu i często działa wydajniej niż równoważna miara.

W tym artykule wyjaśniono, jakie są obliczenia wizualne, jak zachowują się w macierzy wizualizacji, jak działają parametry sterujące nimi oraz jak różnią się od miar i kolumn obliczeniowych, dzięki czemu można zdecydować, kiedy obliczenie wizualizacji jest właściwym wyborem.

Oto przykładowe wizualne obliczenie, które definiuje sumę bieżącą dla kwoty sprzedaży. Wymagany kod DAX jest prosty:

Running sum = RUNNINGSUM([Sales Amount])

Zrzut ekranu DAX do obliczeń wizualnych.

Obliczenie może odwoływać się do dowolnych danych w wizualizacji, w tym kolumn, miar lub innych obliczeń wizualnych. Ta możliwość eliminuje złożoność modelu semantycznego i upraszcza proces pisania języka DAX. Za pomocą obliczeń wizualnych można przeprowadzać typowe obliczenia biznesowe, takie jak sumy bieżące lub średnie ruchome.

Obliczenia wizualne różnią się od innych opcji obliczeń w języku DAX:

  • Obliczenia wizualne nie są przechowywane w modelu. Zamiast tego przechowujesz je w wizualizacji. To ograniczenie oznacza, że obliczenia wizualne mogą odnosić się tylko do elementów wizualizacji. Aby obliczenie wizualne mogło się do tego odwołać, należy najpierw dodać to do modelu. To ograniczenie uwalnia obliczenia wizualne od konieczności uwzględniania złożoności kontekstu filtrowania i modelu.
  • Obliczenia wizualne łączą prostotę kontekstu z kolumn obliczeniowych z elastycznością obliczeń na żądanie z miar.
  • W porównaniu z miarami obliczenia wizualne działają na zagregowanych danych zamiast na poziomie szczegółów, co często prowadzi do korzyści z wydajności. Gdy obliczenie można osiągnąć za pomocą nowej miary lub obliczenia wizualnego, ta ostatnia często prowadzi do lepszej wydajności.
  • Ponieważ obliczenia wizualne są częścią wizualizacji, mogą odwoływać się do struktury wizualizacji, co prowadzi do większej elastyczności.

Aby uzyskać bardziej szczegółowe porównanie sposobów dodawania obliczeń w Power BI, zobacz Używanie opcji obliczeń w programie Power BI Desktop.

Wizualizacje tabel i macierzy udostępniają również obliczenia wizualne za pomocą funkcji niestandardowych sum, która umożliwia zmianę zawartości wyświetlanej w wierszu sumy bez pisania formuł DAX. Aby uzyskać więcej informacji, zobacz artykuły wizualizacji tabeli i macierzy .

Aby dowiedzieć się, jak dodać lub edytować obliczenia wizualne, zobacz Tworzenie obliczeń wizualnych.

Jak działają obliczenia wizualne

Tworzysz obliczenia wizualne w trybie Edit, który otwiera się na wybranej wizualizacji. Obszar edycji ma trzy części: podgląd wizualizacji, pasek formuł na wyrażenie DAX oraz macierz wizualną, która wyświetla wyniki w miarę wpisywania.

Zrzut ekranu przedstawiający obszary ekranu edycji obliczeń wizualnych.

Ponieważ na wizualizacji są przechowywane obliczenia wizualne, można odwoływać się do dowolnego elementu wizualizacji — kolumn, miar lub innych obliczeń wizualnych — ale nic innego w modelu. Większość obliczeń wizualnych oblicza wiersz po wierszu względem macierzy wizualizacji, więc funkcje agregacji, takie jak SUM , są zwykle niepotrzebne. Nie można używać funkcji, które zależą od relacji modelu — USERELATIONSHIP, RELATED i RELATEDTABLE.

Po dodaniu obliczenia w wizualizacji pojawi się ono na liście pól wizualizacji i będzie wyświetlane na samej wizualizacji.

Zrzut ekranu przedstawiający obliczenia graficzne wyświetlane na wizualizacji.

Funkcje języka DAX dostępne w obliczeniach wizualnych

Wiele istniejących funkcji języka DAX działa w obliczeniach wizualnych. Ponieważ obliczenia wizualne działają w granicach macierzy wizualizacji, funkcje, które opierają się na relacjach modelu, takich jak USERELATIONSHIP, RELATED lub RELATEDTABLE , nie są dostępne.

Obliczenia wizualne przedstawiają również zestaw funkcji specyficznych dla obliczeń wizualnych. Wiele z tych funkcji to łatwiejsze w użyciu odpowiedniki funkcji okna języka DAX.

Funkcja opis Przykład Skrót do
COLLAPSE Obliczenie jest wykonywane na wyższym poziomie osi. Procent rodzica = DIVIDE([Kwota sprzedaży], COLLAPSE([Kwota sprzedaży], ROWS)) Nie dotyczy
COLLAPSEALL Obliczenie jest oceniane na sumarycznym poziomie osi. Procent sumy końcowej = DIVIDE([Sales Amount], COLLAPSEALL([Sales Amount], ROWS)) Nie dotyczy
EXPAND Obliczanie jest obliczane na niższym poziomie osi. Średnia dzieci = EXPAND(AVERAGE([Sales Amount]), ROWS) Nie dotyczy
EXPANDALL Obliczenie jest wykonywane na poziomie liścia osi. Średnia poziomu liścia = EXPANDALL(ŚREDNIA([Kwota Sprzedaży]), ROWS) Nie dotyczy
FIRST Odnosi się do pierwszego wiersza osi. ProfitVSFirst = [Profit] - FIRST([Profit]) INDEX(1)
ISATLEVEL Informuje, czy określona kolumna jest obecna na bieżącym poziomie. IsFiscalYearAtLevel = ISATLEVEL([Rok obrachunkowy]) Nie dotyczy
LAST Odwołuje się do ostatniego rzędu na osi. ProfitVSLast = [Profit] - LAST([Profit]) INDEX(-1)
LOOKUP Ocenia wyrażenie w wizualnej macierzy przy użyciu bieżącego kontekstu. LookupSalesFor2025WithContext = LOOKUP(SUM([Sales]), [Year], "2025") Nie dotyczy
LOOKUPWITHTOTALS Oblicza wyrażenie w wizualnej macierzy z sumami całkowitymi. LookupSalesFor2025WithTotals = LOOKUPWITHTOTALS(SUM([Sprzedaż]), [Rok], "2025") Nie dotyczy
MOVINGAVERAGE Dodaje średnią ruchomą na osi. MovingAverageSales = MOVINGAVERAGE([Kwota Sprzedaży], 2) WINDOW
NEXT Odwołuje się do kolejnego rzędu na osi. ProfitVSNext = [Profit] - NEXT([Profit]) OFFSET(1)
PREVIOUS Odwołuje się do poprzedniego wiersza osi. ProfitVSPrevious = [Profit] - PREVIOUS([Profit]) OFFSET(-1)
RANGE Odwołuje się do wycinka rzędów wzdłuż osi. AverageSales = AVERAGEX((RANGE1), [Sales Amount]) WINDOW
RUNNINGSUM Dodaje sumę bieżącą na osi. RunningSumSales = RUNNINGSUM([Kwota Sprzedaży]) WINDOW

Parametry kontrolujące przepływ obliczeń

Niektóre funkcje obliczeń wizualnych przyjmują opcjonalne parametry, które określają sposób, w jaki obliczenie przechodzi przez macierz wizualną:

  • Axis i Reset są specyficzne dla obliczeń wizualnych. Odwołują się do struktury wizualizacji, a nie do określonych pól.
  • OrderBy i PartitionBy działają także w kolumnach obliczeniowych i miarach. Odwołują się bezpośrednio do pól.

W poniższych sekcjach opisano poszczególne parametry i informacje o tym, kiedy należy użyć ich nawzajem.

Axis

Wiele funkcji ma opcjonalny Axis parametr, którego można używać tylko w obliczeniach wizualnych. Parametr Axis wpływa na sposób, w jaki obliczenie wizualne przechodzi przez matrycę wizualizacji. Parametr Axis jest domyślnie ustawiony na pierwszą oś w wizualizacji. W wielu wizualizacjach pierwszą osią jest ROWS, co oznacza, że obliczenie wizualne jest obliczane wiersz po wierszu w macierzy wizualizacji, od góry do dołu. W poniższej tabeli przedstawiono prawidłowe wartości parametru Axis :

Axis ikona Axis nazwa opis
ROWS Oblicza między wierszami.
COLUMNS Oblicza między kolumnami.
ROWS COLUMNS Oblicza między wierszami, a następnie kolumnami.
COLUMNS ROWS Oblicza w poprzek kolumn, a następnie w poprzek wierszy.
ROWPAGES Oblicza dla małych wielokrotności.
ROWS ROWPAGES Oblicza między wierszami, a następnie małe wielokrotnki.
COLUMNS ROWPAGES Oblicza między kolumnami, a następnie małe wielokrotnki.
ROWPAGES ROWS Oblicza w obrębie siatki małych wykresów, a następnie w obrębie wierszy.
ROWPAGES COLUMNS Oblicza małe wielokrotnki, a następnie kolumny.
ROWS COLUMNS ROWPAGES Oblicza w wierszach, kolumnach, a następnie w małych wielokrotnościach.
ROWS ROWPAGES COLUMNS Oblicza w poprzek wierszy, następnie małych krotności, a na końcu kolumn.
COLUMNS ROWS ROWPAGES Oblicza w kolumnach, wierszach, a następnie w małych multiplach.
COLUMNS ROWPAGES ROWS Oblicza w kolumnach, małych wielokrotnościach, a następnie w wierszach.
ROWPAGES ROWS COLUMNS Oblicza w małych wielokrotnościach, wierszach, a następnie kolumnach.
ROWPAGES COLUMNS ROWS Oblicza w obrębie małych wielokrotności, kolumn, a następnie wierszy.

Obliczenia wizualne obsługują wizualizacje korzystające z małych wielokrotnków. W wizualizacji macierzowej pole w obszarze pól Małe wielokrotności jest wyświetlane na osi ROWPAGES. Służy ROWPAGES do obliczania między małymi wielokrotnkami lub łączenia jej z elementami ROWS i COLUMNS w celu kontrolowania kolejności przechodzenia.

Uwaga

Jeśli określisz oś, która nie jest obecna na wizualizacji, obliczenie zignoruje tę oś.

Reset

Wiele funkcji zawiera opcjonalny Reset parametr, którego można używać tylko w obliczeniach wizualnych. Parametr Reset określa, czy i kiedy funkcja resetuje jego wartość do wartości 0 lub przełącza się do innego zakresu podczas przechodzenia przez macierz wizualizacji. Kontroluje to zachowanie, partycjonując kolumnę docelową. Gdy obliczenia występują w ramach partycji, sposób dzielenia kolumny na partycje określa, czy obliczenia są resetowane.

Wartość domyślna parametru Reset to NONE, co oznacza, że obliczenie wizualizacji nigdy nie jest uruchamiane ponownie.

Parametr Reset akceptuje różne typy wartości:

  • Liczby całkowite
  • Odwołania do kolumn
  • Specjalne synonimy: HIGHESTPARENT, , LOWESTPARENTNONE

W każdym przypadku parametr określa pojedynczy poziom w hierarchii obliczeń wizualizacji (poziom docelowy). Jednak sposób interpretowania obliczeń na tym poziomie może się różnić.

Zachowanie Reset działa w dwóch różnych trybach: bezwzględnym i względnym.

Jeśli używasz dla parametru wartości całkowitych lub ich odpowiedników NONE, HIGHESTPARENT i LOWESTPARENT, możesz wybrać jeden z tych dwóch trybów na podstawie znaku liczby całkowitej: wartości dodatnie powodują resetowanie w trybie bezwzględnym, a wartości ujemne powodują resetowanie w trybie względnym (a zero w ogóle nie powoduje resetowania, co jest zachowaniem domyślnym).

Jeśli określisz odwołanie do kolumny, działasz również w trybie bezwzględnym. Te wartości określają sposób partycjonowania kolumny docelowej i w związku z tym, czy zostanie zresetowana. W poniższych sekcjach opisano następujące dwa tryby:

Tryb resetowania bezwzględnego

Tryb bezwzględny to sposób działania parametru Reset w obliczeniach wizualnych. Ten tryb wskazuje, że obliczenie powinno partycjonować według kolumny docelowej i wszystkich tych kolumn powyżej. Ta reguła ma zastosowanie na każdym poziomie obliczeń. Na poziomach powyżej kolumny docelowej (na których kolumna docelowa nie jest obecna, podobnie jak ewentualnie inne kolumny) obliczenie jest partycjonowane według pozostałych dostępnych kolumn. Dodatnia wartość całkowita identyfikuje kolumnę docelową, licząc od góry (kolumna na górze ma wartość 1, następna — 2 itd.). Sięga do N (liczby kolumn w hierarchii), a wszystkie wartości powyżej tej liczby są przycinane. Alternatywnie możesz bezpośrednio określić kolumnę.

Rozważmy na przykład obliczenie wizualne z następującymi poziomami hierarchii: Rok, Kwartał, Miesiąc i Dzień. W poniższej tabeli przedstawiono sposób partycjonowania obliczeń na każdym poziomie w zależności od wartości Reset:

Poziom/wartość Reset = 1 lub rok Reset = 2 lub kwartał Reset = 3 lub miesiąc Reset = 4 lub dzień
Poziom dzienny Rok Kwartał i rok Miesiąc, Kwartał i Rok Dzień, Miesiąc, Kwartał i Rok
Poziom miesiąca Rok Kwartał i rok Miesiąc, Kwartał i Rok Miesiąc, Kwartał i Rok
Poziom kwartału Rok Kwartał i rok Kwartał i rok Kwartał i rok
Rok studiów Rok Rok Rok Rok
Poziom sumy końcowej Żaden Żaden Żaden Żaden

Tryb względnego resetowania

Tryb względny to sposób działania parametru Reset w obliczeniach wizualnych. Dla ujemnej wartości całkowitej –X na każdym poziomie obliczenia są partycjonowane według wszystkich kolumn znajdujących się o X lub więcej poziomów powyżej tego poziomu w hierarchii (lub nie są partycjonowane w ogóle, jeśli taki poziom nie istnieje). Prawidłowe wartości dla tego trybu znajdują się między -1 a -N+1 (gdzie N jest liczbą kolumn w hierarchii), a wszystkie niższe wartości są przycinane. Rozważmy ponownie obliczenie wizualne z następującymi poziomami hierarchii: Rok, kwartał, miesiąc i dzień. W poniższej tabeli przedstawiono sposób partycjonowania obliczeń na każdym poziomie w zależności od wartości Reset

Poziom/wartość Reset = -1 Reset = -2 Reset = -3
Poziom dzienny Miesiąc, Kwartał i Rok Kwartał i rok Rok
Poziom miesiąca Kwartał i rok Rok Żaden
Poziom kwartału Rok Żaden Żaden
Rok studiów Żaden Żaden Żaden
Poziom sumy końcowej Żaden Żaden Żaden

Resetuj synonimy parametrów

Parametr Reset zawiera również następujące synonimy:

  • NONE jest wartością domyślną. Nie resetuje on obliczeń i jest równoważny 0.
  • HIGHESTPARENT wykonuje bezwzględny reset na najwyższym poziomie i jest równoważne wartości 1.
  • LOWESTPARENT wykonuje reset względny przez bezpośredni element nadrzędny i jest równoważne -1.

Przykłady użycia parametru Reset

Rozważ obliczenie wizualne z następującymi poziomami hierarchii: Rok, Kwartał, Miesiąc i Dzień. Następujące obliczenia wizualne są równoważne i zwracają sumę Kwota sprzedaży, która jest resetowana w każdym roku, niezależnie od poziomu, na którym obliczenie jest wykonywane (zobacz tryb resetowania bezwzględnego):

RUNNINGSUM([Sales Amount], HIGHESTPARENT)
RUNNINGSUM([Sales Amount], 1)
RUNNINGSUM([Sales Amount], [Year])

Natomiast poniższe obliczenia wizualne zwracają sumę Sales Amount, która zaczyna się od 0 dla każdego bezpośredniego elementu nadrzędnego, w zależności od poziomu, na którym obliczenie jest oceniane (zobacz tryb względnego resetowania).

RUNNINGSUM([Sales Amount], LOWESTPARENT)
RUNNINGSUM([Sales Amount], -1)

Na koniec to wizualne obliczenie nie jest resetowane i kontynuuje dodawanie wartości kwoty sprzedaży dla każdego dnia do poprzednich wartości, bez ponownego rozpoczynania.

RUNNINGSUM([Sales Amount])

OrderBy i PartitionBy

Parametr OrderBy akceptuje ORDERBYparametr , a PartitionBy parametr akceptuje parametr PARTITIONBY. W przeciwieństwie do Axis i Reset możesz używać tych parametrów w kolumnach obliczeniowych, miarach i obliczeniach wizualnych, a także bezpośrednio odwołują się one do pól.

Nie wszystkie funkcje zapewniają te parametry. Funkcje wykluczające obliczenia wizualne nie zapewniają parametru PartitionBy . Funkcje okna udostępniają Reset parametr tylko wtedy, gdy są używane w obliczeniach wizualnych. Parametr Relation w funkcjach okien jest dostępny niezależnie od tego, czy go używasz w obliczeniu wizualnym, czy nie, ale akceptuje Axis tylko wtedy, gdy używasz go w obliczeniu wizualnym.

Wybierz między tymi parametrami

Nie musisz określać wszystkich tych parametrów i można je połączyć. Aby zdecydować, który parametr ma być używany:

  • Preferuj Axis i Reset gdy chcesz, aby zachowanie niezależne od pól było zgodne ze strukturą wizualizacji. Odwoływanie się do struktury wizualizacji jest bardziej elastyczne niż jawne odwoływanie się do pól.
  • Użyj funkcji OrderBy i PartitionBy , jeśli chcesz przypiąć obliczenia do określonych pól niezależnie od układu wizualizacji.
  • Użyj PartitionBy zamiast Reset , gdy oś ma tylko jeden poziom. Reset oczekuje wielu poziomów na osi, więc nie działa, gdy istnieje tylko jedno pole lub gdy na osi istnieje wiele pól.

Selektory parametrów

Selektory parametrów ułatwiają wybieranie wartości parametrów w funkcjach obliczeń wizualnych. Na przykład na poniższym obrazie widzisz wczytany szablon Wyszukiwanie wartości z sumami:

Zrzut ekranu przedstawiający selektor parametrów.

Selektory parametrów można również aktywować za pomocą skrótu klawiaturowego CTRL+SPACJA .

Szablony obliczeń wizualnych

Obliczenia wizualne obejmują szablony ułatwiające pisanie typowych obliczeń. Przycisk szablonu w trybie edycji obliczeń wizualnych otwiera menu dostępnych szablonów.

Zrzut ekranu przedstawiający używanie szablonów do obliczeń wizualnych.

Dostępne są następujące szablony:

  • Suma bieżąca. Oblicza sumę wartości, dodając bieżącą wartość do powyższych wartości. Używa funkcji RUNNINGSUM.
  • Średnia ruchoma. Oblicza średnią zestawu wartości w danym oknie, dzieląc sumę wartości według rozmiaru okna. Używa funkcji MOVINGAVERAGE.
  • Procent elementu nadrzędnego. Oblicza procent wartości względem jej rodzica. Używa funkcji COLLAPSE.
  • Procent sumy końcowej. Oblicza wartość procentową wartości względem wszystkich wartości przy użyciu COLLAPSEALL funkcji .
  • Średnia liczba dzieci. Oblicza średnią wartość zestawu wartości podrzędnych. Używa funkcji EXPAND.
  • W porównaniu z poprzednimi. Porównuje wartość z poprzednią wartością przy użyciu PREVIOUS funkcji .
  • W porównaniu do następnej. Porównuje wartość z kolejną wartością przy użyciu NEXT funkcji .
  • Przeciwko pierwszemu. Porównuje wartość z pierwszą wartością przy użyciu funkcji FIRST.
  • W porównaniu do ostatniego. Porównuje wartość z ostatnią wartością przy użyciu funkcji LAST.
  • Wyszukaj wartość w kontekście. Znajdź wartość lub oceń wyrażenie na wizualnej macierzy w bieżącym kontekście, przy użyciu funkcji LOOKUP.
  • Wyszukaj wartość wraz z sumami. Znajdź wartość lub oblicz wyrażenie w macierzy wizualnej z sumami, korzystając z funkcji LOOKUPWITHTOTALS.

Ukrywanie pól w wizualizacji

W trybie edycji obliczeń wizualnych można ukryć pola w wizualizacji tak samo jak w przypadku ukrywania kolumn i tabel w widoku modelowania. Aby na przykład wyświetlić tylko obliczenie wizualizacji Profit , ukryj wartości Sales Amount (Kwota sprzedaży ) i Total Product Cost (Łączny koszt produktu ) z widoku.

Zrzut ekranu przedstawiający ukrywanie elementów w widoku wizualizacji.

Ukrywanie pól nie powoduje usunięcia ich z wizualizacji ani z macierzy wizualizacji, więc obliczenia wizualne mogą nadal odwoływać się do nich i kontynuować pracę. Ukryte pole nadal pojawia się w macierzy wizualizacji, ale nie jest wyświetlane na wynikowej wizualizacji. Uwzględniaj ukryte pola tylko wtedy, gdy są one niezbędne do wykonania obliczeń wizualnych.

Formatowanie obliczeń wizualnych

Sformatuj obliczenie wizualne za pomocą typów danych i opcji formatowania lub za pomocą niestandardowego ciągu formatującego na poziomie elementu wizualnego. Opcje formatowania danych w sekcji Ogólne okienka formatowania kontrolują format.

Zrzut ekranu trybu edycji wizualnych obliczeń pokazujący obliczenie wizualne, które zwraca procent sformatowany jako procent.

Rozważania i ograniczenia

Nieobsługiwane typy wizualizacji

Obliczenia wizualne i ukryte pola nie działają z następującymi wizualizacjami:

  • Fragmentator, wizualizacja języka R, wizualizacja języka Python
  • Kluczowi wpływowi, drzewo dekompozycji, pytania i odpowiedzi, inteligentna narracja
  • Metryki, Raport podzielony na strony, Power Apps, Power Automate
  • Oś odtwarzania na wykresie punktowym
  • Niestandardowe elementy wizualne

Nieobsługiwane funkcje

Następujące funkcje nie są dostępne w obliczeniach wizualnych:

Ograniczenia dotyczące publikowania i udostępniania

Inne ograniczenia

  • Parametry pola działają z obliczeniami wizualnymi, ale mają pewne ograniczenia.
  • Połączenia na żywo z usługami SQL Server Analysis Services wymagają wersji 2025 lub nowszej.

Aby uzyskać więcej informacji na temat korzystania z obliczeń wizualnych, zobacz następujące zasoby: