Zmienne usługi LuckyTemplates Dax są stałe: co to oznacza?

Ilekroć słyszałeś wyjaśnienie, jak używać zmiennych języka DAX usługi LuckyTemplates, być może słyszałeś wyrażenie „zmienne to stałe”. Wydaje się to proste, ale w tych słowach jest sporo niuansów i złożoności. Na tym blogu wyjaśnię, co oznacza to wyrażenie i jakie będą konsekwencje dla sposobu obliczania miar. Zrozumienie tych koncepcji jest niezbędne do zapewnienia, że ​​Twoje działania przyniosą pożądane rezultaty. Możesz obejrzeć pełny film z tego samouczka na dole tego bloga.

Zmienna w języku DAX może tak naprawdę być dowolnym prawidłowym wyrażeniem języka DAX. Może to być wartość, obliczenie, miara lub zmienna reprezentująca tabelę, inną zmienną lub kombinację tych elementów.

Zmienna składa się z dwóch części. Istnieje deklaracja , w której inicjujesz zmienną; nadajesz mu nazwę, a następnie wartość. Drugi to instrukcja RETURN , która następnie wywołuje co najmniej jedną z deklarowanych zmiennych. To nie jest jak nawias, w którym musisz mieć jedną instrukcję RETURN dla każdej zmiennej, ale musisz mieć co najmniej jedną instrukcję RETURN, jeśli zadeklarowałeś jakiekolwiek zmienne.

Kluczem tutaj jest to, że, jak powiedziałem wcześniej, zmienne są stałe. Oznacza to, że po przypisaniu zmiennych do wartości wartość ta nie może się zmienić przed instrukcją RETURN .

Spis treści

Stosowanie zmiennych LuckyTemplates DAX do miar

Rzućmy okiem na prosty przykład, w którym mam kraje i łączną sprzedaż. Miara Total Sales to tylko nasza najbardziej podstawowa miara, czyli sprzedaży liniowej w tabeli Sales.

Zmienne usługi LuckyTemplates Dax są stałe: co to oznacza?

Powiedzmy, że chcemy uzyskać łączną sprzedaż za rok 2020. W tym zbiorze danych mamy sprzedaż za lata 2019, 2000 i 2021. Aby uzyskać sprzedaż za 2020 r., musimy zastosować bardzo prosty warunek filtrowania, czyli . Zmieniamy więc kontekst naszego filtra. Mamy miarę całkowitej sprzedaży, a nasz rok to 2020.

Zmienne usługi LuckyTemplates Dax są stałe: co to oznacza?

Jeśli upuścimy tę miarę do tabeli, otrzymamy dokładnie to, czego oczekujemy, czyli właściwą liczbę na rok 2020.

Zmienne usługi LuckyTemplates Dax są stałe: co to oznacza?

Teraz, jeśli chcemy zastosować do tego zmienne, oto nieco poprawiona wersja poprzedniej miary, w której utworzyłem zmienną o nazwie TotSales i po prostu ustawiłem ją jako równą naszej miary Total Sales.

Zmienne usługi LuckyTemplates Dax są stałe: co to oznacza?

Jeśli spojrzymy na to z punktu widzenia podstawienia algebraicznego, jeśli po prostu podstawimy to, co było poprzednio naszą miarą całkowitej sprzedaży, zamiast całkowitej sprzedaży, która jest równa tej miary całkowitej sprzedaży, pomyślisz, że to może być to samo i da to samo wynik. Ale jeśli przyjrzymy się i upuścimy tę miarę do naszej tabeli, zobaczymy, że nie daje ona takiego samego wyniku.

Zmienne usługi LuckyTemplates Dax są stałe: co to oznacza?

Deklarowana jest zmienna TotSales, która otrzymuje wartość całkowitej sprzedaży. Powiedzmy, że jesteśmy w wierszu Mołdawia, a ta zmienna otrzymuje wartość 2,35 miliona. Teraz pamiętaj, że wartość nie może się zmienić, dopóki nie zostanie wywołana instrukcja RETURN. Tak więc, kiedy schodzimy w dół, aby obliczyć naszą miarę w zmiennej RESULT , mamy TotSales, która jest stałą na poziomie 2,35 miliona.

Następnie stosujemy do niego nasz kontekst filtru, Dates[Year] równa się 2020 , ale to nie ma znaczenia, ponieważ ta stała nie może się zmienić. Możemy więc powiedzieć, że Dates[Year] równa się 2019, 2021 i tak dalej, to wciąż będzie to samo 2,35 miliona, ponieważ TotSales jest teraz zablokowane jako stała aż do RETURN .

A kiedy wraca, przechodzimy do następnego wiersza, a zmienna przyjmuje wartość Holandii (4,4 miliona). Proces się powtarza, blokując to jako stałą, aż do instrukcji RETURN. To, co otrzymujemy, jest dokładnie tym, co mamy w pomiarze Total Sales, a nie w pomiarze, który filtruje do 2020 roku.

