W tym poście omówimy sumę ze zmieniającej się ilości kolumn w danych. Będzie to rozwiązanie problemu z Power Query w Excelu.
Zadanie to wykonamy na podstawie przykładowych danych z rys. nr 1.
Mamy tutaj wynik zapytania Power Query, który tworzy podsumowanie z danych z pierwszej tabeli. Mamy na razie przedstawione tylko 3 miesiące, ale pod spodem dojdą kolejne dane z dodatkowymi miesiącami (rys. nr 2).
W podsumowaniu z Power Query chcemy mieć kolumnę "Suma". Można dodawać kolumny do zapytania Power Query, tylko trzeba mieć na uwadze, że ilość kolumn w Power Query może się zmienić. Tutaj standardowo chcielibyśmy otrzymać sumę. Użyjemy skrótu klawiszowego Alt + =. Excel wstawi nam automatycznie funkcję SUMA, jak widać na rys. nr 3.
Możemy sobie uprościć zapis tej funkcji i wstawić w niej ręcznie odpowiedni zakres zamiast nazw tekstowych. Zapis będzie wtedy wyglądał następująco:
=SUMA(I2:K2)
Otrzymamy zsumowane dane w kolumnie L przedstawione na rys. nr 4.
Nasza suma przedstawia wynik z aktualnej sytuacji. Problem polega na tym, że jeśli wstawimy w dane kolejną kolumnę (Kwiecień) i dopiszemy jakieś wartości, to nie zostaną one uwzględnione w kolumnie Suma (rys. nr 5). Nasza Suma się nie rozszerzy, jej zakres się nie zmieni.
Wróćmy do stanu sprzed dodania dodatkowej kolumny za pomocą skrótu klawiszowego Ctrl+Z. Jeśli natomiast wstawimy kolumnę między np. Lutym a Marcem i wpiszemy jakieś wartości liczbowe, to zostaną one uwzględnione w sumie (rys. nr 6). Zakres Sumy się rozszerzy.
Problem pojawia się, gdy nasze dane zostaną rozszerzone o kolumnę obok zakresu uwzględnionego w formule funkcji SUMA. W takiej sytuacji funkcja się nie rozszerza automatycznie, nie dopasowuje do nowego zakresu. Najprostszym rozwiązaniem jest użycie funkcji Excela. Jest możliwe rozwiązanie tego problemu w Power Query, ale jest bardziej skomplikowane i wymaga użycia kilku funkcji. Rozwiązanie to pokażemy w kolejnym poście.
Naszym zadaniem jest dynamiczne ustalenie zakresu funkcji SUMA. Możemy użyć funkcji PRZESUNIĘCIE. Pierwszym argumentem funkcji jest odwołanie, czyli komórki z zakresu I2:L2 (obejmujemy zakresem kolumnę Suma). Musimy ograniczyć to przesunięcie do ilości kolumn minus jedna kolumna. Czyli nie przesuwamy o konkretną ilość wierszy (argument wiersze), czy kolumn (argument kolumny), ale musimy zmienić argument szerokość (czwarty argument). Trzeci argument, czyli szerokość wstawiamy wartość 1. Musimy policzyć liczbę kolumn. Możemy to zrobić za pomocą funkcji LICZBA.KOLUMN. Argumentem funkcji jest tablica, czyli zakres obejmujący nasze 4 kolumny minus jedna kolumna (I2:L2‑1). Zapis formuły powinien wyglądać następująco:
Powyższą formułę zatwierdzamy. Sprawdzimy teraz, czy działa prawidłowo. Zaznaczamy kolumnę L i za pomocą skrótu klawiszowego Ctrl + Shift + Add wstawiamy nową kolumnę przed tą zaznaczoną. Następnie ręcznie wpisujemy dowolną wartość w tej kolumnie. Wynik w kolumnie Suma automatycznie ulegnie zmianie co widać na rys. nr 7.
Teraz musimy usunąć dodaną kolumnę ręcznie za pomocą skrótu klawiszowego Ctrl+Shift+Subtract. Teraz sprawdzimy, czy jeśli dodamy dużą ilość danych, zakres kolumn i sumy rozszerzy i przeliczy się prawidłowo. Dodatkowe dane z rysunku nr 2 zaznaczamy i przesuwamy w górę, czyli doklejamy do naszych danych źródłowych. Następnie odświeżamy dane z zapytania, czyli klikamy prawym przyciskiem myszy w dowolnym punkcie tabeli i z podręcznego menu wybieramy polecenie Odśwież (rys. nr 8).
Otrzymamy odświeżone (zaktualizowane) dane przedstawione na rys. nr 9.
Jak widać na rysunku powyżej nasze dane się przeliczyły, zakres Sumy odpowiednio się rozszerzył i otrzymaliśmy prawidłowe wyniki.
W dzisiejszym poście nauczymy się jak wyciągnąć wszystkie cyfry z tekstu w Power Query. W poprzednim odcinku na temat Power Query pokazywaliśmy jak wyciągnąć cyfry znajdujące się na początku tekstu bądź na jego końcu. W przykładowych danych mamy tabelę, gdzie tekst został pomieszany z cyframi (rys. nr 1).
W celu zaczytania danych do Power Query wybieramy polecenie Z tabeli/zakresu z karty Dane (rys. nr 2).
Otworzy nam się edytor zapytań Power Query z wczytaną tabelą z przykładowymi danymi przedstawiony na rys. nr 3.
Teraz zajmiemy się odpowiednim przekształcaniem tych danych. W pierwszym kroku musimy skopiować naszą kolumnę. W tym celu wybieramy polecenie Duplikuj kolumnę z karty Dodaj kolumnę (rys. nr 4).
Otrzymamy dane ze zduplikowaną kolumną przedstawione na rys. nr 5.
Teraz
zmienimy sobie nazwę nowej kolumny w pasku formuły, aby nie dodawać nowego
kroku. Zmieniamy tekst zaznaczony na rys. nr 6 na „Cyfry”. Zapis ze zmienioną
nazwą kolumny powinien wyglądać następująco:
Jeśli nie pokazuje Ci się pasek formuły, możesz go uruchomić zaznaczając checkbox przy poleceniu Pasek formuły na karcie Widok (rys. nr 7).
Kiedy mamy już zduplikowaną kolumnę, zaznaczamy ją i rozwijamy polecenie Podziel kolumny (punkt 2 na rys. nr 8) z karty Strona główna (punkt 1), następnie wybieramy polecenie Według liczby znaków (punkt 3).
Otworzy nam się okno Dzielenia kolumny według liczby znaków, gdzie w polu Liczba znaków wpisujemy wartość 1, następnie wybieramy w polu Podziel checkbox przy opcji Powtarzalne. Ważne jest abyśmy rozwinęli opcje zaawansowane, gdzie w polu Podziel na wybieramy dzielenie na Wiersze. Tak ustawione parametry dzielenia kolumny zatwierdzamy przyciskiem OK (rys. nr 9).
Otrzymamy podzielone dane, których fragment został przedstawiony na rys. nr 10.
W kolumnie Tekst mamy zduplikowane nasze oryginalne wartości, a w kolumnie Cyfry mamy podział na wszystkie pojedyncze znaki. Nasza kolumna Cyfry zaimportowała się domyślnie jako dane tekstowe, musimy zmienić typ danych. W tym celu klikamy na ikonkę ABC przy nazwie kolumny i z listy rozwijanej wybieramy typ Liczna całkowita (rys. nr 11).
Pojawi nam się okienko, w którym musimy potwierdzić decyzję o zmianie typu danych za pomocą przycisku Zamień bieżącą (rys. nr 12).
Otrzymamy zmienione dane, gdzie w miejscach znaków tekstowych otrzymamy "Error", ponieważ Power Query nie rozpozna cyfry. Natomiast w miejscach, gdzie mieliśmy do czynienia ze spacją otrzymamy wartość "null" (rys. nr 13).
Dzięki temu, że otrzymaliśmy błędy (error), w miejscach znaków tekstowych, możemy je łatwo usunąć. Rozwijamy polecenie Usuń wiersze (punkt 2 na rys. nr 14) z karty Strona główna (punkt 1), następnie wybieramy polecenie Usuń błędy (punkt 3).
Otrzymamy dane po usunięciu wierszy z błędami przedstawione na rys. nr 15 .
W kolejnym kroku chcielibyśmy pozbyć się wierszy z wartościami null, które powstały w miejsce spacji. W tym celu rozwijamy filtry (ikona trójkąta obok nazwy kolumny) i z podręcznego menu wybieramy polecenie Usuń puste (rys. nr 16).
Otrzymamy dane bez pustych wierszy przedstawione na rys. nr 17.
Możemy zauważyć, że przy konkretnym tekście mamy tylko te wiersze, gdzie znalazły się cyfry, bez względu czy były one na początku, na końcu czy w środku tekstu. Otrzymaliśmy wyciągnięte wszystkie cyfry z tekstu, lecz nie są one jeszcze odpowiednio zgrupowane. Zaznaczamy kolumnę Tekst i wybieramy polecenie Grupowanie według z karty Strona główna (rys. nr 18).
Otworzy nam się okno Grupowania według, gdzie wybieramy typ grupowanie Podstawowy. W polu Nazwa nowej kolumny zmieniamy domyślną nazwę Liczność na Cyfry, następnie w polu Operacja wybieramy z listy rozwijanej Wszystkie wiersze. Tak ustawione parametry grupowania według zatwierdzamy przyciskiem OK (rys. nr 19).
Otrzymamy pogrupowane dane przedstawione na rys. nr 20.
Pod skrótem
Table ukryta jest tabelka zarówno z danymi z kolumny Tekst jak i z kolumny
Cyfry. Nam zależy tylko na danych z kolumny cyfry, więc zrobimy małe
przekształcenie w pasku formuły. Zamiast znaku podkreślenia, który oznacza cały
wiersz wpiszemy nazwę kolumny. Zapis formuły powinien wyglądać następująco:
=Table.Group
(#"Przefiltrowano wiersze", {"Tekst"}, {{"Cyfry"
each [Cyfry], type table [Tekst=anynonnull, Cyfry=numer]}})
Otrzymamy dane
tylko z kolumny Cyfry ukryte pod słowem List w naszej tabeli przedstawione na
rys. nr 21.
W pasku
formuły nadal mamy typ danych table oraz dodatkowe domyślne dane. Musimy
wprowadzić dodatkowe zmiany, między innymi zamienić table na list. Zapis
formuły powinien wyglądać następująco:
=Table.Group
(#"Przefiltrowano wiersze", {"Tekst"}, {{"Cyfry"
each [Cyfry], type list}})
Dzięki
takiej zmianie oprócz słowa list mamy zaznaczony odpowiednią ikonką typ danych
w kolumnie cyfry, co widać na rys. nr 22.
Dodatkowo dzięki takiej zmianie możemy bez problemu rozwinąć takie dane. W tym celu rozwijamy ikonkę ze strzałkami obok nazwy kolumny Cyfry i wybieramy polecenie Wyodrębnij wartości (rys. nr 23).
Otworzy nam się okno Wyodrębniania wartości z listy, gdzie z listy rozwijanej musimy wybrać Ogranicznik, jakiego Power Query ma użyć do połączenia danych. W naszym przykładzie, ze względu na to że mamy do czynienia z cyframi wybieramy Brak ogranicznika. Tak ustawione parametry wyodrębniania wartości zatwierdzamy przyciskiem OK (rys. nr 24).
Otrzymamy wyodrębnione cyfry w drugiej kolumnie przedstawione na rys. nr 25.
Co istotne
mimo że wyciągnęliśmy z danych cyfry mają one przypisany typ danych Tekst.
Gdyby zależało nam żeby zmienić typ danych na liczby to stracilibyśmy zera
wiodące, czyli nie otrzymalibyśmy wszystkich cyfr z tekstu.
Tak
przygotowane dane możemy załadować do Excela za pomocą polecenia Zamknij i
załaduj do z karty Strona główna (rys. nr 26).
W Excelu otworzy nam się okno Importowania danych, gdzie wybieramy sposób wyświetlania danych jako Tabela oraz wskazujemy miejsce wstawienia danych, czyli Istniejący arkusz oraz wskazujemy konkretną komórkę. Tak ustawione parametry importowania danych zatwierdzamy przyciskiem OK (rys. nr 27).
Otrzymamy dane wstawione do Excela przedstawione na rys. nr 28.
Jak widać Power Query bez problemu poradził sobie z wyciągnięciem wszystkich cyfr z tekstu bez względu, gdzie się one znajdowały, czy były na końcu tekstu, czy na początku, czy też w środku.
Książka Mistrz Excela + promo na 35 urodziny
Chcę Cię poinformować, że w końcu udało mi zebrać środki i dopiąć wszystkich formalności, żeby powstało II wydanie mojej książki Mistrz Excela (zostałem wydawcą) II wydanie jest wzbogacone o rozdział (nr 22) wprowadzający w genialny dodatek (Power Query) do Excela służący do pobierania, łączenia i wstępnej obróbki danych z wielu źródeł.
Książka Mistrz Excela to historia Roberta, który musi poznać dobrze Excela na potrzeby nowej pracy. Książka jest napisana w formie rozmów Roberta z trenerem, dzięki temu jest przystępniejsza w odbiorze niż standardowe książki techniczne pisane językiem "wykładowym".
Rozmowy zostały podzielone na 22 tematyczne rozdziały, które krok po kroku wprowadzają Cię w tajniki Excela. Robert zaczyna naukę od poznania ciekawych aspektów sortowania i filtrowania danych w Excelu, przechodzi przez formatowanie warunkowe, tabele przestawne, funkcje wyszukujące i wiele innych tematów, by na koniec poznać wstępne informacje o VBA i Power Query. A wszystko to na praktycznych przykładach i z dużą ilością zdjęć.
Żebyś mógł śledzić postępy Roberta, do książki dołączone są pliki Excela, na których pracuje Robert.
Na powyższej stronie znajdziesz dokładniejszy opis książki, opinie osób, które kupiły I wydanie oraz podgląd pierwszego rozdziału książki, żeby upewnić się, czy forma rozmów przy nauce Excela jest dla Ciebie. Jeśli książka Ci się spodoba poinformuj o niej swoich znajomych.
W ramach promocji na moje 35 urodziny możesz też mieć każdy z moich kursów wideo na Udemy za zaledwie 35 zł. Linki do kursów zamieszczam poniżej. W każdym kursie są udostępnione filmy do podglądu, byś mógł się przekonać czy dany kurs jest dla Ciebie.
W
dzisiejszym poście nauczymy się jak pobrać dane z pliku PDF do Power Query.
Omówimy tutaj dwie możliwości. W Excelu, Power Query nie ma możliwości pobrania
danych bezpośrednio z pliku PDF, natomiast taka możliwość pojawia się w Power
BI Desktop (drugie rozwiązanie). Pierwsze rozwiązanie będzie wykonane na
podstawie filmu znalezionego w sieci, gdzie najpierw przekształcimy dane z
pliku PDF do takiego formatu, który Power Query będzie w stanie pobrać.
Załóżmy, że mamy przykładowy plik PDF jak na rys. nr 1.
Musimy ten
plik otworzyć za pomocą WORDA, czyli klikamy na niego prawym przyciskiem myszy
i z podręcznego menu rozwijamy polecenie Otwórz za pomocą, a następnie
wybieramy polecenie Wybierz inną aplikację (nie mamy na domyślnej liście
programu WORD) – rys. nr 2.
Otworzy się
okno o nazwie Jak chcesz otworzyć ten plik, gdzie musimy znaleźć na liście
program WORD, zaznaczyć go i nasz wybór zatwierdzić przyciskiem OK (rys. nr 3).
Po
zatwierdzeniu otwarcia pliku PDF w programie Word, plik PDF zostaje
przekonwertowany na edytowalny dokument tekstowy. Funkcjonalność ta działa od
WORDA 2016, we wcześniejszej wersji nie działało. Pojawi nam się okno , gdzie
musimy zatwierdzić decyzję, że chcemy przekształcić plik PDF za pomocą
przycisku OK. Otworzy nam się WORD z plikiem przedstawionym na rys. nr 4.
Mamy dane w
wordzie, razem z tabelkami, jakie nas interesują. Nie potrzebujemy danych z
Worda tylko danych zapisanych jako html, czyli stronę web. Przechodzimy do menu
Plik, następnie wybieramy polecenie Zapisz jako (rys. nr 5).
Otworzy nam
się panel Zapisywania jako, gdzie możemy wybrać lokalizację w jakiej chcemy
zapisać plik, zmienić tytuł (nazwę) pliku a przede wszystkim wybrać typ pliku.
Rozwijamy listę z rodzajami plików i wybieramy Strona sieci Web (rys. nr 6).
Po wybraniu
odpowiedniego typu pliku, a ze względu na to że żyjemy w Polsce, musimy
rozwinąć polecenie Więcej opcji (zaznaczone strzałką na rys. nr 7).
Otworzy nam
się okno Zapisz jako, gdzie w menu Narzędzia wybieramy polecenie Opcje
sieci Web (rys. nr 8).
Otworzy nam
się okno Opcji sieci Web, gdzie przechodzimy na zakładkę Kodowanie, a
następnie upewniamy się że wybrane jest kodowanie Unicode (UTF‑8), żeby
Power Query mógł to prawidłowo odczytać. Tak ustawione kodowanie zatwierdzamy
przyciskiem OK (rys. nr 9).
Automatycznie
nastąpi powrót do okna Zapisz jako, gdzie ustawione parametry zatwierdzamy
przyciskiem Zapisz. Word stworzył nam plik html i dopiero ten plik będziemy
mogli zaczytać do Power Query.
Przy
pobieraniu danych Power Query może mieć problem z polskimi znaczkami, dlatego
tak ważne było ustawienie kodu UTF‑8. Rozwijamy polecenie Z pliku (punkt
2 na rys. nr 10) z karty Dane (punkt 1), a następnie wybieramy polecenie
Ze skoroszytu (punkt 3).
Otworzy nam
się okno Importowania danych, gdzie na dole obok wybranej Nazwy pliku musimy
wybrać opcję Wszystkie pliki a nie tylko pliki Excel. Dzięki tej opcji
wyświetlą nam się wszystkie pliki w tym katalogu. Wybieramy plik html i
zatwierdzamy nasz wybór przyciskiem Importuj (rys. nr 11).
Power Query
domyśli się że nie importujemy pliku Excela i otworzy nam okno Nawigatora,
gdzie możemy wybrać poszczególne elementy, które chcemy zaczytać do Power
Query. Wybieramy tabelę nr 2, następnie przechodzimy do Power Query za pomocą
przycisku Przekształć dane. Naszym zadaniem było tylko zaczytanie danych a nie
ich przekształcanie więc możemy dane na tym etapie od razu załadować do Excela
za pomocą przycisku Załaduj (rys. nr 12).
Otrzymamy
wybrane dane załadowane do Excela przedstawione na rys. nr 13, dane w dokładnie
takiej postaci, w jakiej były w pliku PDF.
Istotne
jest, że dzięki ustawieniu odpowiedniego kodowania widać polskie znaki w
danych. W razie potrzeby dane te możemy edytować za pomocą polecenia Edytuj
z karty Zapytanie (rys. nr 14).
Pierwsze
rozwiązanie jest dość długie, ale nie wymaga instalacji dodatkowego
oprogramowania, wszystkie działania wykonujemy w pakiecie Microsoft Office.
Drugie
rozwiązanie wykorzystuje Power BI Desktop, gdzie rozwijamy polecenie Pobierz dane z karty Strona główna, następnie
wybieramy polecenie Więcej (rys. nr 15). Power Bi ma możliwość
pobierania danych bezpośrednio z pliku pdf.
Otworzy nam
się okno Pobierania danych, gdzie w zakładce Wszystkie wyszukujemy plik typu
PDF. Wybór rodzaju pliku do pobrania zatwierdzamy przyciskiem Połącz (rys. nr 16).
Otworzy się
okno Otwieranie, gdzie musimy wskazać plik pdf, z którego chcemy pobrać dane.
Power Bi pamięta ścieżkę dostępu do pliku, na którym wykonujemy poszczególne
czynności w tym odcinku. Zaznaczamy plik, który chcemy pobrać i klikamy
dwukrotnie lub zatwierdzamy przyciskiem Otwórz (rys. nr 17).
Trochę
dłużej trwa wczytywanie (łączenie) niż dla standardowego pliku czy to z Excela,
czy np. html, ale Power Bi radzi sobie z wyciąganiem danych z pliku pdf.
Otworzy nam się okno Nawigator z wyświetlonymi elementami pliku pdf. Nas
interesuje ta tabelka, która wybieraliśmy w pierwszym przykładzie, czyli tutaj
Table004 (page 3) i dodatkowo inna tabelka, aby pokazać działanie pobierania
danych. Nasze wybrane tabelki zatwierdzamy przyciskiem Załaduj (rys. nr 18).
Podsumowując
pobieramy dwie tabelki z pliku pdf. Ważne jest, że plik pdf nie może być
obrazkowy, tzn. nie mogą to być rysunki (zdjęcia) tabel tylko fizycznie
utworzone tabelki np. w pliku Word lub Excel. Jeśli mamy do czynienia z plikiem
pdf, gdzie znajdują się pliki jpg, czyli zdjęcia jakichś elementów to nic nie
jest w stanie odczytać takich danych, przynajmniej ja nie znam takiego
programu. Otrzymamy zaczytane do Power Bi dwie tabelki (rys. nr 19).
Jeśli chcemy
je skopiować do Excela, to wystarczy kliknąć w obszar danej tabelki prawym
przyciskiem myszy i z podręcznego menu wybrać polecenie Kopiuj tabelę
(rys. nr 20).
Po
skopiowaniu tabeli wystarczy przejść do okna Excela i ją wkleić za pomocą
skrótu klawiszowego Ctrl+V. Dane zostały wklejone do Excela identycznie jak
wyglądały w programie Power Bi (rys. nr 21).
Możemy
wrócić do Power BI i zrobić szybkie filtrowanie danych, mianowicie kliknąć w
ikonkę trójkąta obok nazwy województwa i odznaczyć checkboxy przy nazwach
województw, które nas w tym momencie nie interesują. Parametry filtru
zatwierdzamy przyciskiem OK (rys. nr 22).
Otrzymamy
przefiltrowane dane przedstawione na rys. nr 23.
Przygotowaliśmy
sobie przefiltrowaną tabelkę, na którą klikamy prawym przyciskiem myszy i z
podręcznego menu wybieramy polecenie Kopiuj tabelę jak na rys. nr 20.
Następnie przechodzimy do Excela, ustawiamy aktywną komórkę obok poprzednio
wklejonej tabelki i za pomocą skrótu klawiszowego Ctrl+V, wklejamy
przefiltrowaną tabelkę (rys. nr 24).
Podsumowując
Power Bi tak samo jak Power Query przy kopiowaniu danych uwzględnia nałożone
wcześniej filtry. Jest to istotne, szczególnie przy pobieraniu danych z pliku pdf.
Książka Mistrz Excela + promo na 35 urodziny
Chcę Cię poinformować, że w końcu udało mi zebrać środki i dopiąć wszystkich formalności, żeby powstało II wydanie mojej książki Mistrz Excela (zostałem wydawcą) II wydanie jest wzbogacone o rozdział (nr 22) wprowadzający w genialny dodatek (Power Query) do Excela służący do pobierania, łączenia i wstępnej obróbki danych z wielu źródeł.
Książka Mistrz Excela to historia Roberta, który musi poznać dobrze Excela na potrzeby nowej pracy. Książka jest napisana w formie rozmów Roberta z trenerem, dzięki temu jest przystępniejsza w odbiorze niż standardowe książki techniczne pisane językiem "wykładowym".
Rozmowy zostały podzielone na 22 tematyczne rozdziały, które krok po kroku wprowadzają Cię w tajniki Excela. Robert zaczyna naukę od poznania ciekawych aspektów sortowania i filtrowania danych w Excelu, przechodzi przez formatowanie warunkowe, tabele przestawne, funkcje wyszukujące i wiele innych tematów, by na koniec poznać wstępne informacje o VBA i Power Query. A wszystko to na praktycznych przykładach i z dużą ilością zdjęć.
Żebyś mógł śledzić postępy Roberta, do książki dołączone są pliki Excela, na których pracuje Robert.
Na powyższej stronie znajdziesz dokładniejszy opis książki, opinie osób, które kupiły I wydanie oraz podgląd pierwszego rozdziału książki, żeby upewnić się, czy forma rozmów przy nauce Excela jest dla Ciebie. Jeśli książka Ci się spodoba poinformuj o niej swoich znajomych.
W ramach promocji na moje 35 urodziny możesz też mieć każdy z moich kursów wideo na Udemy za zaledwie 35 zł. Linki do kursów zamieszczam poniżej. W każdym kursie są udostępnione filmy do podglądu, byś mógł się przekonać czy dany kurs jest dla Ciebie.
W
dzisiejszym poście omówimy jak za pomocą Power Query możemy wyciągnąć listę
wszystkich folderów, podfolderów wskazanego folderu. Rozwiązanie to jest
proste, ale ma jedną wadę, o której pomówimy na końcu. W celu wykonania zadania
rozwijamy polecenie Pobierzdane (punkt 2 na rys. nr 1) z karty Dane
(punkt 1), następnie rozwijamy polecenie Zpliku (punkt 3) i
wybieramy polecenie Zfolderu (punkt 4).
Na potrzeby
naszego zadania przygotowałem katalog z większą ilością podfolderów o nazwie
WebinarPQ. Po użyciu polecenia z rys. nr 1 otworzy nam się okno Folder, gdzie musimy
wkleić ścieżkę dostępu do tego folderu lub przy użyciu przycisku Przeglądaj,
wyszukać folder ręcznie. Wklejoną ścieżkę do wybranego folderu zatwierdzamy
przyciskiem OK (rys. nr 2).
Wtedy Power
Query pobierze informacje o wszystkich plikach znajdujących się w folderze
głównym i jego pod folderach. Otworzy się okno z wybranej ścieżki dostępu,
gdzie wystarczy kliknąć przycisk Przekształć dane, aby przejść do ich
edycji (rys. nr 3). Dzięki drobnym przekształceniom danych otrzymamy listę
wszystkich elementów wybranego folderu.
Otworzy nam
się Edytor zapytań Power Query z wczytanymi danymi przedstawiony na rys. nr 4.
Dla nas
istotna jest tylko ostatnia kolumna o nazwie Folder Path, inne są zbędne
ponieważ zawierają ind=formacje na temat poszczególnych plików. Klikamy na
nazwę kolumny Folder Path prawym przyciskiem myszy i z podręcznego menu
wybieramy polecenie Usuń inne kolumny (rys. nr 5).
Otrzymamy
listę wszystkich folderów i pod folderów zawartych w katalogu WebinarPQ
przedstawioną na rys. nr 6.
Rys. nr 7 – polecenie Usuń duplikaty Jak łatwo zauważyć poszczególne ścieżki się powtarzają, więc musimy je usunąć. Zaznaczamy kolumnę i rozwijamy polecenie Usuń wiersze a następnie wybieramy polecenie Usuń duplikaty (rys. nr 7).
Otrzymamy
listę ścieżek dostępu do wszystkich pod folderów wybranego katalogu
przedstawioną na rys. nr 8.
Jeśli
potrzebujemy jakieś dodatkowe dane to możemy dalej przekształcać te dane.
Naszym zadaniem było przygotowanie listy wszystkich pod folderów. Nasza lista
zawiera również główny folder, czyli WebinarPQ, możemy go usunąć rozwijając
podręcznego menu (przycisk z trójkącikiem przy nazwie kolumny), a następnie
odznaczając checkbox przy ścieżce dostępu do głównego katalogu. Zmiany w
filtrowaniu zatwierdzamy przyciskiem OK (rys. nr 9).
Otrzymamy
dane z listą ścieżek dostępu do pod folderów, natomiast bez ścieżki dostępu do
głównego katalogu (rys. nr 10).
Rys. nr 11 – polecenie Zamknij i załaduj doTak przygotowane dane możemy załadować do Excela za pomocą polecenia Zamknij i załaduj do z karty Narzędzia główne (rys. nr 11).
Otworzy nam
się okno Importowania danych, gdzie ustawiamy sposób wyświetlania danych jako
tabela i wskazujemy miejsce ich wstawienia, czyli istniejący arkusz i konkretna
komórka. Tak ustawione parametry importowania danych zatwierdzamy przyciskiem
OK (rys. nr 12).
Otrzymamy
dane zaimportowane do Excela i przedstawione na rys. nr 13.
Jak wspominaliśmy
na początku, rozwiązanie to jest proste, lecz ma jedną wadę. Mianowicie jeśli
podejrzymy pliki w folderze WebinarPQ, widzimy że mamy dodatkowy folder o
nazwie Nowy folder, który nie pojawił się na naszej liście (rys. nr 14). Dzieje
się tak dlatego, że folder ten jest pusty.
Pusty folder
nie pojawił się na liście otrzymanej przy użyciu funkcji, która wyciąga
informacje o wszystkich plikach znajdujących się we wskazanym folderze,
ponieważ nie zawierał żadnych plików. Podsumowując przedstawiony sposób działa
poprawnie w 90%, ale musimy pamiętać o pustych folderach.
Książka Mistrz Excela + promo na 35 urodziny
Chcę Cię poinformować, że w końcu udało mi zebrać środki i dopiąć wszystkich formalności, żeby powstało II wydanie mojej książki Mistrz Excela (zostałem wydawcą) II wydanie jest wzbogacone o rozdział (nr 22) wprowadzający w genialny dodatek (Power Query) do Excela służący do pobierania, łączenia i wstępnej obróbki danych z wielu źródeł.
Książka Mistrz Excela to historia Roberta, który musi poznać dobrze Excela na potrzeby nowej pracy. Książka jest napisana w formie rozmów Roberta z trenerem, dzięki temu jest przystępniejsza w odbiorze niż standardowe książki techniczne pisane językiem "wykładowym".
Rozmowy zostały podzielone na 22 tematyczne rozdziały, które krok po kroku wprowadzają Cię w tajniki Excela. Robert zaczyna naukę od poznania ciekawych aspektów sortowania i filtrowania danych w Excelu, przechodzi przez formatowanie warunkowe, tabele przestawne, funkcje wyszukujące i wiele innych tematów, by na koniec poznać wstępne informacje o VBA i Power Query. A wszystko to na praktycznych przykładach i z dużą ilością zdjęć.
Żebyś mógł śledzić postępy Roberta, do książki dołączone są pliki Excela, na których pracuje Robert.
Na powyższej stronie znajdziesz dokładniejszy opis książki, opinie osób, które kupiły I wydanie oraz podgląd pierwszego rozdziału książki, żeby upewnić się, czy forma rozmów przy nauce Excela jest dla Ciebie. Jeśli książka Ci się spodoba poinformuj o niej swoich znajomych.
W ramach promocji na moje 35 urodziny możesz też mieć każdy z moich kursów wideo na Udemy za zaledwie 35 zł. Linki do kursów zamieszczam poniżej. W każdym kursie są udostępnione filmy do podglądu, byś mógł się przekonać czy dany kurs jest dla Ciebie.
W
dzisiejszym poście omówimy usuwanie części adresów, czyli np. nazw ulic czy
placów. Rozwiążemy to zadanie w Power Query. To samo zagadnienie omawialiśmy w
poradzie 369, ale za pomocą Excela. Zagadnienie to omówimy na podstawie
przykładowych danych przedstawionych na rys. nr 1.
Przykładowe
dane musimy zaczytać do Power Query za pomocą polecenia Z tabeli/ zakresu
z karty Dane (rys. nr 2).
Otworzy nam
się Edytor zapytań Power Query z wczytaną tabelą z adresami, następnie na tych
danych wykonamy przekształcenia, aby otrzymać pożądany efekt. Przekształcenia,
które wykonywaliśmy ręcznie w Excelu, czyli zamiana poszczególnych nazw ulic,
alei i placów na ulice (ujednolicenie danych), w Power Query możemy zapisać
jako kroki. Nawet kiedy nasze dane się zmienią, Power Query znów zamieni te
instancje na ulice i będziemy mogli wyciągnąć tylko miasto z naszych danych.
Zaznaczamy
kolumnę Miasto, Adres i wybieramy polecenie Zamienianie wartości z karty
Narzędzia główne (rys. nr 3).
Polecenia
tego musimy użyć dwukrotnie. Otworzy nam się okno Zamieniania wartości, gdzie w
polu Wartość do znalezienia wpisujemy pl. (oznaczenie placu w adresie), następnie
w polu Zamień na wpisujemy ul. (oznaczenie ulicy). Tak ustawione parametry
zamieniania wartości zatwierdzamy przyciskiem OK (rys. nr 4).
Otrzymamy
dane, gdzie wszystkie wystąpienia skrótu pl. zostały zamienione na ul.
Następnie musimy powtórzyć te czynności, czyli wybieramy polecenie Zamienianie
wartości z karty Narzędzia główne. Otworzy nam się okno Zamieniania
wartości, gdzie znowu musimy ustawić jego parametry. Tym razem w polu Wartość
do znalezienia wpisujemy al. (oznaczenie alei), a w polu Zamień na wpisujemy
ul. (analogicznie jak na rys. nr 4).
Otrzymamy
zamienione dane przedstawione na rys. nr 5.
Otrzymaliśmy
dane, gdzie różne określenia adresów zostały ujednolicone, zamienione na skrót
od ulicy (ul.). Teraz wystarczy wyciągnąć z danych tekst przed ulicą. W tym celu rozwijamy polecenie Wyodrębnij (punkt
2 na rys. nr 6) z karty Przekształć (punkt 1), a następnie wybieramy
polecenie Tekst przed ogranicznikiem (punkt 3).
Otworzy nam
się okno Tekstu przed ogranicznikiem, gdzie w polu Ogranicznik wpisujemy skrót
ul. (ujednolicone oznaczenie ulicy w adresie). Tak ustawiony ogranicznik
zatwierdzamy przyciskiem OK (rys. nr 7).
Otrzymamy
wyodrębnione dane z nazwami miast, po usunięciu niepotrzebnego tekstu
przedstawioną na rys. nr 8.
Musimy
pamiętać, że mieliśmy takie adresy, gdzie po nazwie miast była spacja, a
dopiero potem nazwa ulicy, jak również sytuacje, kiedy tej spacji nie było w
ogóle. Na końcu nazw niektórych miast pozostały spacje, które są nam niepotrzebne
(mimo że ich nie widać). W tym celu rozwijamy polecenie Format (punkt 2
na rys. nr 9) z karty Przekształć (punkt 1), a następnie wybieramy
polecenie Przycięcie (punkt 3).
Polecenie
Przycięcie usuwa zbędne spacje na końcu tekstu. Otrzymamy przycięte dane
przedstawione na rys. nr 10.
Możemy
zrobić jeszcze jedno przekształcenie, mianowicie przy dwuczłonowych nazwach
miast powinien być myślnik pomiędzy słowami (Skarżysko – Kamienna). W tym celu
wybieramy polecenie Zamienianie wartości z karty Narzędzia główne
(jak na rys. nr 3). Otworzy nam się okno Zamieniania wartości, gdzie w polu
Wartość do znalezienia wpisujemy spację, a w polu Zamień na wpisujemy myślnik
(-). Tak ustawione parametry zamieniania wartości zatwierdzamy przyciskiem OK
(rys. nr 11).
Otrzymamy
zmienione dane. W kolejnym kroku powinniśmy zmienić nazwę kolumny, ponieważ po
przekształceniach zawiera ona tylko nazwę miasta. Klikamy dwukrotnie na tytuł
kolumny i wpisujemy nową nazwę, czyli Miasto (rys. nr 12).
Otrzymamy
dane przedstawione na rys. nr 13.
Po tych
wszystkich krokach przekształceń, powinniśmy otrzymać te same wyniki, co w
poradzie nr 369. Dzięki temu, że zadanie to wykonaliśmy w Power Query i mamy
zapisane poszczególne kroki to w sytuacji, kiedy zmieniłyby nam się dane, wystarczy
odświeżyć dane aby otrzymać aktualne, poprawne wyniki. Tak przygotowane dane
możemy załadować do Excela za pomocą polecenia Zamknij i załaduj do z
karty Narzędzia główne (rys. nr 14).
W Excelu
otworzy nam się okno Importowania danych, gdzie wybieramy sposób wyświetlania
danych jako Tabel i wskazujemy miejsce wstawienia danych – istniejący arkusz
oraz wskazujemy konkretną komórkę. Tak ustawione parametry importowania danych
zatwierdzamy przyciskiem OK (rys. nr 15).
Otrzymamy
dane wstawione do Excela z wyciągniętymi nazwami miast z całych adresów
przedstawione na rys. nr 16.
Książka Mistrz Excela + promo na 35 urodziny
Chcę Cię poinformować, że w końcu udało mi zebrać środki i dopiąć wszystkich formalności, żeby powstało II wydanie mojej książki Mistrz Excela (zostałem wydawcą) II wydanie jest wzbogacone o rozdział (nr 22) wprowadzający w genialny dodatek (Power Query) do Excela służący do pobierania, łączenia i wstępnej obróbki danych z wielu źródeł.
Książka Mistrz Excela to historia Roberta, który musi poznać dobrze Excela na potrzeby nowej pracy. Książka jest napisana w formie rozmów Roberta z trenerem, dzięki temu jest przystępniejsza w odbiorze niż standardowe książki techniczne pisane językiem "wykładowym".
Rozmowy zostały podzielone na 22 tematyczne rozdziały, które krok po kroku wprowadzają Cię w tajniki Excela. Robert zaczyna naukę od poznania ciekawych aspektów sortowania i filtrowania danych w Excelu, przechodzi przez formatowanie warunkowe, tabele przestawne, funkcje wyszukujące i wiele innych tematów, by na koniec poznać wstępne informacje o VBA i Power Query. A wszystko to na praktycznych przykładach i z dużą ilością zdjęć.
Żebyś mógł śledzić postępy Roberta, do książki dołączone są pliki Excela, na których pracuje Robert.
Na powyższej stronie znajdziesz dokładniejszy opis książki, opinie osób, które kupiły I wydanie oraz podgląd pierwszego rozdziału książki, żeby upewnić się, czy forma rozmów przy nauce Excela jest dla Ciebie. Jeśli książka Ci się spodoba poinformuj o niej swoich znajomych.
W ramach promocji na moje 35 urodziny możesz też mieć każdy z moich kursów wideo na Udemy za zaledwie 35 zł. Linki do kursów zamieszczam poniżej. W każdym kursie są udostępnione filmy do podglądu, byś mógł się przekonać czy dany kurs jest dla Ciebie.
W tym poście
zajmiemy się usuwaniem pustych kolumn w Power Query. Do mojego kursu na Udemy
dostałem zapytanie czy jest możliwe szybkie usunięcie pustych kolumn z danych.
W tego typu sytuacjach sam szukam odpowiedzi w gogle. Rozwiązanie znalazłem na
stronie www.community.powerbi.com, mianowicie kod funkcji, którą
będziemy mogli wykorzystać w naszym zadaniu (rys. nr 1).
Kopiujemy
funkcję za pomocą skrótu klawiszowego Ctrl+C, a następnie wklejamy za pomocą
skrótu Ctrl+V do Notepada ++, gdzie możemy podejrzeć elementy funkcji w
kolorach (rys. nr 2).
Co istotne w
tym zapisie – funkcja pobiera nam dane jako tabelę i usuwa puste kolumny z
danych. Pobranej funkcji możemy użyć w Power Query. Załóżmy, że mamy
przykładowe dane pokazane na rys. nr 3. Wynika z nich że zawierają one dużo
pustych kolumn.
Rozwijamy
polecenie Pobierz dane (punkt 2 na rys. nr 4) z karty Dane (punkt
1), następnie rozwijamy polecenie Z innych źródeł (punkt 3) i wybieramy
polecenie Pustezapytanie (punkt 4).
Otworzy nam
się pusty Edytor zapytań Power Query, gdzie musimy wkleić nasz kod M, czyli
zapis funkcji skopiowany z Notepada++. Wybieramy polecenie Edytor
zaawansowany z karty Narzędzia główne (rys. nr 5).
Otworzy nam
się okno Edytora zaawansowanego, gdzie wklejamy za pomocą skrótu klawiszowego
Ctrl+V naszą skopiowaną wcześniej funkcję (rys. nr 6). Zapis powinien wyglądać
następująco:
(tbl as table) =>
let
Headers
= Table.ColumnNames(tbl),
Result
= Table.SelectColumns(tbl),
List.Select(Headers,
each List.MatchesAny(Table.Column(tbl,_),
each_
<> null)))
in
Result
Wklejoną
funkcję zatwierdzamy w Edytorze zaawansowanym przyciskiem Gotowe. Otrzymamy
gotową funkcję przedstawioną na rys. nr 7.
Nie ma znaczenia,
że zapis tej funkcji był w języku angielskim. Istotne jest, że ta funkcja
pobiera tabelę i odpowiednio ją przekształca. Nasze zapytanie nazywa się
Zapytanie 1, więc zmienimy jego nazwę w Ustawieniach zapytania na
DeleteEmptyColumns, czyli Usuń puste kolumny. Co istotne nasze zapytanie ma
postać funkcji co widać przy nazwie zapytania – skrót fx (rys. nr 8).
Sposób,
którego używamy jest najprostszym sposobem użycia tej funkcji, czyli zaczytanie
pustego zapytania i wstawienie do niego funkcji, następnie zaczytanie danych z
Excela w formie tabeli do drugiego zapytania. Nie wychodząc z Power Query
możemy rozwinąć sobie polecenie Nowe źródło (punkt 1 na rys. nr 9) na
karcie Narzędzia główne, następnie rozwinąć polecenie Plik (punkt
2) i wybrać polecenie Excel (punkt 3).
Otworzy nam
się okno Importowania danych, w którym musimy znaleźć plik z naszymi
przykładowymi danymi z rys. nr 3. Wybieramy plik i klikamy na niego dwukrotnie
lub zatwierdzamy nasz wybór przyciskiem Otwórz (rys. nr 10).
Otworzy nam
się okno Nawigatora, gdzie na liście elementów wybieramy jeden arkusz, ten
który chcemy przekształcić – o nazwie Dane. Nasz wybór zatwierdzamy przyciskiem
OK (rys. nr 11).
Arkusz ten
zostanie zaczytany do Power Query jako odrębne zapytanie co widać na rys. nr 12.
Dodatkowo
możemy usunąć krok Zmieniono typ z Zastosowanych kroków (Ustawienia zapytania),
ponieważ krok ten nic nie wnosi do naszych danych.
Aby usunąć
puste kolumny wystarczy przejść na zapytanie z naszą funkcją i w polu tbl
(Wprowadź parametr) wybrać naszą zaczytaną tabelę z drugiego zapytania. Wybór
tabeli zatwierdzamy przyciskiem Wywołaj (rys. nr 13).
W wyniku
zadziałania funkcji otrzymamy dane w formie tabeli, z których zostały usunięte
wszystkie puste kolumny (rys. nr 14).
Co istotne
do poprawnego zadziałania tej funkcji musi być całkowicie pusta kolumna (np.
kolumna nr 7 ma test w przedostatnim wierszu i już nie została usunięta). Po
nagłówkach kolumn doskonale widać jak dużo kolumn zostało usuniętych.
Podsumowując
pokazaliśmy sposób usunięcia pustych kolumn w Power Query znaleziony w
internecie. Jeśli jesteś bardziej zaawansowanym użytkownikiem możesz zaczytać
dane do Power Query i wkleić tą funkcję pod razu w jednym zapytaniu. Innym
sposobem wywołania funkcji jest polecenie Wywołajfunkcjęniestandardową
z karty Dodaj kolumnę (rys. nr 15).
Tak
przygotowane dane musimy załadować do Excela, w tym celu wybieramy polecenie Zamknij
i załaduj z karty Narzędzia główne (rys. nr 16).
Nie
przekształcaliśmy dodatkowo danych, zależało nam jedynie na usunięciu pustych
kolumn z danych. Zapytania zostały załadowane do Excela jako połączenia (ze
względu na to, że mamy kilka zapytań) – rys. nr 17.
Zaznaczamy
zapytanie Wywołano funkcję i klikamy na nie prawym przyciskiem myszy, następnie
z podręcznego menu wybieramy polecenie Załaduj do (rys. nr 18).
Otworzy nam
się okno Importowania danych, gdzie wybieramy sposób wyświetlania danych jako
Tabela i wskazujemy miejsce wstawienia danych, czyli Istniejący arkusz oraz
wskazujemy konkretną komórkę. Tak ustawione parametry importowania danych
zatwierdzamy przyciskiem OK (rys. nr 19).
Otrzymamy
dane wstawione do Excela przedstawione na rys. nr 20.
Tak
przygotowane dane wymagają jeszcze obróbki, mianowicie uporządkowania ich,
usunięcia zbędnych wierszy i zbędnych informacji. Najważniejsze że udało nam
się wykonać pierwszy krok, czyli automatyczne usuwanie niepotrzebnych kolumn za
pomocą funkcji znalezionej w internecie.
Książka Mistrz Excela + promo na 35 urodziny
Chcę Cię poinformować, że w końcu udało mi zebrać środki i dopiąć wszystkich formalności, żeby powstało II wydanie mojej książki Mistrz Excela (zostałem wydawcą) II wydanie jest wzbogacone o rozdział (nr 22) wprowadzający w genialny dodatek (Power Query) do Excela służący do pobierania, łączenia i wstępnej obróbki danych z wielu źródeł.
Książka Mistrz Excela to historia Roberta, który musi poznać dobrze Excela na potrzeby nowej pracy. Książka jest napisana w formie rozmów Roberta z trenerem, dzięki temu jest przystępniejsza w odbiorze niż standardowe książki techniczne pisane językiem "wykładowym".
Rozmowy zostały podzielone na 22 tematyczne rozdziały, które krok po kroku wprowadzają Cię w tajniki Excela. Robert zaczyna naukę od poznania ciekawych aspektów sortowania i filtrowania danych w Excelu, przechodzi przez formatowanie warunkowe, tabele przestawne, funkcje wyszukujące i wiele innych tematów, by na koniec poznać wstępne informacje o VBA i Power Query. A wszystko to na praktycznych przykładach i z dużą ilością zdjęć.
Żebyś mógł śledzić postępy Roberta, do książki dołączone są pliki Excela, na których pracuje Robert.
Na powyższej stronie znajdziesz dokładniejszy opis książki, opinie osób, które kupiły I wydanie oraz podgląd pierwszego rozdziału książki, żeby upewnić się, czy forma rozmów przy nauce Excela jest dla Ciebie. Jeśli książka Ci się spodoba poinformuj o niej swoich znajomych.
W ramach promocji na moje 35 urodziny możesz też mieć każdy z moich kursów wideo na Udemy za zaledwie 35 zł. Linki do kursów zamieszczam poniżej. W każdym kursie są udostępnione filmy do podglądu, byś mógł się przekonać czy dany kurs jest dla Ciebie.