Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

W tym samouczku omówiono wybieranie lub filtrowanie określonej daty w raportach danych usługi LuckyTemplates . Materiał użyty w tym samouczku pochodzi z . Dowiesz się, jak rozwiązać problem i zrozumiesz stosowane metody. Możesz obejrzeć pełny film tego samouczka na dole tego bloga.

Spis treści

Zrozumienie raportu danych w usłudze LuckyTemplates

To jest przykładowy raport danych, który zostanie użyty. Składa się z jednej wizualizacji tabeli i dwóch fragmentatorów.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Celem jest wybór daty w kolumnie Data we fragmentatorze. Oznacza to, że po wybraniu daty we fragmentatorze, wizualizacja tabeli pokaże poprzednie dni z 7-dniowym interwałem. W tym przykładzie dane wybrane we fragmentatorze dat to 12 maja 2007 r.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Tabela powinna pokazywać poprzednie z 7-dniową różnicą między datami.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Musisz także utworzyć parametr what if , aby dynamicznie wyświetlać liczbę dat na podstawie wyboru. Jeśli wybierzesz 3 , wizualizacja tabeli powinna zawierać tylko 3 daty.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Odtwarzanie tabeli i wizualizacji

Pierwszym krokiem jest utworzenie parametru what if . W programie LuckyTemplates Desktop przejdź do karty Modelowanie i wybierz Nowy parametr .

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Dodaj nazwę do parametru i ustaw Typ danych na Liczba całkowita . Następnie ustaw wartości minimalną, maksymalną, przyrostową i domyślną, jak pokazano na poniższym obrazku. Dodaj fragmentator do strony, zaznaczając pole.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Po naciśnięciu OK zostanie wygenerowany fragmentator. Przekonwertuj fragmentator na listę, klikając przycisk listy rozwijanej i wybierając Lista.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Następną rzeczą do zrobienia jest utworzenie zduplikowanej tabeli dat, która będzie używana jako odłączona tabela dat. Przejdź do edytora Power Query i zduplikuj Dates .

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Następnie zmień nazwę duplikatu DisDate i kliknij Zamknij i zastosuj.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Ładowanie tabel dat i fragmentatorów w usłudze LuckyTemplates

Po załadowaniu zduplikowanej tabeli do modelu LuckyTemplates utwórz fragmentator z kolumną daty z odłączonej tabeli dat. Otwórz tabelę DisDate i przeciągnij Date na kanwę.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Następnie przekształć wizualizację we fragmentator.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Następnie zmień format fragmentatora na List . Wizualizacja będzie wtedy wyglądać tak.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Następnie zduplikuj fragmentator i zmień pole danych na kolumnę Data z tabeli Daty.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Wybranie daty z fragmentatora Daty ograniczy liczbę widocznych wierszy tabeli Sprzedaż w macierzy. Jeśli wybierzesz 14 marca 2005, matryca pokaże tylko tę datę.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Wynik i miara nie zadziałają, jeśli użyjesz tej konfiguracji. Powodem jest to, że jeszcze zanim środek zacznie działać, dostęp do macierzy został już przefiltrowany. Dla tych przefiltrowanych wartości nie będzie można wygenerować dat z interwałami.

Tworzenie miar dla fragmentatorów wyboru

Musisz utworzyć konfigurację dat, która nie filtruje macierzy bezpośrednio, gdy zaznaczenie jest umieszczane na fragmentatorze. Filtrowanie macierzy musi przechodzić przez kod DAX , a nie bezpośrednio przez slicery. Jeśli więc wybierzesz datę z fragmentatora DisDate, w macierzy nie nastąpią żadne zmiany.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Dzieje się tak, ponieważ tabela DisDate nie ma relacji z tabelą Dates. Dlatego odłączony stół jest niezbędny.

Usuń fragmentator z tabelą Daty i utwórz pierwszą miarę. Miara pobierze wartość wybraną z fragmentatora Daty do wyświetlenia. Pierwszą zmienną, którą należy utworzyć, jest ValuesToShow . Następnie porównaj ją z wartością Daty do wyświetlenia i wprowadź RETURN , aby zwrócić wybrane wartości.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Przeciągnij tę miarę do macierzy. Jeśli wybierzesz 6 z fragmentatora Daty do pokazania, kolumna Miara w macierzy również zwróci 6.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Następnie utwórz kolejną zmienną, która będzie pobierać datę rozłączenia wybraną we fragmentatorze.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Po zakończeniu zobaczysz wartość wybraną we fragmentatorze DisDate pokazaną w kolumnie Measure.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Tworzenie Obliczonej Tabeli

Utwórz listę dat z 7-dniowymi odstępami, zaczynając od daty wybranej we fragmentatorze. Następnie upewnij się, że macierz wygeneruje liczbę dni na podstawie wyboru fragmentatora Daty do wyświetlenia. Aby to zrobić, musisz najpierw utworzyć tabelę obliczeniową .