Możesz więc pomyśleć, że to nie wydaje się zbyt przydatne. W tym kontekście nie. Jest to w rzeczywistości częsty błąd, gdy ludzie zaczynają początkowo używać zmiennych . Umieścili zmienną w pierwszej części wyrażenia instrukcji CALCULATE. To zazwyczaj nie da rezultatu, którego szukają, ponieważ blokuje to jako stałą wartość.

Używanie zmiennych LuckyTemplates DAX w iteratorach

Zmienne naprawdę błyszczą, gdy umieścisz je w iteratorach. Omówię z tobą tę sprawę, która jest poprzednią wartościową. Szukamy daty, a następnie poprzedniej wartości z zastrzeżeniem kilku warunków.

Zmienne usługi LuckyTemplates Dax są stałe: co to oznacza?

Pamiętaj, że zanim zmienne pojawiły się w języku DAX, trzeba było to robić za pomocą funkcji o nazwie . Ale teraz zmienne działają tak dobrze w tym kontekście. W przypadku zmiennych zdecydowanie zaleca się, aby nigdy więcej nie używać tej funkcji WCZEŚNIEJ.

Przyjrzyjmy się więc bardziej złożonemu przykładowi, w którym mamy zmienne w części iteratora, a nie w części wyrażenia. Poniżej znajduje się przypadek z pytania, które pojawiło się na , w którym członek chciał spojrzeć na każdą datę w zakresie, a następnie wymyślić pierwszą wcześniejszą datę, która nie była weekendem ani świętem.

Zmienne usługi LuckyTemplates Dax są stałe: co to oznacza?

Chcę skupić się szczególnie na wtorku, 15 października, jako na najlepszym przykładzie. Pożądanym rezultatem było spojrzenie na tę datę. Poniedziałek był Dniem Kolumba, więc było to święto, potem kolejne poprzednie dni to niedziela i sobota. I tak data, którą chcieliśmy uzyskać, to 11 października, czyli piątek.

Jeśli spojrzysz na kolumnę Poprzedni dzień/Bez weekendu/Brak wakacji, wtorek był 11. To samo dotyczyło poniedziałku, niedzieli i soboty. Taki efekt chcemy uzyskać.

Obok powyższej tabeli znajduje się miara, której użyliśmy w tym scenariuszu przypadku. Zadeklarowaliśmy zmienną, która była wybraną datą ( VAR SelDate ), i była to po prostu daty. Wziąłby 15 października w naszej zmiennej, a następnie utrzymywałby to jako stałą aż do instrukcji RETURN.

Następnie oceniamy DAX na zewnątrz w. Jeśli spojrzymy na warunek filtra, usuwamy filtry na Daty, a następnie ustawiamy serię dodatkowych filtrów. Bierze tę stałą wybraną datę, 15 października, i mówi: podaj mi wszystkie wcześniejsze daty. Następnie upewnij się, że żadna z tych dat nie jest sobotą, niedzielą ani świętem. Następnie bierze tych dat, które zostały przefiltrowane.

Widać tutaj, że wybranie danych jako stałej jest swego rodzaju stawką w gruncie, na podstawie której oceniane są wszystkie inne daty przed lub po.

Mamy wybraną datę, a następnie filtrujemy wszystko, co jest przed nią. Bierzemy maksimum z tej przefiltrowanej tabeli. A więc to, co otrzymujemy, to maksimum 15-go, kiedy usuniemy wszystkie inne warunki, to ten piątek 11-go. Następnie, jeśli przejdziemy do instrukcji RETURN, zaczyna się ona od następnego dnia, 16-go. Po prostu kontynuuje iterację w tabeli, aż dotrze do końca danych.

Jak widać w tym przypadku, kiedy umieścimy zmienne w części iteratora, a nie w części wyrażenia, działa to dokładnie tak, jak planowaliśmy. Wykorzystuje fakt, że zmienne są stałymi.


Używanie zmiennych w usłudze LuckyTemplates — szczegółowy przykład
pracy z rozbudowanymi formułami języka DAX w usłudze LuckyTemplates — zawarte wskazówki dotyczące formatowania
Zmienne języka DAX i komentarze upraszczające formuły

Wniosek

W tym blogu pokazałem, jak stosować zmienne języka DAX usługi LuckyTemplates w mierze i jak to działa, gdy zmienne są umieszczane w części miary będącej iteratorem.

Mam nadzieję, że te przykłady wyjaśniają wyrażenie „zmienne są stałe”, dając ci pewien wgląd w to, dlaczego twoje miary wydają się działać, a czasami nie. Mam nadzieję, że dzięki temu uzyskasz ogólne zrozumienie znaczenia tego ważnego pojęcia.

Wszystkiego najlepszego!

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.