Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

W tym samouczku wrócimy do tematu, który omówiłem wcześniej, dotyczącego usuwania wielu kolumn w dodatku Power Query przy użyciu List.Zip. Członek LuckyTemplates zapytał na , jak uczynić tę metodę dynamiczną. Możesz obejrzeć pełny film tego samouczka na dole tego bloga.

Oznaczyłem to jako zaawansowany, ponieważ będziemy pisać wiele funkcji M, a niektóre z nich mogą być nawet dla ciebie nowe.

Powiedziawszy to, przejdźmy do dodatku Power Query.

Spis treści

Dane w formacie tabelarycznym

Jak widać, dane te zostały już przekształcone w odpowiedni format tabletu nadający się do analizy. Ten proces, choć bardzo ważny, nie zostanie tutaj omówiony, ale pokrótce omówimy każdy krok.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

W kroku źródłowym widzimy ciągłe powtarzanie się par wartości, którymi są godziny i kontakty dla każdego z wymienionych powyżej atrybutów.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

W zastosowanych krokach możesz zobaczyć pozostałe kroki. Usunęliśmy niektóre górne wiersze, usunęliśmy puste kolumny, wyczyściliśmy nasze wartości tekstowe i wypełniliśmy je. Następnie transponowaliśmy nasze dane, usunęliśmy pusty rekord, połączyliśmy kolumny pierwszą i drugą, ponownie wyczyściliśmy nasze wartości tekstowe i ponownie transponowaliśmy nasze dane.

Stworzyliśmy niestandardowy krok, który później przeanalizujemy bardziej szczegółowo, wyodrębniliśmy wartości z naszej listy, a następnie ostatecznie zmieniliśmy typ.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

Spójrzmy na cały kod. Interesuje nas tutaj funkcja List.Zip . Krótkie podsumowanie, pobiera pojedynczą listę jako parametr , a następnie zwraca listę. W rezultacie widzimy, że ta pojedyncza lista w tym przypadku zawiera trzy oddzielne listy.

Jeśli przyjrzymy się pierwszej liście, zawiera ona zakodowane na stałe nazwy atrybutów, tylko wartości tekstowe, które zostały wpisane. Druga lista zawiera zakodowane na stałe odniesienia do kolumn dla wartości godzinowych. Ostateczna lista zawiera zakodowane na stałe odniesienia do kolumn dla wartości kontaktowych.

List.Zip następnie bierze element z każdej z tych trzech list i łączy je na podstawie ich pozycji na nowej liście. Na przykład każdy pierwszy element z tych list jest łączony w nową listę. To samo dzieje się ze wszystkimi wartościami wymienionymi na drugiej liście i tak dalej.

Wartości zakodowane na stałe mogą mieć znaczenie, jeśli jest mało prawdopodobne, aby atrybuty zmieniały się w czasie. Więc jeśli następnym razem nie wszystkie przedmioty są obecne lub istnieją nowe przedmioty, możesz wpaść w kłopoty.

Zmienianie kodu w celu dynamicznego odstawiania wielu kolumn

Jak więc sprawić, by było to dynamiczne?

Pierwszą rzeczą, którą robię, jest przejrzenie kodu, aby sprawdzić, czy istnieje miejsce, w którym możemy pobrać te wartości atrybutów bez konieczności projektowania oddzielnego kroku, aby to osiągnąć. Więc cofniemy się przez kod, a ten krok RemoveNull jest doskonały.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

Możesz zobaczyć, że zawiera listę wszystkich wartości atrybutów tutaj w pierwszej kolumnie. Możemy użyć interfejsu użytkownika, aby je wyodrębnić.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

Kliknij ten nagłówek prawym przyciskiem myszy i poniżej wybierz Dodaj jako nowe zapytanie .

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

Otrzymujemy tę listę i to jest dobra wiadomość, ponieważ chcemy zastąpić tę zakodowaną na stałe listę, którą widzieliśmy wcześniej, dynamiczną. Wszystko, co musimy zrobić, to uporządkować wartości.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

Zacznijmy od usunięcia tych wartości zerowych. Tak więc wewnątrz paska formuły dodamy List.RemoveNulls . Jak widać teraz, wszystkie elementy są powtarzane, a to z powodu par wartości. Jest wymieniony raz dla godzin.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

I znowu, dla kontaktów, aby usunąć te duplikaty, możemy dodać List.Distinct . Teraz utworzyliśmy tę logikę i wszystko, co musimy zrobić, to skopiować ją i wkleić z powrotem do naszego przykładowego zapytania.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

W przykładowym zapytaniu otwórz Edytor zaawansowany i utwórz nową nazwę zmiennej. Nazwijmy to, AttributeList . Następnie wklejamy kod i stawiamy przecinek.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

