Tabela wirtualna usługi LuckyTemplates | 5 porad i wskazówek dotyczących debugowania

Wirtualny stół usługi LuckyTemplates to mój ulubiony temat języka DAX. Są kluczem do odblokowania pełnej mocy języka DAX. Tabele wirtualne to jedyny typ tabel w usłudze LuckyTemplates, który jest w pełni dynamiczny, i istnieją problemy, które można rozwiązać tylko poprzez zastosowanie technik tabel wirtualnych w swoich miarach. Możesz obejrzeć pełny film z tego samouczka na dole tego bloga.

W tym samouczku podzielę się moimi 5 najważniejszymi wskazówkami i sztuczkami, które zgromadziłem przez lata i które naprawdę pomogły mi zrozumieć i debugować to, co dzieje się w wirtualnych tabelach usługi Power Bi.

Przykład, który dzisiaj omówię, pochodzi z i pochodzi od członka o imieniu Dave C, który pracuje w dziedzinie bezpieczeństwa przemysłowego. Dave miał serię wyników bezpieczeństwa i chciał je znormalizować, tak aby najwyższy wynik wynosił 10, a następnie dynamicznie wymyślić N-ty na tej liście.

Tabela wirtualna usługi LuckyTemplates |  5 porad i wskazówek dotyczących debugowania

Początkowo myśleliśmy o zrobieniu tego za pomocą prostej miary , ale później zdaliśmy sobie sprawę, że wiele jego znormalizowanych wartości ma powiązania. Na przykład, jeśli chcesz siódmą pozycję na liście, w RANKX nie będzie cyfry siedem. Nie ma łatwego sposobu na wyciągnięcie tego z warunku filtra. Zdecydowaliśmy się więc na miarę opartą na , aby zawsze odliczała n-tą liczbę.

Jest to podobne do sytuacji, gdy wyciągasz siódmą kartę z talii, odliczasz siedem kart, a następnie odwracasz ten stos siedmiu kart i karta na dole jest tą, którą chcesz. Zrobimy odpowiednik tego w takcie TOPN.

Spis treści

Porada nr 1: użyj zewnętrznego narzędzia do wizualizacji wirtualnej tabeli usługi LuckyTemplates

Możesz użyć DAX Studio lub Edytora tabelarycznego. W tym przykładzie używam Edytora tabelarycznego 3 (TE3). Jest to technicznie możliwe przy użyciu karty Modelowanie — Nowa tabela, ale spowoduje to utworzenie fizycznych tabel w modelu danych. Będziesz musiał ręcznie przełączać się między tym a edytorem, a jest to po prostu powolny i trudny sposób na zrobienie tego.

Kiedy zobaczysz dynamiczny sposób, w jaki można to zrobić za pomocą zewnętrznego narzędzia, zobaczysz korzyści.

Tak więc w TE3 tworzymy nowe zapytanie DAX. Możemy wziąć nasz początkowy pomiar i skopiować go do naszego zapytania DAX.

Tabela wirtualna usługi LuckyTemplates |  5 porad i wskazówek dotyczących debugowania

Jeśli pamiętasz, zapytania DAX zawsze zaczynają się od EVALUATE . Na początku wystąpi błąd, ponieważ zapytania języka DAX zwracają tabele . Była to miara z dwiema ostatnimi zmiennymi, które są skalarami. To, co możemy tutaj zrobić, to zmienić wartość zwracaną , co jest moją następną wskazówką.

Tabela wirtualna usługi LuckyTemplates |  5 porad i wskazówek dotyczących debugowania

Porada 2: Debuguj wirtualną tabelę usługi LuckyTemplates w częściach przy użyciu zmiennych

Tabele wirtualne można debugować w taki sam sposób, jak w przypadku miar — kawałek po kawałku, zmieniając zwracaną wartość. Zacznijmy od pierwszej wirtualnej tabeli, vEvalTable . Po prostu zamieniamy wartość RETURN (końcową) na naszą pierwszą zmienną (VAR). I widać, że błąd znika, ponieważ zapytanie DAX pobiera teraz tabelę.

Tabela wirtualna usługi LuckyTemplates |  5 porad i wskazówek dotyczących debugowania

