Praca z funkcjami iteracyjnymi w języku DAX

Za każdym razem, gdy pracuję z członkami LuckyTemplates na forum, widziałem pewne zamieszanie z funkcjami iteracyjnymi w języku DAX. Zrobimy więc przegląd tego, co można osiągnąć za pomocą tych funkcji i dlaczego warto z nich korzystać. Możesz obejrzeć pełny film tego samouczka na dole tego bloga.

Im bardziej zapoznasz się z formułami języka DAX , tym funkcji iteracyjnych będziesz używać znacznie częściej, niż myślisz. Są znacznie bardziej wszechstronne niż proste funkcje agregujące, takie jak SUMA lub AVERAGE .

Mam tutaj kilka przykładów i chcę przeanalizować logikę w każdym z nich, abyś mógł bardzo dobrze zrozumieć, co faktycznie dzieje się, gdy logika jest uruchamiana za pomocą tych formuł.

Kluczową rzeczą w funkcjach iteracyjnych jest to, że wykonują iterację przez coś.

Spis treści

Prosta iteracja przy użyciu SUMX

Praca z funkcjami iteracyjnymi w języku DAX

W tym przypadku chcę coś podsumować, ale chcę przejrzeć każdy pojedynczy wiersz w tej tabeli Sales.

Praca z funkcjami iteracyjnymi w języku DAX

A potem w każdym rzędzie chcę tutaj uruchomić tę konkretną logikę.

Praca z funkcjami iteracyjnymi w języku DAX

Przejdźmy szybko do naszej bardzo prostej tabeli Sales, w której chcę wprowadzić logikę w każdym wierszu. A potem chcę pomnożyć ilość przez cenę.

Praca z funkcjami iteracyjnymi w języku DAX

Cena nie istnieje w tej tabeli. W przypadku tego konkretnego modelu znajduje się on w tabeli produktów.

Praca z funkcjami iteracyjnymi w języku DAX

Następną rzeczą, którą muszę zrobić, to sięgnąć z powrotem do mojej tabeli Product i mogę to zrobić za pomocą RELATED . Kiedy obliczamy ilość razy odpowiednią cenę, robimy to dla każdego wiersza. Dokładnie to dzieje się wewnątrz tej formuły.

To są kluczowe pojęcia, o których należy pamiętać, gdy zaczynamy robić bardziej zaawansowane rzeczy.

Alternatywne podejście do uzyskiwania sprzedaży za pomocą SUMX

Praca z funkcjami iteracyjnymi w języku DAX

W tym przykładzie ponownie wykonałem iterację SUMX w tabeli Sales. Więc uruchamiamy tę logikę w każdym pojedynczym wierszu i obliczamy ilość razy cenę w każdym pojedynczym wierszu, a następnie agregujemy to po zakończeniu wszystkich iteracji.

Praca z funkcjami iteracyjnymi w języku DAX

Zobaczysz tutaj, że ten wynik jest dokładnie taki sam, jak wyniki w pierwszym przykładzie (samouczek SUMX 2) lub Total Sales.

Możesz tu umieścić całą gamę różnych rzeczy – może to być miara i możesz rozgałęziać się za pomocą funkcji iteracyjnej. Nie musisz odwoływać się do konkretnych kolumn, aby poprawnie uzyskać obliczenia.

Praca z funkcjami iteracyjnymi w języku DAX

Jak widać tutaj, wszystko, co zrobiłem, to umieszczenie miary (Sprzedaż całkowita) tutaj i otrzymuję dokładnie ten sam wynik.

SUMX i funkcje logiczne

Praca z funkcjami iteracyjnymi w języku DAX

Używam tutaj SUMX , ale jest to również istotne dla AVERAGEX , MINX i MAXX . To wszystko są bardzo podobne rzeczy.

Inną kluczową rzeczą do zapamiętania w przypadku tych funkcji iteracyjnych jest to, że uruchamiają one logikę w każdym pojedynczym wierszu i zapisują wynik w pamięci.

Po zapisaniu wszystkich tych wartości w pamięci wykonywane jest nadrzędne obliczenie — na przykład SUMA lub ŚREDNIA .

Praca z funkcjami iteracyjnymi w języku DAX

Wracając do naszego przykładu, tutaj widać, że kwota w tej kolumnie jest nieco mniejsza niż w poprzednich kolumnach.

Praca z funkcjami iteracyjnymi w języku DAX

Za pomocą funkcji iteracyjnej SUMX chcę przeglądać każdy pojedynczy wiersz w tabeli Sales. W każdym rzędzie chcę obliczyć, czy ta konkretna sprzedaż przekracza 2000 USD. Jeśli tak, chcę obliczyć całkowitą sprzedaż dla tego wiersza. Ale jeśli suma sprzedaży wyniosła mniej niż 2000 USD, chcę zwrócić zero. Więc chcę tylko obliczyć sprzedaż o wyższej wartości.

Niektórzy zasugerują, że mógłbym po prostu umieścić logikę w kolumnie obliczeniowej. Ale nie chcemy tego robić, ponieważ istnieje znacznie lepszy sposób na uruchomienie tej logiki w języku DAX niż umieszczanie jej fizycznie w kolumnie.

