Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Pokażę ci, jak dodać parametr w funkcji M w zapytaniu o tabelę dat . Ten przykład jest oparty na pytaniu zadanym na . Możesz obejrzeć pełny film tego samouczka na dole tego bloga.

Pytanie dotyczyło tego, jak zmienić numerację pierwszego dnia tygodnia z 0 na 1 . Pamiętaj, że nie zmienia to faktycznego początku dnia tygodnia. W tej tabeli dat początkiem tygodnia będzie zawsze poniedziałek. Chodzi tylko o odniesienie się do poniedziałku jako dnia 1 zamiast dnia 0.

Ten proces niekoniecznie jest skomplikowany, ale potrzebujesz podstawowej wiedzy na temat struktury języka M. Jeśli jesteś członkiem LuckyTemplates, możesz zapoznać się z . Wstęp dotyka tematu.

Spis treści

Funkcja M i rozszerzona tabela dat

Zacznę od przejścia do dodatku Power Query . Skopiowałem już tutaj funkcję M tabeli dat .

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Dostałem funkcję M z kategorii M Code Showcase na forum LuckyTemplates . Kod znajduje się w temacie .

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Jeśli otworzę Edytor zaawansowany , to jest kod.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Jest tam dużo kodu M, co może rozpraszać.

Tworzenie zapytania testowego

Ponieważ w funkcji M dzieje się zbyt wiele, zamiast tego zacznę od nowego pustego zapytania .

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Zamierzam nazwać to zapytanie testowe .

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Następnie otworzę Edytor zaawansowany .

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Ponieważ zamierzam utworzyć funkcję, dodam parę nawiasów i usunę tam cały domyślny kod.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Aby wyłączyć tę funkcję, zadeklaruję opcjonalny parametr .

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Następnie dodam zmienną. Nazwę tę zmienną WDStartNum , ponieważ będzie ona oznaczać numer początkowy dnia tygodnia. Muszę również zadeklarować jego typ, więc wpiszę number .

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Deklaruję typ, aby zapobiec błędom. Jeśli po prostu zostawię to jako dowolny typ, oznacza to, że może przekazać tabelę lub wartość daty zamiast tylko przekazywać liczby.

Następnym krokiem jest dodanie klauzuli let i klauzuli in .

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Pod klauzulą ​​let potrzebuję nazwy zmiennej. Zamierzam więc nazwać tę zmienną WDStart .

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Teraz muszę sprawdzić, czy WDStartNum został przekazany. Jeśli się powiedzie, nie będzie równać się null . Zamierzam więc zadeklarować, że jeśli WDStartNum nie jest równe null, chcę, aby została zwrócona wartość .

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Jeśli chodzi o klauzulę in, chcę, aby ten sam krok został przekazany. Więc po prostu wstawię tam WDStart , tak jak wcześniej nazwaliśmy naszą zmienną w klauzuli let.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Po naciśnięciu Gotowe funkcja zostanie utworzona. Spróbuję więc przekazać wartość przez tę funkcję.

Spróbuję wpisać literę „a”.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Pamiętaj, że wcześniej zadeklarowałem, że wartość musi być liczbą. Ponieważ rozpoznaje, że wprowadzona przeze mnie wartość nie spełnia tego wymagania, nie pozwoli mi wprowadzić tego parametru.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Więc zamierzam to usunąć i po prostu zostawić puste miejsce.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Po kliknięciu Invoke zwraca wartość 0.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Wracając do mojego pierwotnego zapytania, stwierdza ono, że jeśli wartość nie jest równa null, należy zwrócić wartość WDStartNum. Jeśli jest równy null, powinno zostać zwrócone 0.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Więc to 0 jest poprawne.

Tym razem spróbuję przekazać wartość, zmieniając liczbę w zapytaniu testowym. To prawda, zwraca „1” po naciśnięciu Enter.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

A teraz spróbuję zaliczyć rok 2020 w TestQuery. Po naciśnięciu Enter zwraca również 2020.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Najwyraźniej nie chcę, żeby tak się stało. Ponieważ chcę wartości reprezentującej początek tygodnia, chcę, aby wyświetlało się 0 lub 1. Oznacza to, że muszę utworzyć kolejny test, aby sprawdzić, czy wprowadzona liczba to 0 czy 1. W tym celu mogę użyć funkcji List.Contains .

Używanie List.Contains

Utworzyłem puste zapytanie i wpisałem List.Contains bez użycia nawiasów.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Po naciśnięciu Enter widzę dokumentację tej funkcji.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

