Wprowadzenie

Ukończone

Obejrzyj film, by dowiedzieć się więcej na temat funkcji iteracyjnych.

Wyrażenia analizy danych (DAX) obejmują rodzinę funkcji znanych jako funkcje iteracyjne. Funkcje iteracyjne wykonują iterację po wszystkich wierszach tabeli i oceniają wybrane wyrażenie dla każdego wiersza. Zapewniają one elastyczność i kontrolę nad sposobem podsumowania danych obliczeń modelu.

Do tej pory znasz funkcje podsumowania z jedną kolumną, w tym SUM, COUNT, MIN, MAX, i inne. Każda z tych funkcji ma równoważną funkcję iteratora, która jest identyfikowana przez sufiks "X", taki jak SUMX, COUNTX, MINX, MAXXi inne. Istnieją też specjalistyczne funkcje iteracyjne służące do filtrowania, tworzenia rankingów czy też wykonywania obliczeń semiaddytywnych w czasie.

Charakterystyczną cechą wszystkich funkcji iteracyjnych jest to, że wymagają podania tabeli i wyrażenia. Tabela może być odwołaniem do tabeli modelu lub wyrażeniem zwracającym obiekt tabeli. Wyrażenie musi zwrócić wartość skalarną.

Funkcje podsumowania z jedną kolumną, takie jak SUM, to funkcje skrócone. Wewnętrznie usługa Microsoft Power BI konwertuje SUM funkcję na SUMX. W rezultacie następujące dwie definicje miary spowodują wygenerowanie tego samego wyniku z tą samą wydajnością.

Revenue = SUM(Sales[Sales Amount])
Revenue =
SUMX(
    Sales,
    Sales[Sales Amount]
)

Ważne jest, aby wiedzieć, w jaki sposób w ramach funkcji iteracyjnych działa kontekst. Ponieważ funkcje iteracyjne wykonują iterację po wierszach tabeli, wyrażenie oceniane jest dla każdego wiersza w kontekście wiersza — podobnie jak w przypadku formuł w kolumnach obliczeniowych. Tabela jest obliczana w kontekście filtru, więc jeśli używasz poprzedniego przykładu definicji miary Revenue , jeśli wizualizacja raportu została przefiltrowana według roku obrachunkowego FY2020, tabela Sales będzie zawierać wiersze sprzedaży uporządkowane w tym roku. Zagadnienie to opisane jest w module dotyczącym kontekstu filtru.

Ważne

Podczas korzystania z funkcji iteracyjnych należy unikać używania dużych tabel (wierszy) z wyrażeniami korzystającymi z ekspansywnych funkcji języka DAX. Niektóre funkcje, takie jak SEARCH funkcja języka DAX, która skanuje wartość tekstową, która wyszukuje określone znaki lub tekst, może spowodować niską wydajność. LOOKUPVALUE Ponadto funkcja języka DAX może spowodować powolne pobieranie wartości w wierszu po wierszu. W tym drugim przypadku użyj RELATED funkcji języka DAX, jeśli jest to możliwe.