Funkcje iteracyjne w języku DAX — szczegółowy przykład

W tym poście na blogu chcę zagłębić się w funkcje iteracyjne w języku DAX w usłudze LuckyTemplates. Powodem, dla którego chcę poświęcić trochę czasu na pokazanie, co można zrobić w ramach funkcji iteracyjnych, jest to, że jest to tak ważna koncepcja, której trzeba się bardzo dobrze nauczyć. Możesz obejrzeć pełny film tego samouczka na dole tego bloga.

Być może dopiero co ukończyłeś proste obliczenia SUMA lub potencjalnie używałeś funkcji ŚREDNIA, ale ważne jest również, aby zrozumieć, jak używać funkcji iteracyjnych, które mają X na końcu , takich jak: SUMX, ŚREDNIA.X lub ILE.CZ.

Powodem jest to, że możesz uzyskać znacznie bardziej zaawansowany poziom w funkcji iteracyjnej niż w przypadku funkcji agregującej.

Spis treści

Co to jest funkcja iteracyjna?

Jeśli nadal nie wiesz, czym jest funkcja iteracyjna, jest to funkcja w języku formuł DAX, która zwykle ma X na końcu. Masz również funkcje tabelowe, które iterują po tabeli, takie jak FILTER lub VALUES, ale w tym przypadku będziemy zajmować się wyłącznie SUMX.

Jeśli spojrzysz na nasz wzór na całkowitą sprzedaż, możesz zauważyć, że jest to funkcja iteracyjna ze względu na SUMX. Iteracja oznacza iterację każdego pojedynczego wiersza i wykonanie obliczeń. W tym przypadku dla każdego pojedynczego wiersza w tabeli Sprzedaż mnożymy ilość przez aktualną cenę. Wracamy również do tabeli Produkt za pomocą funkcji POWIĄZANE, aby uzyskać aktualną cenę.

Funkcje iteracyjne w języku DAX — szczegółowy przykład

Chcę ci pokazać, jak możesz pisać naprawdę złożone funkcje iteracyjne, które wydobywają świetny wgląd, który możesz chcieć uzyskać ze swoich danych. W tym samouczku chcę obliczyć, ile sprzedaży dokonujemy powyżej określonej ceny. W tym przypadku wybieramy 2000 $.

Chcę również wiedzieć, jaka jest nasza miesięczna sprzedaż produktów o wartości powyżej 2000 USD, ale gdy ktoś kupuje więcej niż jeden produkt. Chcemy również zobaczyć, jak wypada to w porównaniu z naszą całkowitą sprzedażą. Jest to rodzaj złożoności, który można osiągnąć, pisząc tylko jedną formułę i używając funkcji iteracyjnej.

Cena sprzedaży większa niż 2000 USD

Utwórzmy miarę i nazwijmy ją Sale Price > $2000 & Quantity > 1 . Ogólnie rzecz biorąc, musiałbyś napisać kilka różnych kolumn lub kilka różnych miar, aby zobaczyć odpowiedź tutaj, ale pokażę ci, jak możesz to zrobić za pomocą tylko jednej. Zacznę od SUMX i tutaj jest napisane, że musimy wprowadzić tabelę, prawda?

Funkcje iteracyjne w języku DAX — szczegółowy przykład

Zamierzamy więc zmierzyć się z wyzwaniem Ilość > 1, tworząc tabelę, która nie jest całą tabelą Sales, ale tabelą, która już odfiltrowała wszystko, co widziało tylko raz. Użyjemy tutaj FILTRA, ponieważ jest to funkcja tabelaryczna, więc możesz umieścić w niej dowolny rodzaj tabeli. Następnie przejdziemy do Sales i przejdziemy przez każdy pojedynczy wiersz w tabeli Sales w ramach tej funkcji FILTRUJ i odfiltrujemy każdy wiersz z ilością większą niż jeden.

Funkcje iteracyjne w języku DAX — szczegółowy przykład

Dla każdej sprzedaży powyżej 1 chcę również stworzyć dodatkową logikę. Zamierzam napisać wzorzec wyrażenia i użyć tutaj SWITCH. Powiemy, że jeśli sprzedaż ma aktualną cenę większą lub równą 2000 USD, to chcę obliczyć całkowitą sprzedaż. Jeśli nie, to w ogóle nie chcę tego obliczać. Na koniec wstawię 0 jako wynik alternatywny.

Funkcje iteracyjne w języku DAX — szczegółowy przykład