List.Contains wskazuje, czy lista zawiera wartość.

Wymaga więc listy jako pierwszego parametru, a następnie dodaje się wartość. Jeśli ta wartość zostanie znaleziona na liście, zwraca wartość true. W przeciwnym razie zwróci fałsz.

Ponownie otworzę Edytor zaawansowany , aby móc wprowadzić niezbędne zmiany w moim zapytaniu.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Zamiast sprawdzać, czy wartość nie jest równa null, użyję List.Contains .

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Teraz podam listę wartości, które należy zastosować do tej funkcji.

Użyję nawiasów klamrowych jako inicjatora listy. Wewnątrz tych nawiasów klamrowych wstawię 0, 1. Po zamknięciu tego nawiasu dodam przecinek.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Dla drugiego parametru użyję WDStartNum. Następnie dodam nawias zamykający.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Mając to na miejscu, oznacza to, że 0 lub 1 powinno dać mi WDStartNumber. Jeśli zostanie umieszczone coś innego niż 0 lub 1, powinienem otrzymać wynik 0.

Pozwól mi to przetestować, umieszczając 2020 w TestQuery. Zgodnie z oczekiwaniami zwraca to „0” (zero).

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

To dlatego, że wartość 2020 nie znajduje się na liście.

Dodawanie parametru do funkcji M

Teraz, gdy jestem pewien, że kod działa, mogę w końcu umieścić go w rzeczywistej tabeli dat i funkcji M. Otworzę Edytor zaawansowany, a następnie skopiuję logikę .

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Następnie przejdę do zapytania o tabelę dat.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Otworzę oryginalną funkcję M za pomocą Edytora zaawansowanego .

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Następnie wkleję tam mój kod. Upewnijmy się, że na końcu wiersza znajduje się przecinek.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Następnie zaznaczę i skopiuję nazwę mojego parametru .

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Następnie dodam ten parametr tutaj .

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Zauważ, że najpierw muszę dodać przecinek na końcu istniejącej linii, a następnie muszę zadeklarować, że ten parametr jest opcjonalny . Następnie mogę umieścić WDStartNum i dodać typ .

Dodałem parametr i osadziłem logikę. Ale muszę też mieć pewność, że uzyskam oczekiwane rezultaty. Więc poszukam wiersza kodu, który obejmuje dzień tygodnia.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Następnie dodam + WDStart .

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Kliknę Gotowe , aby zamknąć edytor. Następnie wywołam zapytanie.

Jako datę początkową ustawię 1 stycznia 2020 r., a jako datę końcową użyję 31 grudnia 2020 r.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Użyję „7” jako miesiąca rozpoczęcia roku podatkowego, a następnie wstawię „0” jako WDStartNum.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Klikam na Invoke. Teraz mam tabelę dat.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Zmienię jego nazwę, aby można go było łatwo zidentyfikować.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Teraz sprawdzę wyniki.

To jest moja kolumna DayOfWeek .

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Pokazuje, że poniedziałek powrócił jako 0.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Wracając do pytania na Forum, muszę zmienić numer początku tygodnia na 1 zamiast 0. Więc po prostu zmienię to w takcie.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Kiedy naciskam enter, poniedziałek będzie teraz dniem 1 zamiast dnia 0.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Patrząc na zakres liczb, teraz działa on od 1 do 7 zamiast od 0 do 6.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Co się stanie, jeśli przekażę wartość null?

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań

Następnie DayOfWeek dla poniedziałku po prostu wraca do 0.

Funkcja M dla tabeli dat – jak dodać parametr w edytorze zapytań


Używanie funkcji M do tworzenia rozszerzonej tabeli dat usługi LuckyTemplates
Przewodnik dla początkujących po kodzie M w usłudze LuckyTemplates
Konfigurowanie dynamicznych dat rozpoczęcia i zakończenia dla tabel dat usługi Power Query

Wniosek

W ten sposób możesz dodać dodatkowy parametr bezpośrednio do funkcji M w zapytaniu w tabeli dat. Proces nie jest wcale skomplikowany, jak wspomniałem wcześniej. Tak długo, jak masz źródło kodu M, stamtąd jest to dość łatwe.

Ponownie, zawsze możesz sprawdzić kurs Advanced Data Transformations & Modeling w Online, jeśli nie masz wiedzy na temat działania kodów M.

Wszystkiego najlepszego,

Melisa

***** Nauka LuckyTemplates? *****






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.