Obliczona tabela pomaga zwizualizować sposób generowania dat w kodzie języka DAX. Przejdź do Widoku danych i kliknij Nowa tabela.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Wprowadź zmienną SelectedDate i porównaj ją z funkcją DATA . Następnie wprowadź datę w nawiasie. Następnie utwórz kolejną zmienną, która określi liczbę dat, które chcesz pokazać w macierzy. Wprowadź DatesToShow i przyrównaj go do liczby dat.

Następnie utwórz kolejną zmienną, która wygeneruje listę dat z 7-dniowymi interwałami. Wprowadź DatesList i użyj funkcji GENERATESERIES . to funkcja, która generuje listę liczb, przekazując kilka argumentów.

Jako pierwszy argument wprowadź SelectedDate — (DatesToShow * 7)  jako wartość początkową. Następnie wprowadź SelectedDate jako wartość końcową. Jako ostatni argument wprowadź 7 dla wartości przyrostu lub interwału między datami. Po zakończeniu zamknij funkcję i wprowadź RETURN i DateList .

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Następnie możesz zobaczyć tabelę zawierającą siedem wartości, zaczynając od 5 maja i wracając z przyrostem co siedem.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Teraz zauważysz, że utworzono zbyt wiele dat, niż potrzebujesz. W oryginalnym przykładowym raporcie ostatnia data pokazana z tymi samymi opcjami Daty do wyświetlenia i Daty to 31 marca.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Aby to naprawić, możesz zmienić wartość zmiennej DatesToShow na 5 lub odjąć 1 od 6. W tym przykładzie 1 jest odejmowane od 6.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Następnie zobaczysz, że wartości kończą się 31 marca.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Wstrzykiwanie dat w kontekście filtra

Następnie musisz użyć i wstrzyknąć te daty do kontekstu filtru dat. Należy również obliczyć kwotę sprzedaży w kontekście filtru. Skopiuj więc składnię GENERATESERIES i wróć do swojej miary.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

W mierze dodaj nową zmienną i wprowadź DatesToShow . Następnie porównaj tę zmienną ze składnią GENERATESERIES . Zmień zmienne wewnątrz składni z SelectedDate na DisSelectedDate i DatesToShow na ValuesToShow .

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Na koniec utwórz zmienną dla wyniku. Zrównaj to z funkcją CALCULATE nad Total Sales i DatesToShow, aby wstrzyknąć wszystkie daty otrzymane ze składni GENERATESERIES do kontekstu filtra. Po zakończeniu wprowadź Wynik w funkcji RETURN .

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Teraz zobaczysz, że macierz nie pokazuje dat żądanych przez kod DAX. Jeśli przeniesiesz miarę Total Sales do macierzy, zobaczysz, że kod zwraca samą kwotę Sales.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Problem z miarą polega na tym, że data utworzona w składni GENERATESERIES ma pochodzenie danych z odłączoną tabelą dat. Oznacza to, że tabela Date nie jest połączona z tabelą Sales. Dlatego gdy lista dat została zastosowana w kontekście filtru, nie zawierała tabeli Sales.

Musisz użyć funkcji , aby utworzyć relacje wirtualne i zastosować kontekst filtru.

Używanie TREATAS do ustalania daty w LuckyTemplates Matrix

Należy traktować wartości odebrane ze składni GENERATESERIES tak, jakby były częścią oryginalnej tabeli dat. Zasadniczo polega to na budowaniu rodowodu z kolumną Date tabeli Date, która znajduje się w modelu danych.

Tak więc w zmiennej Result wpisz TREATAS po tabeli Total Sales i podaj argumenty. Jako pierwszy argument podaj kolumnę lub tabelę, która nie ma relacji. W tym przypadku używana jest kolumna DatesToShow .

Jako drugi argument podaj kolumnę, do której chcesz odwzorować rodowód kolumny w pierwszym argumencie. W tym przykładzie używana jest kolumna Data z tabeli Daty.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Jednak nawet po poprawkach w kodzie kolumna Measure w macierzy nadal nie będzie pokazywać prawidłowych wartości podczas korzystania z fragmentatora. Możesz również zauważyć, że wartości wewnątrz kolumny się powtarzają.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Problem leży w sposobie napisania kodu. TREATAS stosuje wszystkie wartości do kontekstu filtru, a zastępuje istniejący kontekst filtru w wybranej dacie wszystkimi wartościami pobranymi z funkcji GENERATESERIES .

Używanie funkcji KEEPFILTERS nad TREATAS

Aby upewnić się, że filtr zostanie wstrzyknięty do filtra bez nadpisania istniejącego kontekstu filtra, należy użyć funkcji KEEPFILTERS . zmienia semantykę filtrowania CALCULATE .

Wpisz KEEPFILTERS przed funkcją TREATAS i potwierdź pomiar.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Zobaczysz teraz, że wartości w kolumnie Miara nie powtarzają się.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Jeśli rozwiniesz miesiące maj i kwiecień, zobaczysz, że wartości w kolumnie Miara są równe wartościom w kolumnie Całkowita sprzedaż.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Usuń miarę Total Sales z macierzy i wybierz liczbę we fragmentatorze Daty do wyświetlenia. Zobaczysz wtedy równoważną liczbę dat pokazanych w macierzy.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Naprawianie problemów z brakującymi datami w macierzy usługi LuckyTemplates

