W niedawnym artykule pokazałem jak podzielić kolumny na wiersze w dodatku Excel Power Query (nazywanego w Excelu 2016 Pobieranie i przekształcanie). Czasami potrzebujemy jednak wykonać operację przeciwną do tej, tzn. mając dane w różnych wierszach chcielibyśmy uzyskać łączenie tekstowe. Operacja ta przypomina trochę opcję Grupowanie według, ale po tekście. Jak ją wykonać w Power Query? Artykuł dla zaawansowanych.
Dane do zapytania Power Query
Zaczynamy od tabeli transakcji, która powstała na końcu artykułu o dzieleniu kolumn na wiersze.
Krok 1: Utwórz zapytanie
Tworzę tabelę (Ctrl + T) i ładuję ją jako zapytanie do edytora zapytań Power Query.
Krok 2: Grupowanie według
Ponieważ szukanej przez nas operacji nie da się wykonać jednym kliknięciem, szukamy najprostszego sposobu do osiągnięcia celu. Zaczynamy od operacji Grupowanie według.
Otrzymamy obiekty typu Table.
Krok 3: Odfiltruj kolumny tabeli
Gdy wejdę do środka pojedynczej tabeli, mogę wykonać operację filtrowania kolumn, a następnie zastosować ją do wszystkich tabel, które były w kroku wcześniej.
W moim przykładzie otrzymałem polecenie:
= Table.SelectColumns(#"PL-2012-007335",{"Produkty"})
Korzystam z tego polecenia, aby odfiltrować kolumny we wszystkich tabelach, a wykonuje się to, tworząc nową kolumnę niestandardową.
Krok 4: Skonwertuj na listę
Łączenie tekstowe w pionie to operacja zarezerwowana dla obiektów w postaci list. Zamieńmy więc tabelę na listę.
Krok 5: Połącz teksty
Do tego kroku zmierzaliśmy. Listy mają wbudowaną operację łączenia tekstów, którą ponownie można wydobyć nową kolumną niestandardową.
Krok 6: Zamknij i załaduj
Zwracam dane w postaci tabeli do programu Excel.
Przykład ten nie jest może najłatwiejszy, ale pokazuje, że te rzeczy, których nie będziemy w stanie wyklikać, prawdopodobnie także można stworzyć w Power Query, studiując formuły języka M.
Jeśli znasz prostszy sposób na wykonanie tej operacji, podziel się w komentarzu.
Pobierz plik Excel z zapytaniem w Power Query
Tutaj możesz pobrać plik Excel i zerknąć na całe zapytanie, a nawet skopiować je i wkleić do swojego pliku (zmieniając nazwy tabel i kolumn).
To rozwiązanie, którego szukałam. Kiedyś kombinowałam za pomocą makr. Aż nastała jasność. Bartoszu, dziękuję.
Cieszę się, że się przydało.
Dzień dobry,
Rozwiązanie super, działa jak opisane, chciałbym jednak zapytać jak wstawić zamiast średnika przejście do kolejnego wiersza wewnątrz komórki?
Hej Adam, tekst dla nowej linijki to: „#(lf)”.
Właśnie tego szukałem. Dzięki.
Super robota na tym kanale ! 🙂