Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

W tym samouczku dowiesz się, jak używać dodatku Power Query do przeliczania walut w usłudze LuckyTemplates. Możesz obejrzeć pełny film z tego samouczka na dole tego bloga.

Metoda omówiona na tym blogu pomoże Ci rozwiązać problemy w tabeli kursów walut przy użyciu ostatniego dostępnego kursu.

Zrozumiesz, jak rozwiązywać problemy, gdy tabela kursów walut nie zawiera kursów walut na każdy dzień.

Spis treści

Identyfikacja brakujących danych

Ten problem może wystąpić, jeśli tabela dat nie zawiera danych dotyczących dni wolnych od pracy lub weekendów.

Jeśli nie masz stawki z żadnego dnia i nie uwzględnisz jej, metryki, takie jak Łączna sprzedaż, nie zostaną przekonwertowane.

Jeśli spojrzysz na tę tabelę kursów walut, znajdziesz w niej kursy w euro na styczeń 2016 r.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Ale zauważ, że brakuje 27 i 28 dnia i nie ma stawki. Tak więc, jeśli przejdziesz do macierzy, zobaczysz, że nie ma stawek dla 27 i 28.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Kurs waluty z miarą Brakująca jest po prostu sumą tabeli Faktyczne kursy walut.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Suma 26,6983 w tabeli jest bez znaczenia. Jest to po prostu suma wszystkich kursów walut powyżej niej, których nie trzeba sumować, ponieważ są takie, jakie są w bieżącym dniu.

Teraz można to naprawić w Power Query , ponieważ jest to bardziej problem z modelowaniem danych, który obejmuje zapytania i agregację. Można to również zrobić za pomocą języka DAX, ale jest to łatwiejsze i szybsze dzięki Power Query w usłudze LuckyTemplates.

Kliknij więc opcję Przekształć dane , a następnie otwórz okno dodatku Power Query.

To jest tabela z brakującymi danymi. Możesz również zobaczyć w tej tabeli kursów walut, że zawiera ona euro, funty i dolary.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

A oto stół finałowy z wartościami 27 i 28 stycznia. To jest tabela lub dane wyjściowe, które powinieneś mieć.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Importuj dane z dowolnego źródła, z którego je otrzymujesz, i po prostu zmień typ danych.

Oddzielanie różnych walut

Następnie, jeśli masz więcej niż jedną walutę, ważne jest, aby je oddzielić i pogrupować według ich znaczników.

Grupując je, pamiętaj, aby zgrupować je we wszystkich wierszach, aby po kliknięciu na przykład euro wyświetlały się tylko kursy walut w euro.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Możesz również zobaczyć, że brakuje tutaj dni, a także waluty funta.

W usłudze LuckyTemplates istnieje coś takiego, jak funkcja Invoke Custom Function . Jest to funkcja z FillMissingRates.

Jeśli klikniesz Euro, zobaczysz pełną tabelę zawierającą brakujące dane, które widziałeś w rozwiniętej tabeli. Jest posortowana od najstarszych do najnowszych stawek.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Dowiedz się, co robią funkcje niestandardowe. Jeśli klikniesz ikonę koła zębatego w pobliżu funkcji Wywołaj funkcję niestandardową, zobaczysz nazwę kolumny i źródło, które ciągnie w kolumnie Wszystkie.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Aby to zrobić, zacznij od podstawowej tabeli. Wykonaj przekształcenia, uzyskaj pożądany wynik, a następnie użyj go do zbudowania funkcji. Ma to większy sens niż próba zrobienia tego w tabeli, w której znajdują się wszystkie inne podtabele.

Na przykład, jeśli chcesz skupić się na euro, przefiltruj je do paska.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Aby dowiedzieć się, jakich dni brakuje, połącz ją z tabelą dat.

Oto podstawowa przefiltrowana tabela walut i tabela DimDate:

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

W przypadku Join Kind możesz użyć Full Outer, aby wprowadzić wszystkie wiersze z obu stołów. To pokazuje, czego brakuje i pasujące stawki.

Kiedy go scalisz, otrzymasz pełną tabelę jako tabelę podrzędną.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Następnie posortuj wiersze, a następnie rozwiń DimDate, aby zawierała tylko kolumnę Data.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Teraz widać, że wszystko się zgadza. A kiedy posortujesz wiersze od najstarszych do najnowszych, możesz również zobaczyć dwa brakujące dni z wartościami pustymi.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Uzupełnianie brakujących stawek

Ważne jest, aby były w tej kolejności, ponieważ zamierzasz wypełnić wszystkie wartości zerowe we wszystkich kolumnach z wyjątkiem Data.1.

Po jego wypełnieniu zobaczysz, że wartości zerowe zostały zmienione na euro i ostatni dostępny kurs.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Następnie usuń z tabeli niepotrzebne kolumny, takie jak kolumna Data.

Kolumna Date.1 zawiera już daty, więc kolumna Date nie jest potrzebna. Następnie ustaw Współczynnik krzyżowy na Liczba dziesiętna.

Na koniec zmień kolejność i nazwy kolumn oraz upewnij się, że ustawione są typy danych.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Masz teraz kompletną tabelę kursów walut.

Działa to jednak tylko w przypadku tej tabeli. Musisz znaleźć sposób na zastosowanie tej samej logiki do tabeli, w której pogrupowane są waluty.

Połączenie wszystkich walut

Jeśli masz różne waluty, trudno jest utrzymywać różne tabele kursów. Musisz je więc połączyć, aby utworzyć jedną tabelę walut.

