W
dzisiejszym poście omówimy numerowanie poszczególnych elementów danej kategorii
sprzedaży. Rozwiązanie takiego problemu w Excelu omówiliśmy w poradzie 373.
Dziś zajmiemy się rozwiązaniem tego problemu w Power Query. Przykładowe dane do
zadania zostały przedstawione na rys. nr 1.
Rys. nr 1 – przykładowe dane do zadania
Rozwiązanie,
które omówimy opiera się na pomyśle Gena Pulsa (www.excelguru.ce). Zacznijmy od pobrania naszych
danych do zadania. Wybieramy polecenie Z tabeli/ zakresu z karty Dane
(rys. nr 2).
Rys. nr 2 – polecenie Z tabeli/ zakresu
Otworzy nam
się edytor zapytań Power Query z wczytaną tabelą z Excela przedstawiony na rys.
nr 3.
Rys. nr 3 – edytor zapytań z wczytaną tabelą
We wczytanych
danych musimy zrobić drobną korektę. Mianowicie zmienić typ danych w kolumnie
Data, czyli klikamy ikonę kalendarza w tytule kolumny i wybieramy z podręcznego
menu polecenie Data (rys. nr 4).
Rys. nr 4 – zmiana typu danych na Datę
Otworzy nam
się okno Zmiany typu kolumny, gdzie musimy zatwierdzić naszą decyzję za pomocą
przycisku Zamień bieżącą (rys. nr 5).
Rys. nr 5 – okno Zmiany typu kolumny
Naszym celem
jest ponumerowanie elementów poszczególnych kategorii, ale pod warunkiem
zachowania aktualnej kolejności elementów. Z tego powodu w pierwszej kolejności
musimy dodać kolumnę indeksu. W tym celu rozwijamy polecenie KolumnaIndeksu
(punkt 2 na rys. nr 6) z karty Dodaj kolumnę (punkt 1), a następnie
wybieramy polecenie Od 0 (punkt 3).
Rys. nr 6 – ścieżka dostępu do polecenia Od 0 (kolumna indeksu)
Otrzymamy
dane z nową kolumną (kolumna indeksu), która sprawi, że nasze dane zachowają
swoją kolejność (rys. nr 7).
Rys. nr 7 – Dane z dodaną kolumną indeksu
Będziemy
potrzebować paska formuły w dalszych działaniach. Jeśli nie macie go
włączonego, można go uruchomić za pomocą polecenia Pasek formuły na
karcie Widok (oznaczone strzałką na rys. nr 8).
Rys. nr 8 – uruchomienie paska formuły
Dodatkowo
możemy zmienić nazwę nowej kolumny w pasku formuły, żeby nie dodawać kolejnego
kroku do Zastosowanych kroków. Zmieniamy nazwę nowej kolumny na IndeksTmp (rys.
nr 9), żebyśmy wiedzieli że jest on tymczasowy i służy tylko do zachowania
oryginalnej kolejności elementów w tabeli.
Rys. nr 9 – zmiana nazwy nowej kolumny w pasku formuły
W następnym
kroku musimy pogrupować dane po kategorii, czyli wybieramy polecenie Grupowanie
według z karty Narzędzia główne (rys. nr 10).
Rys. nr 10 – polecenie Grupowanie według
Otworzy nam
się okno Grupowania według, gdzie w polu Grupuj według wybieramy grupowanie
według Kategorii (punkt 1 na rys. nr 11), następnie ustawiamy rodzaj Operacji
jako Wszystkie wiersze (punkt 2). Ponadto możemy zmienić nazwę kolumny na TMP
(punkt 3), ponieważ znowu jest to kolumna tymczasowa i w następnych etapach
będziemy ją modyfikować. Tak ustawione parametry grupowania zatwierdzamy
przyciskiem OK.
Rys. nr 11 – parametry grupowania według
Otrzymamy
pogrupowane dane przedstawione na rys. nr 12. Istotne jest, że mamy podział na
4 główne grupy produktów i w kolumnie TMP mamy tabele z poszczególnymi
elementami danej grupy. Warto zaznaczyć, że są to tabele ze wszystkimi
kolumnami z naszej oryginalnej tabeli z zachowaniem kolejności z kolumny
IndeksTmp.
Rys. nr 12 – Pogrupowane dane
Naszym
zadaniem teraz jest dołożenie kolejnej kolumny indeks w tych wewnętrznych
tabelach z kolumny TMP. Dodajemy nową kolumnę indeks, czyli rozwijamy polecenie
Kolumna indeksu z karty Dodaj kolumnę, a następnie wybieramy
polecenie Od 1 (tym razem numerowanie zaczynamy od 1) jak na rys. nr 13.
Rys. nr 13 – polecenie Od 1 (kolumna indeks)
Otrzymamy
dane z nową kolumną przedstawione na rys. nr 14.
Rys. nr 14 – Dane z nową kolumną Indeks
Dzięki
dodaniu tej kolumny w pasku formuły mamy gotowy kod na dodanie kolumny indeksu
(rys. nr 15).
Rys. nr 15 – kod na dodanie kolumny indeks numerowanej od 1
Kopiujemy
ten kod za pomocą skrótu klawiszowego Ctrl+C i usuwamy dodatkowy krok (Dodano
indeks 1), ponieważ był nam potrzebny tylko do otrzymania kodu. Krok usuwamy za
pomocą oznaczenia x przed nazwą danego kroku (rys. nr 16).
Rys. nr 16 – usuwanie kroku
Następnie
wybieramy polecenie Kolumna niestandardowa z karty Dodaj kolumnę
(rys. nr 17).
Rys. nr 17 – polecenie Kolumna niestandardowa
Otworzy nam
się okno Kolumny niestandardowej, gdzie w polu Formuła kolumny niestandardowej
wklejamy nasz skopiowany wcześniej kod (z paska formuły) za pomocą skrótu
klawiszowego Ctrl+V. W formule tej musimy zmienić jedną rzecz ponieważ ta
formuła opierała się na wcześniejszym kroku, czyli na pogrupowaniu wierszy).
Naszym celem jest dodanie kolumny indeksu do tabeli, która znajduje się w
kolumnie TMP. Czyli kasujemy z zapisu formuły nazwę kroku a wstawiamy nazwę
kolumny. Zapis formuły powinien wyglądać następująco:
=Table.AddIndexColumn([TMP],
"Indeks", 1, 1)
Tak
ustawione parametry kolumny niestandardowej zatwierdzamy przyciskiem OK (rys.
nr 18).
Rys. nr 18 – parametry kolumny niestandardowej
Otrzymamy
dane z nową kolumną niestandardową przedstawione na rys. nr 19, gdzie w
kolumnie są ukryte tabele z poprzedniej kolumny ale z dodatkową kolumną indeksu
(ponumerowane elementy w każdej kategorii).
Rys. nr 19 – dane z nową kolumną niestandardową
Możemy teraz
usunąć dwie pierwsze kolumny, ponieważ one nic nam nie wnoszą do wyników,
jakich potrzebujemy. Zaznaczamy dwie kolumny Kategoria i TMP przytrzymując
klawisz Ctrl, następnie usuwamy je za pomocą klawisza Delete. Otrzymamy kolumnę
Niestandardowe, którą będziemy musieli rozwinąć. W tym celu klikamy ikonkę ze
strzałkami obok tytułu kolumny i odznaczamy checkbox przy opcji Użyj
oryginalnej nazwy kolumny jako indeksu. Parametry rozwinięcia zatwierdzamy
przyciskiem OK (rys. nr 20).
Rys. nr 20 – Rozwijanie kolumny niestandardowej
Otrzymamy
rozwinięte dane przedstawione na rys. nr 21.
Rys. nr 21 – rozwinięte dane z kolumny niestandardowej
Przez to że
pogrupowaliśmy dane po kategoriach mamy najpierw wszystkie myszki, potem
klawiatury itd. Pamiętajmy, że dodaliśmy kolumnę IndeksTmp po to, aby móc
wrócić do oryginalnej kolejności elementów. Wystarczy teraz zanzcayć kolumnę
IndeksTmp i wybrać polecenie sortuj od A do Z z karty Narzędzia
główne (rys. nr 22).
Rys. nr 22 – polecenie Sortuj od A do Z
Otrzymamy
dane posortowane według pierwotnej kolejności przedstawione na rys. nr 23.
Rys. nr 23 – posortowane dane
Kolumna
IndeksTmp jest nam już niepotrzebna, więc zaznaczamy ją i usuwamy za pomocą
klawisza Delete. Otrzymamy dane z numerowaniem (indeksem) elementów odpowiednio
w kategoriach przedstawione na rys. nr 24.
Rys. nr 24 – Dane z numerowaniem elementów poszczególnych kategorii
Tak
przygotowane dane możemy zaczytać do Excela. W tym celu wybieramy polecenie Zamknij
i załaduj do z karty Narzędzia główne (rys. nr 25).
Rys. nr 25 – polecenie Zamknij i załaduj do
W Excelu
otworzy nam się okno Importowania danych, gdzie ustawiamy sposób wyświetlania
danych jako Tabela, a następnie wskazujemy miejsce wstawienia danych, czyli
istniejący arkusz i wskazujemy konkretną
komórkę. Tak ustawione parametry importowania danych zatwierdzamy przyciskiem
OK (rys. nr 26).
Rys. nr 26 – parametry importowania danych do Excela
Otrzymamy
dane wstawione do Excela przedstawione na rys. nr 27.
Rys. nr 27 – dane zaimportowane z Power Query
Musimy
pamiętać o odpowiednim formatowaniu danych, ponieważ w kolumnie Data
otrzymaliśmy liczby zamiast dat. Zaznaczamy kolumnę Data i na karcie Narzędzia
główne możemy zmienić formatowanie w kategorii Liczba na Data krótka
(rys. nr 28).
Rys. nr 28 – zmiana formatowania na Datę krótką
Otrzymamy
końcowe dane, odpowiednio sformatowane a przede wszystkim z numeracją
poszczególnych elementów danych kategorii (rys. nr 29).
Rys. nr 29 – Dane z numeracją elementów poszczególnych kategorii
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 funkcjonalność polegającą na sprawdzaniu czy dany
element jest na liście. W przykładowych danych przedstawionych na rys. nr 1
mamy tabelę ze sprzedawcami, gdzie w zależności na której liście znajduje się
dany sprzedawca, to z tej listy chcemy pobierać dane.
Rys. nr 1 – przykładowe dane
Zakładamy,
że główna lista zawiera województwo, w którym działa dany sprzedawca i właśnie
stamtąd chcemy pobierać dane. W pierwszym kroku musimy pobrać nasze dane z
tabel pobrać do Power Query. Możemy to zrobić wybierając polecenie Z
tabeli/zakresu z karty Dane (rys. nr 2).
Rys. nr 2 – polecenie Z tabeli/ zakresu
Otworzy nam
się edytor zapytań Power Query z wczytaną tabelą pobraną z Excela przedstawioną
na rys. nr 3.
Rys. nr 3 – edytor zapytań Power Query z wczytaną tabelą z danymi
W
analogiczny sposób pobieramy dane z drugiej tabeli. Ustawiamy aktywną komórkę w
obszarze tabeli z regionami i wybieramy polecenie Z tabeli/ zakresu z karty Dane (jak na rys. nr 2).
Otrzymamy dwa odrębne zapytania w Edytorze zapytań Power Query (rys. nr 4).
Rys. nr 4 – dwa zapytania w Power Query (dwie tabele)
Możemy
przybliżyć dane (powiększyć) za pomocą skrótu klawiszowego Ctrl+Shift+=.
Przechodzimy na zapytanie tSprzedaż_k, gdzie naszym zadaniem będzie napisanie
kolumny warunkowej, która na podstawie sprzedawcy będzie wybierała wartość z
kolumny Świętokrzyskie albo Mazowieckie. W tym celu wybieramy polecenie Kolumna warunkowa z karty Dodaj kolumnę (rys. nr 5).
Rys. nr 5 – polecenie Kolumna warunkowa
Otworzy nam
się okno Dodawania kolumny warunkowej. Ta funkcjonalność Power Query posłuży
nam do zbudowania struktury funkcji IF (funkcji JEŻELI). Kolumnę tą łatwo
będzie stworzyć, ale później dokonamy pewnych modyfikacji, żeby sprawdzić czy
dany element jest na liście. W polu Nazwa nowej kolumny wpisujemy Główny
region (punkt 1 na rys. nr 6). W polu Nazwa kolumny wybieramy z listy
rozwijanej kolumnę Sprzedawca (punkt 2), w polu Operator zostawiamy
domyślny, czyli równa się (punkt 3). W polu Wartość wpisujemy nazwę
dowolnego sprzedawcy z regionu Świętokrzyskie np. Aleksandra (punkt 4),
natomiast w polu Wartość wyjściowa najpierw rozwijamy ikonkę obok pola i
wybieramy z listy rodzaj danych – Wybierz kolumnę (oznaczone strzałką) i
w polu wybieramy wartość z kolumny Świętokrzyskie (punkt 5). Następnie klikamy
przycisk Dodaj regułę, aby stworzyć kolejną strukturę funkcji JEŻELI.
W drugiej
regule w polu Nazwa kolumny wybieramy kolumnę Sprzedawca, pole Operator
zostaje bez zmian, w polu Wartość wpisujemy Dominik, następnie zmieniamy typ Wartości
wyjściowej na Wybierz kolumnę (jak dla pierwszej reguły) i wybieramy
kolumnę Mazowieckie. Powinniśmy stworzyć takie reguły dla każdej pojedynczej
osoby. Było by to bardzo czasochłonne. My zbudowaliśmy tu tylko strukturę a
później przez odpowiednie przekształcenie, sprawimy, żeby to działało dla
dowolnego sprzedawcy. W polu W przeciwnym razie wpisujemy wartość null
(oznaczone strzałką na rys. nr 7). Tak ustawione parametry kolumny warunkowej
zatwierdzamy przyciskiem OK.
Otrzymamy
dane z nową kolumną przedstawione na rys. nr 8. W kolumnie Główny region
stworzyliśmy strukturę, zbudowaną za podstawie prostych obliczeń funkcji
JEŻELI.
Rys. nr 8 – Dane z nową kolumną warunkową
W zapisie
formuły kolumny warunkowej w pasku formuły sprzedawca został porównany do
konkretnego sprzedawcy, a naszym celem będzie sprawdzenie czy dany sprzedawca
jest na liście. Podsumowując zastąpimy to porównanie funkcją List.Contains
(rys. nr 9).
Rys. nr 9 – zapis formuły kolumny warunkowej
Funkcja
List.Contains potrzebuje jako pierwszego argumentu listy wszystkich
sprzedawców, listę w Power Query zapisujemy w nawiasach klamrowych. Następnie
sprawdzamy czy w danej liście znajduje się ten konkretny sprzedawca z danego
wiersza, czyli tutaj możemy użyć struktury zbudowanej przez kolumnę warunkową.
Zapis formuły powinien wyglądać następująco:
=Table.AddColumn(#"Zmieniono
typ", "Główny region", each if List.Contains
({"Aleksandra", "Robert"}, [Sprzedawca]) then
[Świętokrzyskie] else if [Sprzedawca]="Dominik" then [Mazowieckie]
else null))
Zmieniliśmy
tylko część formuły – dla pierwszych 2 sprzedawców i po zatwierdzaniu formuły
otrzymamy zmienione dane przedstawione na rys. nr 10.
Rys. nr 10 – zapis funkcji List.Contains dla pierwszej reguły kolumny warunkowej
Ten sposób
jest łatwiejszy, ponieważ bezpośrednio w formule możemy wypisać wszystkich
sprzedawców z danego województwa. Musimy pamiętać, że pobraliśmy drugą tabelę z
danymi (zapytanie tRegiony_k), gdzie mamy listy sprzedawców z podziałem na
województwa. W zapisie formuły możemy się odwołać bezpośrednio do danych z tego
zapytania (do poszczególnych kolumn), zamiast wpisywać ręcznie nazwy
poszczególnych sprzedawców (rys. nr 11). Zapis formuły będzie wtedy wyglądał
następująco:
=Table.AddColumn(#"Zmieniono
typ", "Główny region", each if List.Contains (tRegiony_k
[Świętokrzyskie], [Sprzedawca]) then [Świętokrzyskie] else if
[Sprzedawca]="Dominik" then [Mazowieckie] else null))
Rys nr 11 – odwołanie do kolumny Świętokrzyskie z zapytania tRegiony_k
Po
zatwierdzeniu formuły otrzymamy dane, gdzie każde wystąpienie sprzedawcy z
regionu świętokrzyskiego zostanie rozpoznane. To odwołanie działa dla pierwszej
reguły, którą stworzyliśmy dla kolumny warunkowej. Analogicznie możemy zmienić drugą
regułę – dla regionu Mazowieckiego. Zapis formuły będzie wyglądał następująco:
=Table.AddColumn(#"Zmieniono
typ", "Główny region", each if List.Contains (tRegiony_k
[Świętokrzyskie], [Sprzedawca]) then [Świętokrzyskie] else if List.Contains
(tRegiony_k [Mazowieckie] then [Mazowieckie] else null))
Power Query
przeliczy dane po zatwierdzeniu kolumny i otrzymamy dane przedstawione na rys.
nr 12.
Rys. nr 12 – dane po użyciu w zapisie formuły funkcji List.Contains
W danych
mamy jednego sprzedawcę (Beata), który nie znajduje się na żadnej z list.
Formuła zadziała tak, że otrzymamy dla tego sprzedawcy wartość null. Dzieje się
tak dlatego, że w kolumnie warunkowej wpisaliśmy, że jeśli warunki nie zostaną
spełnione kolumna warunkowa ma nam zwrócić wartość null ( parametr W przeciwnym
razie na rys. nr 7).
Tak
przekształcone dane możemy załadować do Excela za pomocą polecenia Zamknij i
załaduj do z karty Narzędzia
główne (rys. nr 13).
Rys. nr 13 – polecenie Zamknij i załaduj do
Otworzy nam
się okno Importowania danych, gdzie wybieramy sposób wyświetlania danych jako
Tabela i wskazujemy miejsce ich wstawienia – konkretny arkusz oraz wskazujemy
konkretną komórkę. Tak ustawione parametry importowania danych zatwierdzamy
przyciskiem OK (rys. nr 14).
Rys. nr 14 – okno Importowania danych
Otrzymamy
dane zaimportowane do Excela i przedstawione na rys. nr 15.
Rys. nr 15 – Dane zaimportowane do Excela
Jak widać na
rysunku powyżej dane z odpowiednich kolumn są pobierane do kolumny warunkowej
Główny region.
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.
Rys. nr 1 – Przykładowe dane do zadania
Przykładowe
dane musimy zaczytać do Power Query za pomocą polecenia Z tabeli/ zakresu
z karty Dane (rys. nr 2).
Rys. nr 2 – polecenie Z tabeli/ zakresu
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).
Rys. nr 3 – polecenie Zamienianie wartości
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).
Rys. nr 4 – okno Zamieniania wartości
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.
Rys. nr 5 – Zamienione dane
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).
Rys. nr 6 – ścieżka dostępu do polecenia Test przed ogranicznikiem
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).
Rys. nr 7 – okno Testu przed ogranicznikiem
Otrzymamy
wyodrębnione dane z nazwami miast, po usunięciu niepotrzebnego tekstu
przedstawioną na rys. nr 8.
Rys. nr 8 – Wyodrębnione dane
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).
Rys. nr 9 – ścieżka dostępu do polecenia Przycięcie
Polecenie
Przycięcie usuwa zbędne spacje na końcu tekstu. Otrzymamy przycięte dane
przedstawione na rys. nr 10.
Rys. nr 10 – przycięte dane (po usunięciu spacji na końcu tekstu)
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).
Rys. nr 11 – okno Zamieniania wartości
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).
Rys. nr 12 – Zmiana nazwy kolumny
Otrzymamy
dane przedstawione na rys. nr 13.
Rys. nr 13 – Dane po przekształceniach
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).
Rys. nr 14 – polecenie Zamknij i załaduj do
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).
Rys. nr 15 – okno Importowania danych
Otrzymamy
dane wstawione do Excela z wyciągniętymi nazwami miast z całych adresów
przedstawione na rys. nr 16.
Rys. nr 16 – Dane wstawione do Excela
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 będziemy kontynuować rozwiązywanie zadań z Matury z
informatyki 2018. Dziś rozwiążemy zadanie nr 5.4 w Power Query. Rozwiązanie
tego zadania pomogł mi znaleźć Bill Szysz. Był on w stanie rozwiązać całe
zadanie w jednym zapytaniu, lecz okazało się to bardzo skomplikowane. W jego
rozwiązaniu część zadania wykonano w Power Query a wyciągnięcie samych wyników
nastąpiło w Excelu. Nam zależy aby całe zadanie rozwiązać w Power Query.
Rozbijemy zadanie na kilka zapytań, aby łatwiej znaleźć rozwiązanie.
Zadanie nr
5.4 opiera się o cykl pracy zbiornika retencyjnego. W pierwszym kroku zaczytamy
dane z tabeli w Excelu. Wybieramy polecenie Z tabeli/ zakresu z karty Dane
(rys. nr 1).
rys. nr 1 — polecenie Z tabeli/zakresu
Otworzy nam
się Edytor zapytań Power Query z wczytanymi danymi z tabeli przedstawiony na
rys. nr 2.
rys. nr 2 — Edytor zapytań Power Query z wczytanymi danymi
Dane te
musimy odpowiednio przekształcić. W pierwszym kroku musimy zmienić typ danych,
możemy to zrobić usuwając słowo time z formuły w pasku formuły (zaznaczone na
niebiesko na rys. nr 3). Power Query automatycznie wybrał typ danych data i
czas, a nam czas nie jest potrzebny, interesuje nas tylko data.
rys. nr 3 — Zmiana w formule — usunięcie czasu z daty
Otrzymamy
dane ze zmienionym typem danych w kolumnie Data przedstawione na rys. nr 4.
rys. nr 4 — zmieniony typ danych w kolumnie Data
Nas interesuje tylko kolumna Woda m3. Klikamy prawym przyciskiem myszy na tytuł kolumny Woda m3 i z podręcznego menu wybieramy polecenie Usuń inne kolumny (rys. nr 5).
rys. nr 5 — polecenie Usuń inne kolumny
Jeśli
skorzystamy z powyższego polecenia Power Query użyje funkcji
Table.SelectColumn, która zwraca nam tabelę. Nasze zapytanie nazywa się tDane6,
zmienimy jego nazwę w Ustawieniach zapytania na tWoda (rys. nr 6).
rys. nr 6 — zmiana nazwy zapytania w Ustawieniach zapytania
Ikonka przy
nazwie zapytania oznaczona strzałką na rys. nr 7 wskazuje nam, że nasze dane
mają formę tabeli.
rys. nr 7 — dane w formie tabeli
My nie
potrzebujemy tabeli, więc musimy zmienić użytą formułę, czyli zamiast funkcji Table.SelectColumns
powinniśmy użyć funkcji Table.Column. Zapis formuły powinien wyglądać
następująco:
=Table.Column
(#"Zmieniono typ", "Woda m3")
Otrzymamy
dane w postaci listy przedstawione na rys. nr 8.
rys. nr 8 — dane w postaci listy
Aby mieć
pewność, że ta lista się zmieni, tzn. nie zmieni się kolejność elementów musimy
dołożyć dodatkową funkcję o nazwie List.Buffer. Zapis formuły powinien
wyglądać następująco:
Funkcja List.Buffer
sprawia, że nasza lista nie ulegnie zmianie, tzn. że w tej liście mamy ilość
wody wpływającej do zbiornika każdego kolejnego dnia i kolejność wpływów wody
nie może ulec zmianie. Aby mieć jasne informacje, że dany krok odpowiada za
przekształcenie danych z tabeli w listę, zmieniamy sobie nazwę kroku Usunięto
inne kolumny na LWoda w Ustawieniach zapytania za pomocą klawisza F2 (rys. nr 9).
rys. nr 9 — zmiana nazwy kroku
Zmieniamy
nazwę kroku, ponieważ w późniejszym etapie będziemy się do niego odwoływać.
Kolejnym
krokiem jest policzenie ilości wierszy w danych. Ze względu na to iż
zmieniliśmy typ danych (nasze dane już nie są tabelą), nie możemy korzystać z
operacji przekształcania danych na karcie Przekształć. Musimy dodać kolejny
krok za pomocą ikonki fx przy pasku formuły, ponadto ten krok musimy napisać
samodzielnie. Skorzystamy tutaj z funkcji Table.RowCount, pamiętając o
użyciu odpowiedniej wielkości liter, ponieważ Power Query jest case sensitive.
W funkcji tej musimy się odwołać do kroku, w którym mamy jeszcze cała tabelę,
czyli u nas do kroku Zmieniono typ. Klikamy na nazwę kroku, przechodzimy do
edycji nazwy kroku za pomocą klawisza F2 a następnie kopiujemy jego nazwę za
pomocą skrótu klawiszowego Ctrl+C. Należy pamiętać, aby przed wklejeniem nazwy
kroku wpisać znak hashtag (#) ponieważ w nazwie kroku występuje spacja. Zapis
formuły powinien wyglądać następująco:
=Table.RowCount
(#"Zmieniono typ")
Otrzymamy
ilość wierszy w naszych danych przedstawioną na rys. nr 10.
rys. nr 10 — ilość wierszy w danych
Ilość wierszy będzie nam potrzebna do następnego, najtrudniejszego kroku, gdzie za pomocą funkcji List.Generate wyznaczymy listę rekordów. Funkcja ta ma 4 argumenty, więcej szczegółów na temat funkcji przedstawia rys. nr 11.
rys. nr 11 — informacje o funkcji List.Generate
Pierwszym argumentem
są wartości początkowe, czyli wartość z pierwszego wiersza, drugi argument to
warunek, przy którym zatrzymujemy generowanie listy, a trzeci to sposób w jaki
przekształcimy dane aby otrzymać kolejne wartości. Działanie funkcji wyjaśnimy
na prostym przykładzie przedstawionym na rys. nr 12.
rys. nr 12 — przykładowe argumenty funkcji List.Generate
Zaczynami
liczenie od wartości 10, czyli początkową wartością jest liczba 10. Pierwszy
warunek jest taki, że wykonujemy obliczenia dopóki ta wartość jest większa od
0, drugi warunek to odjęcie wartości 1 na każdym kroku. Taka formuła funkcji
generuje listę wartości od 10 do 1 (rys. nr 13).
rys. nr 13 — wynik działania przykładowej funkcji z rysunku powyżej
W naszym
zadaniu będziemy korzystać z dużo bardziej skomplikowanej formuły, ponieważ
musimy wygenerować dużo więcej danych, które muszą spełnić określone warunki
(rys. nr 14).
rys. nr 14 — zapis funkcji do zadania 5.4
Pierwsze
dwie linijki formuły z rysunku nr 14 to pierwszy argument funkcji, czyli
wartości początkowe. Zapis w nawiasach kwadratowych oznacza, że mamy do
czynienia z rekordem. Odwołujemy się do poszczególnych kolumn, najpierw do
kolumny Data (początkowa data to 31.12.2007), której odpowiada wartość z
kolumny Woda m3, czyli wartość 0 dla tej daty. Stan= 500000 to stan wody w
zbiorniku na początku obliczeń. W danych do zadania mamy informację, że należy
wylać ze zbiornika 2% stanu wody z dnia mierzenia, stąd wartość Wylać=10000. Są
to podstawowe kolumny, których potrzebujemy. Druga linijka (wartości _2) to
informacje do rozwiązania trzeciego podpunktu zadania 5.4 z matury z
informatyki. Wartość i jest wartością pomocniczą, zliczającą w którym aktualnie
jesteśmy wierszu. Zapis formuły powinien wyglądać następująco:
Musimy zmienić nazwę kroku Niestandardowe 1, w którym obliczaliśmy ilość wierszy, na RowCount (Ustawienia zapytania) – rys. nr 15.
rys. nr 15 — zmiana nazwy kroku
Jest to
warunek, że tworzymy listę dopóki nie wygenerujemy wszystkich wartości z kroku
RowCount, czyli wszystkich dni. Ma zostać spełniony warunek, że i jest mniejsze
od ilości wierszy +1. Jest to nasz drugi argument funkcji. Warunek powinien
wyglądać następująco:
each [i]
< RowCount+1
Trzeci
argument funkcji obejmuje wszystkie obliczenia jakie musimy wykonać w zadaniu.
W kolejnym kroku wartość z kolumny Date jest równa wartości z kolumny Date z
poprzedniego wiersza powiększona o 1. Korzystamy tutaj z funkcji Date.AddDays,
czyli dodajemy dni do wiersza powyżej. Wartość w kolumnie Woda m3 jest równa
wartości z kroku LWoda dla określonego wiersza i. Stan wody jest równy stanowi
wody z wcześniejszego kroku pomniejszony o ilość wody, którą należało wylać
oraz powiększony o ilość dowy jaka włynęła w danym dniu (Woda m3).
Warunek
ilości wylewanej wody polega na tym, że jeśli stan zbiornika przekracza 1000000 m³ wody to trzeba wylać tą nadwyżkę (ilość która przekracza 1000000 m³), a
następnego dnia rano wylać dodatkowo 2% stanu w momencie pomiaru. W przeciwnej
sytuacji, czyli kiedy zbiornik nie jest przepełniony to należy wylać tylko 2%
stanu zbiornika z momentu pomiaru. Wartości te mają być zaokrąglone w górę,
czyli użyjemy tutaj funkcji Number.RoundUp.
Podobne
obliczenia wykonamy dla Stanu_2, gdzie nie wylewamy wody jeśli przekroczymy
1000000 m³ wody w zbiorniku, ale zawsze wylewamy te 2% stanu z czasu pomiaru.
Cały drugi warunek powinien wyglądać następująco:
each [
Date=Date.AddDays ([Date], 1),
# "Woda m3" = LWoda { [i]
},
Stan = [Stan] – [Wylać] + #
"Woda m3",
Wylać = if Stan > 1000000 then (Stan – 1000000) + Number.RoundUp (0,02* ([Stan] – [Wylać] + # "Woda m3")) else Number.RoundUp (0,02* ([Stan] – [Wylać] + # "Woda m3")),
Całą formułę
przedstawioną na rys. nr 14 zaznaczamy i kopiujemy za pomocą skrótu
klawiszowego Ctrl+C, a następnie w Power Query dodajemy nowy krok za pomocą
ikonki fx i wklejamy skopiowaną formułę do paska formuły za pomocą skrótu
klawiszowego Ctrl+V. Zatwierdzamy przyciskiem Enter i otrzymamy dane
przedstawione na rys. nr 16.
rys. nr 16 lista rekordów
Otrzymaliśmy
listę rekordów, zawierającą informacje o dacie, stanie wody danego dnia, ilości
wody jaką musimy wylać itd., przedstawioną na rys. nr 17
rys. nr 17 — każdy rekord zawiera szczegółowe dane
W kolejnym
kroku musimy przekształcić nasze dane z listy na tabelę, skorzystamy tutaj z
polecenia Do tabeli z karty Przekształć (rys. nr 18).
rys. nr 18 — konwertowanie listy do tabeli
Otworzy nam
się okno Do tabeli, gdzie musimy wybrać ogranicznik, jakim mają być oddzielone
dane (wybieramy Brak) oraz w polu Sposób obsługi dodatkowych kolumn wybieramy
opcję Pokaż jako błędy. Tak ustawione parametry konwertowania danych do tabeli
zatwierdzamy przyciskiem OK (rys. nr 19).
rys. nr 19 — okno Do tabeli — parametry konwertowania
Otrzymamy
listę rekordów przekonwertowaną na tabelę co widać na rys. nr 20.
rys. nr 20 — tabela z rekordami
Nasze
rekordy dalej wyglądają po rozwinięciu tak samo jak dla listy ale tym razem
zapisane są w formie tabeli. Dzięki zmianie typu danych na tabelę możemy
rozwinąć te dane. Klikamy na ikonkę ze strzałkami obok nazwy kolumny Column1,
zaznaczamy wszystkie kolumny (oprócz kolumny i, która była tylko kolumną
pomocniczą) i odznaczamy opcję Użyj oryginalnej nazwy kolumny jako prefiksu,
następnie zatwierdzamy rozwijanie danych przyciskiem OK (rys. nr 21).
rys. nr 21 — rozwijanie rekordów tabeli
Otrzymamy
rozwinięte dane w postaci tabeli przedstawione na rys. nr 22.
rys. nr 22 — rozwinięte dane w tabeli
Kolumny Stan
i Wylać są nam potrzebne do rozwiązania podpunktu a i b z zadania a kolumny
Stan_2 i Wylać_2 do rozwiązania podpunktu c. Ostatnim etapem pracy nad danymi w
Power Query jest dopasowanie typu danych. Kolumna Date powinna być typu Data, a
pozostałe kolumny typu Liczba całkowita (rys. nr 23).
rys. nr 23 — zmiana typu danych w poszczególnych kolumnach
Dla każdej
części zadania zrobimy sobie osobne zapytanie, bo uda nam się wykorzystać
proste polecenia ze wstążki. Tak przygotowane dane możemy załadować do Excela,
korzystając z polecenia Zamknij i załaduj do z karty Narzędzia główne
(rys. nr 24).
rys. nr 24 — polecenie Zamknij i załaduj do
W Excelu
otworzy nam się okno Importowania danych, gdzie wybieramy sposób wyświetlania
danych jako Tabela oraz wskazujemy miejsce wstawienia danych – konkretna
komórka w istniejącym arkuszu. Tak ustawione parametry wstawienia danych
zatwierdzamy przyciskiem OK (rys. nr 25).
rys. nr 25 — okno Importowania danych
Otrzymamy
dane zaczytane do Excela przedstawione na rys. nr 26.
rys. nr 26 — dane zaczytane do Excela
Mamy do
rozwiązania trzy części zadania przedstawione na rys. nr 27. Pierwszy podpunkt zadania
polega na wyznaczeniu dnia, w którym pierwszy raz wypuszczono nadmiar wody po
przepełnieniu.
rys. nr 27 — treść zadań do wykonania
Aby uzyskać
rozwiązanie w Power Query klikamy dwukrotnie na zapytanie tWoda w zakładce
Zapytania i połączenia, aby przejść do Edytora zapytań Power Query. Otworzy nam
się Edytor zapytań z naszymi danymi, gdzie klikamy prawym przyciskiem myszy na
nazwę zapytania tWoda i z podręcznego menu wybieramy polecenie Odwołanie
(rys. nr 28).
rys. nr 28 — polecenie Odwołanie
Powstanie
zapytanie tWoda (2), któremu zmieniamy nazwę na OdpA w Ustawieniach zapytania.
Nasze zadanie polega na znalezieniu daty, kiedy w zbiorniku było powyżej
1000000 m3 wody, czyli wystarczy nałożyć filtr po kolumnie Stan.
Rozwijamy menu klikając na ikonkę z trójkątem przy nazwie kolumny i rozwijamy
polecenie Filtry liczb, następnie wybieramy polecenie Większe niż
(rys. nr 29).
rys. nr 29 — ścieżka dostępu do polecenia Większe niż
Otworzy nam
się okienko Filtrowania wierszy, gdzie w polu jest większe niż wpisujemy
wartość od której chcemy otrzymać większą wartość (wpisujemy 1000000). Tak
ustawiony próg zatwierdzamy przyciskiem OK (rys. nr 30).
rys. nr 30 — okno Filtrowania wierszy
Otrzymamy przefiltrowane dane tylko z wierszami, w których stan wody przekraczał 1000000 m3 wody przedstawione na rys. nr 31 .
rys. nr 31 — przefiltrowane dane
Interesuje
nas pierwszy dzień, w którym ilość wody w zbiorniku przekroczyła 1000000 m3.
Z naszych danych wynika, że tym dniem jest 18.04.2019 ale musimy pamiętać że
pomiar danego dnia odbywa się tuż po północy, więc faktycznie jest to już
19.04.2019. Możemy to rozwiązać klikając prawym przyciskiem myszy na pierwszą
komórkę z datą i z podręcznego menu wybrać polecenie Wyszczególnij (rys.
nr 32).
rys. nr 32 — polecenie Wyszczególnij w podręcznym menu
Otrzymamy
wyszczególnioną datę 18.04.2019. W pasku formuły mamy zapis, że został
wyciągnięty wiersz o indeksie 0, ponieważ Power Query zaczyna numerację wierszy
od 0, a nie jak Excel od 1 oraz informację z jakiej kolumny została wyciągnięta
informacja (rys. nr 33).
rys. nr 33 — wyszczególnione dane
Problem
polega na tym, że dalej wyświetla się nam 18.04.2019 a wiemy że poprawną
odpowiedzią jest 19.04.2019. Aby otrzymać prawidłową odpowiedź w formule możemy
dodać jeden dzień. W celu dodania jednego dnia musimy skorzystać z funkcji #duration
a następnie w nawiasie wpisać ilość
dni jakie chcemy dodać oraz ilość godzin, minut i sekund (1,0,0,0). Zapis całej
formuły powinien wyglądać następująco:
Po
zatwierdzeniu powyższej formuły otrzymamy prawidłową odpowiedź przedstawioną na
rys. nr 34.
rys. nr 34 — działanie funkcji #duration
Uzyskaliśmy
odpowiedź na pierwszą część zadania, którą teraz możemy załadować do Excela
korzystając z polecenia Zamknij i załaduj do z karty Narzędzia główne
(jak na rys. nr 24). Otworzy nam się okno Importowania danych, gdzie wybieramy
sposób wyświetlania danych jako Tabela oraz wskazujemy gdzie chcemy wstawić
dane – konkretna komórka w istniejącym arkuszu. Tak ustawione parametry
importowania danych zatwierdzamy przyciskiem OK (rys. nr 35).
rys. nr 35 — okno Importowania danych do Excela
Otrzymamy
odpowiedź na pierwszą część zadania wstawioną do Excela przedstawioną na rys.
nr 36.
rys. nr 36 — rozwiązanie pierwszej części zadania
Druga część
zadania polega na podaniu liczby dni, kiedy poziom wody w zbiorniku przekraczał
800 000 m3. Po raz kolejny klikamy dwukrotnie na zapytanie
tWoda w panelu bocznym Zapytania i połączenia i przechodzimy do Edytora zapytań
Power Query. Następnie robimy odwołanie do tego zapytania klikając na jego
nazwę prawym przyciskiem myszy i wybierając z podręcznego menu polecenie Odwołanie
(jak na rys. nr 28). W ustawieniach zapytania zmieniamy jego nazwę na OdpB. Aby
uzyskać wyniki stanu wody powyżej 800 000 m3 wystarczy
przefiltrować dane. Jak w rozwiązaniu pierwszej części zadania klikamy na
ikonkę z trójkątem obok nazwy kolumny Stan, następnie rozwijamy polecenie Filtry
liczb i wybieramy polecenie Większe niż (jak na rys. nr 29). Otworzy
nam się okno Filtrowania wierszy, gdzie w polu jest większe niż wpisujemy naszą
wartość – 800000. Ustawiony próg zatwierdzamy przyciskiem OK (rys. nr 37).
rys. nr 37 — okno Filtrowania wierszy — parametry filtrowania
Otrzymamy
wszystkie wiersze, dla których stan wody przekraczał 800000 m3
przedstawione na rys. nr 38.
rys. nr 38 — przefiltrowane dane
Aby otrzymać
ilość tych wierszy zaznaczamy kolumnę Data i rozwijamy polecenie Statystyka
(punkt 2 na rys. nr 39) z karty Przekształć (punkt 1), a następnie
wybieramy polecenie Zliczwartości (punkt 3).
rys. nr 39 — ścieżka dostępu do polecenia Zlicz wartości
Otrzymamy
liczbę wierszy, gdzie stan wody przekraczał 800 000m3
przedstawioną na rys. nr 40.
rys. nr 40 — odpowiedź do drugiej części zadania
Możemy
zauważyć że zapytania z odpowiedziami do punktu A i B różnią się ikonkami. OdpA
jest datą, a OdpB jest liczbą co widać na rys. nr 41.
rys. nr 41 — typy danych w odpowiedziach do poszczególnych części zadania 5.4
Uzyskaliśmy
odpowiedź na drugą część zadania, którą teraz możemy załadować do Excela
korzystając z polecenia Zamknij i załaduj do z karty Narzędzia główne
(jak na rys. nr 24). Otworzy nam się okno Importowania danych, gdzie wybieramy
sposób wyświetlania danych jako Tabela oraz wskazujemy gdzie chcemy wstawić
dane – konkretna komórka w istniejącym arkuszu. Tak ustawione parametry
importowania danych zatwierdzamy przyciskiem OK (jak na rys. nr 35).
Otrzymamy
dane wstawione do Excela przedstawione na rys. nr 42.
rys. nr 42 — odpowiedź na drugą część zadania w Excelu
Trzecia
część zadania polega na podaniu największego stanu wody w zbiorniku, gdyby
zrezygnować z wylewania jej nadmiaru po przekroczeniu 1000000m3. W
zadaniu tym będziemy korzystać z kolumny Stan_2. Przechodzimy do Edytora
zapytań Power Query klikając dwukrotnie na zapytanie tWoda w Excelu. Po raz
kolejny robimy odwołanie do tego zapytania klikając na jego nazwę prawym
przyciskiem myszy i wybierając z podręcznego menu polecenie Odwołanie
(jak na rys. nr 28). W ustawieniach zapytania zmieniamy jego nazwę na OdpC. Aby
uzyskać rozwiązanie zadania wystarczy znaleźć wartość maksymalną w kolumnie
Stan_2. Zaznaczamy kolumnę Stan_2, następnie rozwijamy polecenie Statystyka
(punkt 2 na rys. nr 43) z karty Przekształć (punkt 1) i wybieramy
polecenie Maksimum (punkt 3).
rys. nr 43 — ścieżka dostępu do polecenia Maksimum
Otrzymamy
maksymalny stan zbiornika przedstawiony na rys. nr 44.
rys. nr 44 — odpowiedź na trzecią część zadania — maksymalny stan zbiornika
Uzyskaliśmy
odpowiedź na trzecią część zadania, którą teraz możemy załadować do Excela korzystając
z polecenia Zamknij i załaduj do z karty Narzędzia główne (jak na
rys. nr 24). Otworzy nam się okno Importowania danych, gdzie wybieramy sposób
wyświetlania danych jako Tabela oraz wskazujemy gdzie chcemy wstawić dane –
konkretna komórka w istniejącym arkuszu. Tak ustawione parametry importowania
danych zatwierdzamy przyciskiem OK (jak na rys. nr 35).
Otrzymamy
dane wstawione do Excela przedstawione na rys. nr 45.
rys. nr 45 — odpowiedzi na trzy części zadania zaczytane do Excela
Na tym
kończymy rozwiązywanie zadań z matury z informatyki z 2018 roku.
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ę automatycznym wybieraniem kolumn z tabeli z listy.
W Power
Query odcinku 48 pokazywaliśmy jak ręcznie z dużej ilości danych wybrać
konkretne kolumny ( https://www.youtube.com/watch?v=sy0ZAca-0qw ). Pod tym postem otrzymaliśmy
pytanie od widza, jak to zrobić bazując na liście, czyli zakładamy że mamy
listę kolumn, które chcemy wyciągnąć z większej tabeli z danymi.
Zadanie to
wykonamy na przykładowych danych z rysunku nr 1.
rys. nr 1 — Przykładowe dane
Okazuje się to bardzo proste. Wystarczy że mamy listę kolumn, których potrzebujemy. Ustawiamy aktywną komórkę w obszarze tej listy i zaczytujemy dane do Power Query za pomocą polecenia Z tabeli/ zakresu z karty Dane (rys. nr 2).
rys. nr 2 — Z tabeli/zakresu
Otworzy nam
się Edytor zapytań Power Query z wczytaną tabelą tListaKolumn, która zawiera
wartości null w pustych komórkach. Usunięciem tych wartości zajmiemy się w
późniejszym etapie (rys. nr 3).
rys. nr 3 — Edytor zapytań Power Query z wczytaną tabelą tListaKolumn
Co istotne
nasze zapytanie zostało wczytane jako tabela, co widać w Liście zapytań
(zaznaczone czerwoną strzałką na rys. nr 4).
rys. nr 4 — dane wczytane do Power Query jako Tabela
Do dalszych działań potrzebujemy listy a nie tabeli. W tym celu wybieramy ikonkę polecenia Konwertuj na listę z karty Przekształć (rys. nr 5).
rys. nr 5 — polecenie Konwertuj na listę
Otrzymamy
przekonwertowane dane na listę przedstawione na rys. nr 6.
rys. nr 6 — Przekonwertowane dane na listę
Na tym etapie pracy wykonaliśmy wszystko, co było potrzebne z naszymi danymi. Tak przygotowane dane musimy załadować do Excela za pomocą polecenia Zamknij i załaduj do z karty Narzędzia główne (rys. nr 7).
rys. nr 7 — polecenie Zamknij i załaduj do
Otworzy się
nam okno Importowania danych, gdzie wybieramy sposób wyświetlania danych jako
Połączenie, czyli zaznaczamy checkbox przy opcji Utwórz tylko połączenie. Tak
ustawione opcje importowania danych zatwierdzamy przyciskiem OK (rys. nr 8).
rys. nr 8 — okno Importowania danych
W kolejnym etapie pobieramy właściwe połączenie, które w naszym przykładzie jest plikiem CSV. Wybieramy polecenie Z pliku tekstowego/CSV z karty Dane (rys. nr 9).
rys. nr 9 — polecenie Z pliku tekstowego /CSV
Otworzy się
nam okno Importowania danych, gdzie musimy znaleźć interesujący nas plik,
zaznaczyć go i zatwierdzić nasz wybór przyciskiem OK (rys. nr 10).
rys. nr 10 — Okno Importowania danych
W pliku CSV
mamy dużą ilość danych, z których chcemy wyciągnąć tylko kolumny z naszej
listy. Otworzy nam się okno z tymi danymi, gdzie klikamy przycisk Edytuj, aby
przejść do edycji tego zapytania (rys. nr 11).
rys. nr 11 — polecenie Edytuj zapytanie
Otworzy nam
się edytor zapytań Power Query z wczytanymi wszystkimi danymi przedstawiony na
rys. nr 12.
rys. nr 12 — Edytor zapytań z wczytanymi danymi z pliku CSV
Przykładowo możemy usunąć niepotrzebne kolumny, czyli zaznaczyć interesujące nas kolumny, następnie kliknąć prawym przyciskiem myszy na dowolną z nich i z podręcznego menu wybrać polecenie Usuń inne kolumny (rys. nr 13).
rys. nr 13 — polecenie Usuń inne kolumny
Nie ma znaczenia, które kolumny usuniemy, o ile Power Query użyje funkcji Table.SelectColumns, która ma w zapisie formuły listę kolumn, które chcemy zachować (rys. nr 14).
rys. nr 14 — argumenty funkcji Table.SelectColumns
W Power Query możemy się odwołać do innego zapytania, czyli w zapisie funkcji zastąpić listę kolumn, które zostały wpisane automatycznie, zapytaniem z listą, które przygotowaliśmy sobie na początku pracy (zapytanie tListaKolumn). Zapis funkcji powinien wyglądać następująco: (rys. nr 15)
rys. nr 15 — Zapis funkcji Table.SelectColumns z odwołaniem do zapytania z listą
Po
zatwierdzeniu formuły otrzymamy błąd, wynikający z wartości null na liście
(rys. nr 16). Power Query nie może przekonwertować wartości null.
rys. nr 16 — Błąd funkcji wynikający z wartości null na liście
Aby usunąć błąd przechodzimy do zapytania tListaKolumn, następnie co istotne w kroku poprzedzającym krok Lista wybór (krok Zmieniono typ), nakładamy na dane filtr. Rozwijamy ikonkę trójkąta w nagłówku kolumny z następnie wybieramy polecenie Usuń puste (rys. nr 17).
rys. nr 17 — Filtrowanie listy za pomocą polecenia Usuń puste
Pojawi nam się
komunikat Wstawianie kroku, w którym musimy zatwierdzić nasze działanie
przyciskiem Wstaw (rys. nr 18).
rys. nr 18 — Komunikat o wstawieniu nowego kroku
Dzięki temu
krokowi wartości null zostały usunięte z listy. Otrzymamy listę przedstawioną
na rys. nr 19.
rys. nr 19 — Odfiltrowana lista kolumn
Nasza lista
potrzebnych kolumn nie zawiera już wartości null i dzięki temu jak przejdziemy
do naszego zapytania FoodMart Klienci, błędu nie będzie. Wpisana wcześniej
formuła z odwołaniem do zapytania tListaKolumn zadziała prawidłowo i otrzymamy
dane zawierające kolumny z listy (rys. nr 20).
rys. nr 20 — prawidłowe działanie funkcji Table.SelectColumns
Tak przygotowane dane możemy załadować do Excela za pomocą polecenie Zamknij i załaduj do z karty Narzędzia główne (analogicznie jak na rys. nr 7).
Otworzy nam
się okno Importowania danych, gdzie wybieramy sposób wyświetlania danych jako
Tabela, następnie wskazujemy miejsce wstawienia danych – Istniejący arkusz oraz
wskazujemy konkretną komórkę. Tak ustawione parametry wstawienia danych do
Excela zatwierdzamy przyciskiem OK (rys. nr 21).
rys. nr 21 — Okno importowania danych
Otrzymamy
dane wczytane do Excela zawierające tylko kolumny z listy, przedstawione na
rys. nr 22.
rys. nr 22 — Dane zaimportowane do Excela
Tabela wczytana z Power Query działa dynamicznie. Przykładowo możemy zmienić nasze dane w liście kolumn (zmieniamy kolumnę Nazwisko na Adres i dokładamy nową kolumnę Liczba dzieci), następnie odświeżyć dane z Power Query klikając prawym przyciskiem myszy na dowolną komórkę z obszaru tabeli i wybierając polecenie Odśwież (rys. nr 23).
rys. nr 23 — polecenie Odśwież
Po
odświeżeniu danych otrzymamy zmienione dane, w których kolumna Nazwisko została
zastąpiona kolumną Adres i została dołożona nowa kolumna Liczba dzieci (rys. nr 24).
rys. nr 24 — automatycznie zaktualizowane dane
Podsumowując
stworzyliśmy tabelę z kolumnami z listy, która działa dynamicznie i zawiera
kolumny, które aktualnie są na liście.
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.