Iteracja po tabelach

W tym miejscu funkcje iteracyjne są naprawdę niesamowite. Możesz nie tylko iterować po fizycznej tabeli, tak jak robiliśmy to wcześniej, ale możesz także iterować po innej wirtualnej tabeli, którą wprowadzasz jako parametr.

Praca z funkcjami iteracyjnymi w języku DAX

Będziemy myśleć, że każdy wynik tutaj ma określony kontekst. W tym konkretnym przypadku mamy do czynienia z kontekstem klienta.

Praca z funkcjami iteracyjnymi w języku DAX

W tym kontekście chcę przejść przez każdą lokalizację i sprawdzić, czy dany klient osiągnął sprzedaż powyżej 5000 USD.

Jeśli tak, chcę obliczyć całkowitą sprzedaż. Ale jeśli nie, chcę, żeby zwrócił zero.

Praca z funkcjami iteracyjnymi w języku DAX

Tak więc w tym konkretnym przypadku obliczam lokalizacje o wysokiej wartości, w których kupuje ten klient, oraz łączną sprzedaż, jaką realizuje w tych lokalizacjach.

Praca z funkcjami iteracyjnymi w języku DAX

To, co robi tutaj VALUES , to tworzenie wirtualnej tabeli. Więc SUMX nie działa tutaj nawet nad niczym fizycznym. W rzeczywistości pracuje nad czymś, co jest całkowicie wirtualne.

Prosta iteracja przy użyciu MINX

Praca z funkcjami iteracyjnymi w języku DAX

Jest to podobne do poprzednich przykładów, ale zamiast SUMX uruchomimy jakiś inny rodzaj agregacji, gdy przejdziemy przez każdy pojedynczy wiersz.

Praca z funkcjami iteracyjnymi w języku DAX

W tym konkretnym przypadku zapisujemy każdą lokalizację dla każdego klienta i obliczamy łączną sprzedaż dla każdej z tych lokalizacji.

Praca z funkcjami iteracyjnymi w języku DAX

Następnie chcemy zwrócić bardzo minimalną kwotę lokalizacji, w której zakupili.

Prosta iteracja przy użyciu MAXX

Praca z funkcjami iteracyjnymi w języku DAX

Robię tutaj również coś podobnego, aby pokazać wszechstronność funkcji iteracyjnych. Przechodzę przez każdą lokalizację, patrząc na ich sprzedaż, ale potem zwracam maksymalną sprzedaż w tych lokalizacjach, dlatego widzimy tutaj wyższe liczby.

Wniosek

Kluczową rzeczą, którą chciałem poruszyć w tym artykule, jest zakres opcji, które masz w funkcji iteracyjnej w porównaniu z prostą sumą lub średnią.

Gdy zaczniesz zagłębiać się w bardziej złożone obliczenia, zobaczysz, jak ważne są te konkretne funkcje, aby zwracać wartości na poziomie kontekstu.

Jest tak wiele wszechstronności i tak wiele sposobów, że możesz przeprowadzić te obliczenia za pomocą prostej formuły, jeśli tylko wiesz, jak manipulować parametrami.

Jeśli zapoznanie się z tymi funkcjami iteracyjnymi sprawiło Ci przyjemność , możesz przejrzeć te łącza, aby uzyskać więcej informacji na ten temat:

Kluczowe pojęcia dotyczące funkcji iteracyjnych w usłudze LuckyTemplates

Iteracja logiki za pomocą tabel wirtualnych — zaawansowane koncepcje języka DAX w usłudze LuckyTemplates

Miłej pracy z tym.

Leave a Comment

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.

Funkcje zbierania w Microsoft Power Automate

Funkcje zbierania w Microsoft Power Automate

Odkryj różnorodne funkcje zbierania, które można wykorzystać w Power Automate. Zdobądź praktyczne informacje o funkcjach tablicowych i ich zastosowaniu.

Oceń wydajność kodu DAX w DAX Studio

Oceń wydajność kodu DAX w DAX Studio

Z tego samouczka dowiesz się, jak ocenić wydajność kodów DAX przy użyciu opcji Uruchom test porównawczy w DAX Studio.

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Jak zapisać i załadować plik RDS w R

Jak zapisać i załadować plik RDS w R

Dowiesz się, jak zapisywać i ładować obiekty z pliku .rds w R. Ten blog będzie również omawiał sposób importowania obiektów z R do LuckyTemplates.

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

W tym samouczku omówiono sposób korzystania z techniki wielowątkowych wizualizacji dynamicznych w celu tworzenia szczegółowych informacji na podstawie dynamicznych wizualizacji danych w raportach.

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

W tym artykule omówię kontekst filtra. Kontekst filtrowania to jeden z głównych tematów, z którym każdy użytkownik usługi LuckyTemplates powinien zapoznać się na początku.

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Chcę pokazać, jak usługa online LuckyTemplates Apps może pomóc w zarządzaniu różnymi raportami i spostrzeżeniami generowanymi z różnych źródeł.

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Dowiedz się, jak obliczyć zmiany marży zysku przy użyciu technik, takich jak rozgałęzianie miar i łączenie formuł języka DAX w usłudze LuckyTemplates.