W tabeli vEvalTable bierzemy oryginalne dane, które są wynikami bezpieczeństwa, normalizujemy je i dodajemy tę kolumnę wartości znormalizowanej do tabeli wirtualnej. Mamy indeks, wartość regionu i wartość znormalizowaną. Możemy sortować te wartości w górę lub w dół, a także filtrować wartości.

Tabela wirtualna usługi LuckyTemplates |  5 porad i wskazówek dotyczących debugowania

To daje nam dokładnie to, czego oczekiwaliśmy. Zwraca 50 wierszy, czyli pełny zestaw danych. Wszystko idzie dobrze, więc zejdźmy na dół i zbadajmy następną tabelę, którą jest vTableTopN . W tej tabeli bierzemy TOPN za pomocą n-tej wartości suwaka pozycji. W tym przykładzie mamy tę siódmą wartość z powyższej wirtualnej tabeli (vEvalTable) i bierzemy ten TOPN na podstawie znormalizowanej wartości w kolejności malejącej.

Więc kiedy zmienimy naszą funkcję RETURN na taką, to odpada i nic nie otrzymujemy. Przyjrzyjmy się dlaczego, ponieważ jest to naprawdę ważna koncepcja debugowania i zrozumienia wirtualnych tabel.

Tabela wirtualna usługi LuckyTemplates |  5 porad i wskazówek dotyczących debugowania

Jeśli spojrzymy na formułę, mamy tutaj N-tą wartość suwaka pozycji jako głównego podejrzanego. Wracając do LuckyTemplates, widzimy, że jest to po prostu zbieranie liczby siedem. Zauważ, że suwaki istnieją w kontekście strony .

I tak w tym przypadku, gdy patrzymy na debugowanie tej tabeli poza kontekstem, ta wybrana wartość nie ma wokół siebie kontekstu . Nie ma nic, jeśli chodzi o możliwość wyciągnięcia tej liczby. Otrzymaliśmy TOPN, ale nie wiemy, jakie jest N w TOPN, ponieważ ta wybrana wartość zwraca pustą wartość.

Jak sobie z tym poradzić? Spójrzmy na wybraną miarę wartości. Przez większość czasu zawsze zwracamy uwagę na pierwszy parametr w , ale istnieje drugi parametr, który jest alternatywny. To prowadzi nas do mojej trzeciej wskazówki.

Porada 3: Użyj alternatywnego parametru w SELECTEDVALUE

To, co się tutaj wydarzyło, polega na tym, że ciągnął puste miejsce jako zastępca. Ale to, co chcemy zrobić (do celów debugowania), to umieścić tutaj prawdziwą wartość . Więc stawiamy numer 7 i zapisujemy to.

Tabela wirtualna usługi LuckyTemplates |  5 porad i wskazówek dotyczących debugowania

Teraz mamy pewne wartości. Zwraca siedem wierszy, co jest dokładnie tym, co powinno z powodu wartości TOPN wynoszącej siedem.

Tabela wirtualna usługi LuckyTemplates |  5 porad i wskazówek dotyczących debugowania

Przejdźmy dalej do następnej wirtualnej tabeli, którą jest vTableNthItem . Mamy ten stos siedmiu kart, a ten stół w zasadzie go odwraca. W poprzedniej tabeli byliśmy w porządku malejącym, a teraz jesteśmy w porządku rosnącym.

Jeśli weźmiemy i skopiujemy to do sekcji RETURN, otrzymamy wyniki. Ciekawe, że nie zwraca jednego wiersza. Zwraca trzy rzędy, ponieważ te trzy są remisowe. To jest właśnie powód, dla którego w tym przypadku używamy TOPN zamiast RANKX.

Tabela wirtualna usługi LuckyTemplates |  5 porad i wskazówek dotyczących debugowania

Przejdźmy teraz do Wyniku . Jeśli skopiujemy wynik VAR do sekcji RETURN, dojdziemy do mojej czwartej wskazówki.

Porada 4: Użyj { }, aby zamienić skalary w tabele

W formule bierzemy max ( ) tego vTableNthItem i zwracamy znormalizowaną wartość. Może to być , może to być , może to być . To tylko jakiś agregator, który zwraca tę jedną wartość w tej tabeli. I tak, jeśli skopiujemy to w dół, to da nam błąd, ponieważ to jest teraz skalar.