Innym problemem związanym z tym raportem jest to, że po wybraniu 8 we fragmentatorze DatesToShow macierz się nie zmienia.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Jeśli wybierzesz 9 we fragmentatorze, macierz pokazuje tylko 8 dat. Zauważysz również, że na liście dat brakuje 17 marca.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Powodem jest to, że w niektóre dni w tabeli Data nie ma pasujących transakcji w tabeli Sprzedaż. Tak więc miara zwraca wartość pustą dla tych dat. Ponieważ zwraca wartość pustą, kod działający za macierzą usuwa puste wiersze z wyniku.

Następnie usługa LuckyTemplates używa zwróconego wyniku do wypełnienia macierzy. Ponieważ niektóre dni są zwracane jako puste, w macierzy nie widać sprzedaży i wpisów z tych dni.

Jeśli chcesz pokazać coś dla dni bez sprzedaży w danych, wróć do miary i usuń składnię CALCULATE .

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Używanie języka DAX do rozwiązywania brakujących dat w usłudze LuckyTemplates

Utwórz pochodzenie danych, wpisując TREATAS w kolumnach DatesToShow i Date w tabeli Dates . Następnie sprawdź, czy wszystkie daty zwrócone przez funkcję TREATAS są uwzględnione w kontekście filtru.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Stamtąd podziel wykonanie na wiele zmiennych. Zmień nazwę zmiennej z Result na CreateDataLineage , aby pokazać, że przechowuje wynik TREATAS .

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Następnie utwórz kolejną zmienną, która będzie przechowywać wszystkie daty widoczne w kontekście filtra pochodzącego z macierzy. Wprowadź VisibleDate jako nazwę zmiennej i użyj w kolumnie Data .

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Następną rzeczą do zrobienia jest utworzenie kolumny nad wynikiem funkcji TREATAS , która zawierałaby kwotę sprzedaży. Wpisz DatesWithSales jako nazwę zmiennej i użyj zamiast zmiennej CreateDataLineage .

Wewnątrz funkcji utwórz nową kolumnę i nadaj jej nazwę Sales Amount z miarą Total Sales w kontekście wiersza, aby zainicjować przejście kontekstu.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Następnie utwórz zmienną, która sprawdzi, czy wszystkie daty przechowywane w zmiennej DatesWithSales są uwzględnione w kontekście filtru. Wprowadź IsDateInFilterContext jako nazwę zmiennej i użyj funkcji .

Stamtąd wpisz DatesWithSales jako pierwszy argument funkcji. Następnie wprowadź Dates[Date] IN VisibleDate jako drugi argument, aby sprawdzić, czy data zawarta w tabeli DatesWithSales jest zawarta w zmiennej VisibleDate .

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Ostatnią zmienną, którą musisz utworzyć, jest Result . Użyj funkcji w stosunku do zmiennej IsDateInFilterContext . Napisz [@Kwota sprzedaży] + 0 , aby uwzględnić dni, które nie zostały wcześniej uwzględnione.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Po tym wszystkim zobaczysz w matrycy brakującą datę, 17 marca.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Używanie +0 w pierwotnej mierze

W poprzednich krokach pokazano, jak utworzyć miarę obejmującą wszystkie daty, które nie zawierają transakcji w tabeli faktów. Teraz, jeśli użyjesz + 0 w oryginalnej utworzonej mierze, wszystkie wartości w kolumnie Miara będą równe 0.

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Wybierz określoną datę w LuckyTemplates przy użyciu obliczeń DAX

Powodem jest to, że zmienna Result zawiera wartość pustą lub kwotę Sales. Więc jeśli dodasz 0, zastąpisz puste miejsce 0. Pamiętaj, że podsumowane kolumny usuwają puste wiersze ze zbioru danych. Zwróć je do usługi LuckyTemplates, aby wyświetlały tylko ograniczoną liczbę wierszy, a nie puste miejsca.

Ale ponieważ dodano 0, kolumna podsumowania jest zmuszona do zachowania wierszy. Następnie zwraca tabelę, która zawiera wszystkie daty istniejące w tabeli Dates i pokazuje zero tam, gdzie ma to zastosowanie lub gdy jest pusta.

Z tego powodu należy przepisać miarę w taki sposób, aby dodać tylko 0 do dat widocznych w kontekście filtru i zawartych w zmiennej DatesToShow .


Łączniki usługi Power Automate: liczba, tekst i data Godzina
Rozszerzona tabela dat Funkcja Power Query M Funkcja
Power Query LuckyTemplates | Twórz nowe rekordy na podstawie pól daty

Wniosek

Aby utworzyć raport danych umożliwiający wybranie określonej daty w macierzy usługi LuckyTemplates , należy użyć tabel obliczeniowych i funkcji języka DAX . Funkcje i miary języka DAX należy pisać w sposób umożliwiający łatwe uzyskiwanie wynikó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.