Wróćmy teraz do naszego kroku niestandardowego. Wewnątrz List.Zip możemy zastąpić tę pierwszą listę nazwą naszej zmiennej (AttributeList).

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

Przyjrzyjmy się teraz bliżej drugiej liście. Wiemy, że odwołuje się do nazw kolumn, a każda z tych nazw kolumn zaczyna się od tego samego atrybutu, który już mamy na tej liście, po którym następuje spacja i tekst „godziny”.

Musimy tylko dodać sufiks do każdego elementu. Cofnijmy się więc o krok i dodajmy niestandardową kolumnę, aby stworzyć pewną logikę.

Dynamicznie przestawiaj wiele kolumn: dodawanie niestandardowej logiki kolumn

To tylko tymczasowa kolumna, więc nie musimy nadawać jej właściwej nazwy. Usuniemy go, gdy skończymy.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

Aby zmienić wartości na liście, możemy użyć funkcji List.Transform . Musimy przekształcić wartości w naszym AttributeList , więc zamierzam to wkleić.

Tutaj w nagłówkach widzimy, że wartości tekstowe zaczynają się od dużej litery, a reszta jest pisana małymi literami. Nasz atrybut zawiera tylko słowo pisane wielką literą, więc musimy również przekształcić tę wartość tekstową. I możemy użyć podkreślenia, aby uzyskać dostęp do każdego elementu listy i dodamy ten sufiks.

W ten sposób otrzymujemy wartość listy w naszej kolumnie. Nie ma znaczenia, który wybierzesz, ale po prostu kliknij z boku w białej przestrzeni w dowolnym z nich tutaj.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

Poniżej strony widzimy podgląd utworzonej przez nas listy. Widzisz więc, że nagłówki kolumn mają teraz odpowiednią wielkość liter, więc pasują do nagłówków kolumn, które widzimy tutaj z tą listą.

Mamy teraz środki do identyfikowania pól z naszego rekordu, do których chcemy uzyskać dostęp. Otwórzmy więc ponownie nasze niestandardowe okno dialogowe kolumny i dodajmy Record.SelectFields . Chce rekordu jako rekordu, więc możemy użyć tego podkreślenia, aby uzyskać dostęp do bieżącego rekordu, na którym się znajdujemy. A potem daliśmy mu listę z wszystkimi nazwami pól, więc dodaj nawias zamykający i naciśnij OK .

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

Więc nie mamy już listy, ale mamy teraz zapis. Kliknijmy ponownie w bok w białym polu, aby wyświetlić zawartość tego rekordu. Tutaj widzimy, że zawiera listę nazw pól rekordów i wartości pól rekordów.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

Ale nas interesują tylko wartości pól rekordu, więc musimy je wyodrębnić. Wróćmy do naszego niestandardowego okna dialogowego kolumny i dodajmy Record.FieldsValues ​​.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

Teraz ponownie otrzymujemy listę, a nie rekord. Ponownie klikamy na bok w białym polu i widzisz, że mamy teraz listę zawierającą tylko te wartości. Więc to wygląda dobrze.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

Skopiujmy całą logikę, którą stworzyliśmy, z wyjątkiem ostatnich nawiasów zamykających. A teraz możemy usunąć naszą tymczasową kolumnę, ponieważ już jej nie potrzebujemy.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

Na pasku formuły wybieramy naszą drugą listę i zastępujemy ją naszą logiką.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

Aby utworzyć listę z wartościami pól rekordów dla kontaktów, wystarczy zmienić sufiks. Możemy więc wybrać również tę ostatnią listę i wkleić naszą logikę.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

Następnie zamiast godzin zmieńmy to na kontakty .

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates

Żadnych błędów i wygląda dobrze. Jest to teraz dynamiczne rozwiązanie pozwalające cofnąć przestawienie wielu kolumn.

Dynamicznie przestawiaj wiele kolumn w usłudze LuckyTemplates


LuckyTemplates Unpivot Columns – Power Query samouczek
Jak cofnąć przestawienie kolumn w LuckyTemplates
Podstawy unpivot i Pivot w LuckyTemplates – recenzja edytora zapytań

Wniosek

W ten sposób możesz dynamicznie cofnąć przestawienie wielu kolumn w usłudze przy użyciu List.Zip.

Jeśli pojawi się nowy atrybut, zostanie on automatycznie pobrany przez AttributeList. A kiedy element już nie istnieje, nie będzie obecny na tej liście.

Mam nadzieję, że ci się podobało. Obejrzyj cały film poniżej, aby uzyskać więcej informacji na temat tego samouczka, i sprawdź poniższe łącza, aby uzyskać więcej informacji na temat przenoszenia wielu kolumn w usłudze LuckyTemplates.

Wszystkiego najlepszego

Melisa

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.