W ten sposób piszesz dość złożone formuły iteracyjne w języku DAX. Kluczową częścią jest po prostu zrozumienie, jakiego rodzaju tabele można tam umieścić i wiedza o tym, co robi rzeczywista iteracja .

W tym przypadku dla każdego pojedynczego wiersza w tej tabeli filtrowania oceniam, jaka jest aktualna cena wyższa niż 2000 USD. Jeśli tak, liczymy sprzedaż z tego wiersza, a jeśli nie, to po prostu 0.

Kiedy przeciągnę tę miarę do tabeli, zobaczysz, że wyniki są podobne do tego, co osiągnęliśmy na pierwszym wykresie; jedyna różnica polega na tym, że jest to na co dzień.

Funkcje iteracyjne w języku DAX — szczegółowy przykład

Cena sprzedaży większa niż 500 USD

Możemy tutaj uzyskać dodatkowy wgląd, ponownie wykorzystując ten sam wzorzec. Gdybyśmy chcieli spojrzeć na to, co było powyżej 500 $, wszystko, co musimy zrobić, to wprowadzić tutaj małe zmiany, nacisnąć enter, a następnie przeciągnąć to również do tabeli.

Funkcje iteracyjne w języku DAX — szczegółowy przykład

Oczywiście widzimy dużą różnicę, ponieważ podliczamy więcej produktów. Dzieje się tak dlatego, że nie pozbywamy się tak wielu produktów o wyższej lub niższej cenie, jak to miało miejsce wcześniej w przypadku 2000 USD.

Funkcje iteracyjne w języku DAX — szczegółowy przykład

Wizualizacja danych 

Możemy to jednak również zamienić na wizualizację , ponieważ widać, że wykres wygląda na nieco zajęty, więc prawdopodobnie lepiej pozostać w tabeli lub możemy bardziej skondensować ramy czasowe, jak na wykresie po lewej stronie.

Funkcje iteracyjne w języku DAX — szczegółowy przykład

Mamy nadzieję, że potrafisz ocenić i zrozumieć, jak daleko możesz się posunąć z tymi funkcjami iteracyjnymi w języku DAX. Możesz zacząć naprawdę zagłębiać się w dowolny aspekt swoich danych lub wydobywać bardzo szczegółowe informacje. Sposobem na to jest użycie kontekstu wiersza, który pozwala faktycznie wejść do tych funkcji iteracyjnych. Możesz spojrzeć na pojedynczy wiersz, umieścić go w obliczeniach lub poza nimi i użyć funkcji iteracyjnych, takich jak SUMX, AVERAGEX i COUNTX.

Funkcje iteracyjne zapewniają o wiele większą elastyczność w zakresie obliczeń, które można wykonać na poziomie wiersza, w porównaniu z agregacjami, które pozwalają tylko na agregację całej kolumny. Teraz, w ramach funkcji iteracyjnych, musisz najpierw wprowadzić odwołanie do tabeli, a następnie wyrażenie, ale z pewnością rozwiniesz swój umysł pod względem tego, czym właściwie może być którykolwiek z nich.

W ramach funkcji iteracyjnych można tak naprawdę umieścić dowolną tabelę lub dowolną pochodną tabeli… także dowolną wirtualną tabelę lub odwołanie do tabeli. Zapewnia to znacznie większą elastyczność niż zwykle, gdyby użyć całej tabeli, takiej jak tabela transakcji, do przeprowadzenia logiki.

Wyrażenie (lub miara), które wprowadzasz, może być również bardzo zaawansowane. Możesz użyć zaawansowanej logiki JEŻELI lub logiki SWITCH lub w zasadzie wszystkiego, co możesz zrobić na poziomie wiersza w kolumnie obliczeniowej. Właściwie możesz umieścić to w tej części wyrażenia funkcji iteracyjnej.

Wniosek

Kluczowym wnioskiem płynącym z tego postu jest to, że funkcje iteracyjne są niezwykle ważne, aby dobrze zrozumieć i nauczyć się obsługi usługi LuckyTemplates.

Jeśli dobrze się tego nauczysz, możliwości wykonywania wewnętrznych obliczeń w pamięci za pomocą miar stają się naprawdę, naprawdę potężne.

Jeśli dopiero zaczynasz z językiem DAX i usługą LuckyTemplates, zapoznaj się z Wiele do nauczenia się w ramach tego bezpłatnego kursu. Możesz to znaleźć w .

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.