Aby rozpocząć, weź istniejącą tabelę i utwórz funkcję, klikając Tabela i wybierając opcję Utwórz funkcję . Następnie wprowadź nazwę funkcji.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Następnie przejdź do Edytora zaawansowanego . Usuń obliczenia, których nie będziesz potrzebować. W takim przypadku pozbądź się źródła, filtruj i zmieniaj składnię.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Następnie nazwij parametr Source, a następnie wprowadź Let. Ponieważ filtrowane wiersze zostały usunięte, zmień wartość w składni scalonych zapytań na źródło. Następnie usuń Źródło na końcu składni, a następnie kliknij Gotowe.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Teraz przejdź do Dodaj kolumnę, kliknij Wywołaj funkcję niestandardową. Wprowadź nazwę kolumny, na przykład Wszystkie dane. W przypadku zapytania funkcji wybierz funkcję, która została utworzona wcześniej. Wybierz Wszystkie jako źródło, a następnie kliknij OK.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Następną rzeczą do zrobienia jest usunięcie wszystkich kolumn z wyjątkiem wszystkich danych. Następnie rozwiń tę kolumnę i odznacz ustawienie „Użyj oryginalnej nazwy kolumny jako prefiksu”. Następnie kliknij OK i zmień typy kolumn.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Ustaw typ kolumn Date, Ticker i Crossrate odpowiednio na Date, Text i Decimal. Po zakończeniu kliknij Zamknij i zastosuj.

Otrzymasz teraz łączną tabelę kursów walut bez brakujących dat i kursów.

Tworzenie relacji w modelu danych

W swoim modelu danych możesz zobaczyć tabelę FactCurrencyRates . Teraz utwórz relację Ticker to Ticker i Date to Date z tą tabelą oraz tabelami DimCurrencyRates i DimDate.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

W swojej macierzy wprowadź kurs waluty, którego nie brakuje , aby zobaczyć, że teraz zawiera kursy dla 27. i 28. dnia, wszystkie wykonane w dodatku Power Query.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Kolumna Ostatnio zgłoszony kurs waluty pokazuje również kursy z brakujących dni. Pokazuje te same stawki i wartości. Ale różnica między nimi polega na tym, że ta kolumna jest tworzona w języku DAX.

To jest miara i składnia tej kolumny. Nie jest to tak proste, jak użycie samej funkcji w dodatku Power Query.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Patrząc na tabelę, zobaczysz kolumnę Przeliczona sprzedaż bez braków. Pokazuje sprzedaż przeliczoną przy użyciu kolumny Brak brakujących kursów walut. Druga kolumna z przekonwertowaną sprzedażą wykorzystuje kolumnę utworzoną w języku DAX.

Funkcją używaną do uzyskiwania przekonwertowanej sprzedaży jest . Jeśli spojrzysz na miarę dla tej kolumny, zobaczysz, że SUMX przechodzi przez tabelę DimDate.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Porównanie metod DAX i Power Query

W rzeczywistości możesz porównać obie przekonwertowane kolumny sprzedaży, które korzystały z języka DAX i dodatku Power Query w usłudze LuckyTemplates.

Aby to zrobić, pozbądź się wszystkich kolumn oprócz przekonwertowanych kolumn sprzedaży. Następnie uruchom analizator wydajności i kliknij Rozpocznij nagrywanie.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Następnie otwórz Studio DAX. Jest to aplikacja, która pokazuje, jak i dlaczego coś działa w Twoim modelu. Następnie skopiuj zapytanie swojej macierzy i wklej je w studio.

Dla porównania najpierw zamień jeden z nich w komentarz, aby nie kolidował z drugą testowaną kolumną.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Następnie załaduj chronometraż serwera i plan zapytań. Ponieważ porównujesz wydajność, najpierw wyczyść pamięć podręczną przed uruchomieniem porównania.

Po uruchomieniu testu widać, że kolumna, która korzystała z DAX-a dostała mnóstwo skanów i ma łączny czas 71 milisekund.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Teraz uruchom drugą kolumnę, która korzystała z zapytania Power. Ale najpierw zamień drugą kolumnę w składni na komentarz.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Możesz zobaczyć, że kolumna działała tylko przez 25 milisekund i ma tylko 7 skanów.

Rozwiązywanie brakujących kursów walut za pomocą dodatku Power Query w usłudze LuckyTemplates

Możesz wyraźnie zobaczyć, która działa szybciej i lepiej między metodami DAX i Power Query.

Wniosek

Zaletą korzystania z metody Power Query w LuckyTemplates jest to, że dane są już przechowywane. Tak więc miara może znaleźć stawkę, a następnie wydobyć ją za pomocą prostych funkcji.

Inną cechą tej metody jest to, że nie zwalnia, jeśli obliczenia stają się skomplikowane.

Działa to jednak tylko wtedy, gdy dane, o które prosisz, nie muszą być konwertowane w locie. Jeśli tak, musisz użyć języka DAX.

Wszystkiego najlepszego,


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.

Pomysły na materializację pamięci podręcznych danych w DAX Studio

Pomysły na materializację pamięci podręcznych danych w DAX Studio

W tym samouczku omówiono idee materializacji pamięci podręcznych danych oraz ich wpływ na wydajność języka DAX w dostarczaniu wyników.

Raportowanie biznesowe przy użyciu usługi LuckyTemplates

Raportowanie biznesowe przy użyciu usługi LuckyTemplates

Jeśli do tej pory nadal korzystasz z programu Excel, jest to najlepszy moment, aby zacząć korzystać z usługi LuckyTemplates na potrzeby raportowania biznesowego.

Co to jest brama LuckyTemplates? Wszystko co musisz wiedzieć

Co to jest brama LuckyTemplates? Wszystko co musisz wiedzieć

Co to jest brama LuckyTemplates? Wszystko co musisz wiedzieć