Tabela wirtualna usługi LuckyTemplates |  5 porad i wskazówek dotyczących debugowania

Ale to jest moja czwarta wskazówka, która jest w kontekście debugowania. To, co możesz zrobić, to po prostu dodać nawiasy klamrowe . W ten sposób zamienia ten skalar w tabelę.

Tabela wirtualna usługi LuckyTemplates |  5 porad i wskazówek dotyczących debugowania

A potem to, co tutaj mamy, to tylko końcowe sprawdzanie błędów, czyli jeśli okaże się, że tabela ewaluacyjna jest mniejsza niż liczba wierszy, zwróci niewystarczające dane. Ale wiemy, że w tym przypadku nasz zbiór danych jest wystarczająco duży. Jednak możemy to po prostu przetestować, wpisując Final . Ponownie, ponieważ to jest skaler, potrzebujemy również nawiasów klamrowych i otrzymamy tutaj tę samą wartość.

Tabela wirtualna usługi LuckyTemplates |  5 porad i wskazówek dotyczących debugowania

Zagłębiliśmy się w tę wirtualną tabelę i debugowaliśmy ją, a także użyliśmy alternatywnej wartości w SELECTEDVALUE, aby zapobiec wypadnięciu z kontekstu. Teraz chcę ci tylko pokazać jedną dodatkową wskazówkę, która okazała się naprawdę przydatna.

Porada 5: Użyj CONCATENATEX/UNICHAR, aby zamienić tabelę w skalar

W kontekście debugowania będziesz chciał zobaczyć w usłudze LuckyTemplates, jak wygląda ta tabela. Ogólna zasada jest taka, że ​​miara może zwrócić tylko wartość skalarną, a nie tabelę. Ale jest jeden kod, który ci pokażę, który pozwala na quasi zwrócenie stołu.

Rzućmy okiem na tę miarę, którą jest Visualized Virtual Table i mamy tutaj wszystkie wirtualne tabele, które mieliśmy na początku. Na przykład chcemy wyświetlić, powiedzmy na pierwszej stronie raportu, plik vTableTopN.

Tabela wirtualna usługi LuckyTemplates |  5 porad i wskazówek dotyczących debugowania

Możesz użyć tej funkcji . W rzeczywistości możesz wziąć tę wirtualną nazwę tabeli (vTableTopN) i pobrać wartości z tej tabeli i połączyć je. Możesz stworzyć coś, co w zasadzie wygląda jak wirtualny stół.

Tabela wirtualna usługi LuckyTemplates |  5 porad i wskazówek dotyczących debugowania

Jeśli zastosujemy tę miarę, musimy wrócić do usługi LuckyTemplates i upuścić ją do miary karty. Zazwyczaj tabela podaje błąd, ale dzięki CONCATENATEX zamieniła tę tabelę w skaler. Widać, że jest dość prymitywny, ale zwraca dokładnie to, czego oczekujemy i robi to w dynamiczny sposób.

Tabela wirtualna usługi LuckyTemplates |  5 porad i wskazówek dotyczących debugowania

Jest to sposób na wepchnięcie tabeli do miary i pokazanie tego w raporcie. To naprawdę pomocna sztuczka debugowania. Zapewni to dobry format wartości karty, który można wykorzystać w raporcie.



Opanuj tabele wirtualne w usłudze LuckyTemplates przy użyciu tabel wirtualnych języka DAX wewnątrz funkcji iteracyjnych w usłudze LuckyTemplates — koncepcje języka DAX
Tabele w usłudze LuckyTemplates: typy i różnice

Wniosek

Mamy nadzieję, że ten samouczek da ci trochę do myślenia w zakresie pracy z wirtualnym stołem usługi LuckyTemplates. Oto kilka dodatkowych wskazówek i trików, które pomogą Ci zrozumieć, co dzieje się w Twoich wirtualnych stołach. Mam nadzieję, że uznałeś to za pomocne.

Odwiedź naszą witrynę internetową , aby uzyskać więcej samouczków usługi LuckyTemplates, i sprawdź poniższe łącza, aby uzyskać więcej powiązanych treści.

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.