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
dzisiejszym poście kontynuujemy rozwiązywanie zadań z Matury z informatyki
2018, zajmiemy się rozwiązaniem zadania nr 5.3 w Power Query. Treść zadania
została przedstawiona na rys. nr 1.
rys. nr 1 — treść zadania 5.3 z informatyki z Matury 2018
Zadanie
polega na stworzeniu zostawienia wpływów wody do zbiornika retencyjnego w
kolejnych miesiącach roku 2008. Zaczynamy od włączenia sobie okna Zapytania
i połączenia, aby mieć dostęp do wcześniej wczytanych danych (które
załadowaliśmy sobie do rozwiązania poprzednich zadań). Rys. nr 2.
rys. nr 2 — polecenie Zapytania i połączenia
Klikamy na
nazwę zapytania Woda, gdzie mamy wczytane dane z pliku tekstowego zawierającego
ilości dopływającej wody do zbiornika retencyjnego. Otworzy nam się Edytor
zapytań Power Query z wczytanymi danymi, przedstawionymi na rys. nr 3.
rys. nr 3 — edytor zapytań z wczytanymi danymi
Po raz
kolejny będziemy się odwoływać do danych z tego zapytania, czyli klikamy prawym
przyciskiem myszy na nazwę zapytania Woda a następnie z podręcznego menu
wybieramy polecenie Odwołanie (rys. nr 4).
rys. nr 4 — ścieżka dostępu do polecenia Odwołanie
Będziemy
pracować na zapytaniu woda(2). Interesuje nas konkretny rok (2008) i podział na
miesiące. W pierwszej kolejności wyciągniemy numer miesiąca z daty, czyli rozwijamy
polecenie Data (punkt 2 na rys. nr 5) z karty Dodaj kolumnę
(punkt 1), następnie rozwijamy polecenie Miesiąc (punkt 3) i wybieramy
polecenie Miesiąc (punkt 4).
rys. nr 5 — ścieżka dostępu do polecenia Miesiąc
Otrzymamy
dane z nową kolumną zawierającą numer miesiąca w roku przedstawione na rys. nr 6.
rys. nr 6 — Tabela z nową kolumną z numerem miesiąca
W kolejnym
etapie interesuje nas rok – potrzebujemy danych tylko z roku 2008. W tym celu
rozwijamy polecenie Data (punkt 2 na rys. nr 7) z karty Przekształć
(punkt 1), a następnie rozwijamy polecenie Rok (punkt 3) i wybieramy
polecenie Rok (punkt 4).
rys. nr 7 — ścieżka dostępu do polecenia Rok
Otrzymamy
przekształcone dane w kolumnie Data przedstawione na rys. nr 8.
rys. nr 8 — Dane z przekształconą kolumną Data
Na tym
etapie możemy przefiltrować dane w kolumnie Data. Klikamy ikonkę z trójkącikiem
przy nazwie kolumny Data, a następnie zaznaczamy checkbox przy roku 2008. Tak
ustawiony parametr filtru zatwierdzamy przyciskiem OK (rys. nr 9).
rys. nr 9 — filtrowanie danych w kolumnie Data
Otrzymamy
dane zawierające tylko rok 2008. Możemy ponadto zmienić kolejność kolumn, czyli
przeciągnąć nową kolumnę o nazwie Miesiąc w miejsce za kolumną Data. Otrzymamy
uporządkowane dane przedstawione na rys. nr 10.
rys. nr 10 — uporządkowane dane
Ponadto zmieniamy
nazwę kolumny Data na Rok. Kolejny etap będzie polegał na pogrupowaniu danych
miesiącami. Dodatkowo potrzebujemy wiersza z podsumowaniem, co w Power Query
jest trudniejsze niż standardowo w Excelu. Aby ułatwić sobie zadanie
zduplikujemy to, co do tej pory zrobiliśmy, czyli klikamy prawym przyciskiem
myszy na nazwę zapytania woda(2) i z podręcznego menu wybieramy polecenie Duplikuj
(rys. nr 11).
rys. nr 11 — polecenie Duplikuj
Otrzymamy
kolejne zapytanie o nazwie woda(3). W zapytaniu woda (2) zrobimy grupowanie po kolumnach
Rok i Miesiąc. W tym celu zaznaczamy kolumny Rok i Miesiąc przytrzymując
klawisz Ctrl, następnie wybieramy polecenie Grupowanie według z karty Narzędzia
główne (rys. nr 12).
rys. nr 12 — ścieżka dostępu do polecenia Grupowanie według
Otworzy nam
się okno grupowania według, gdzie dzięki temu że zaznaczyliśmy dwie kolumny
mamy od razu grupowanie zaawansowane. W polu Operacja wybieramy polecenie Suma,
w polu Kolumna wybieramy Woda m3, natomiast w polu Nazwa nowej kolumny
wpisujemy Przypływy. Tak ustawione parametry grupowania zatwierdzamy
przyciskiem OK (rys. nr 13).
rys. nr 13 — parametry Grupowania danych
Otrzymamy
pogrupowane (zsumowane) dane według miesięcy przedstawione na rys. nr 14.
Tabela zawiera w kolumnie Przypływy ilość wody jaka wpływa do zbiornika
retencyjnego w poszczególnych miesiącach roku 2008.
rys. nr 14 — Pogrupowane dane w kolumnie Przypływy
Analogiczne
działanie wykonamy w zapytaniu woda(3), ale tutaj zrobimy podsumowanie po całym
roku. Zaznaczamy tylko kolumnę Rok, następnie wybieramy polecenie Grupowanie
według z karty Narzędzia główne (jak na rys. nr 12).
Otworzy nam
się okno Grupowania według z typem grupowania podstawowym. W polu Operacja
wybieramy Sumę, w polu Kolumna wybieramy kolumnę Woda m3, natomiast w polu
Nazwa Nowej kolumny wpisujemy Przypływy. Tak ustawione parametry grupowania
zatwierdzamy przyciskiem OK (rys. nr 15).
rys. nr 15 — parametry Grupowania według
W zapytaniu
woda(3) otrzymamy podsumowane dane po cały roku 2008 przedstawione na rys. nr 16.
rys. nr 16 — dane pogrupowane według roku (zsumowane)
Teraz możemy
sobie dołączyć zapytania, w tym celu wybieramy polecenie Dołącz zapytania
z karty Narzędzia główne (rys. nr 17).
rys. nr 17 — ścieżka dostępu do polecenia Dołącz zapytania
Do zapytania
z podsumowaniem po roku i miesiącach (woda(2)) dołączamy zapytanie z
podsumowaniem po roku (woda(3)). Otworzy nam się okno Dołączanie, gdzie w polu
Tabela do dołączenia wybieramy zapytanie woda(3). Nasz wybór zatwierdzamy
przyciskiem OK (rys. nr 18).
rys. nr 18 — okno dołączania zapytań
Dzięki temu,
że w obu zapytaniach nazwaliśmy tak samo kolumnę z podsumowaniem (Przypływy) to
Power Query automatycznie połączył te kolumny w jedną. Otrzymamy połączone
zapytania przedstawione na rys. nr 19.
rys. nr 19 — połączone dane z dwóch zapytań
W kolumnie
Miesiąc dla podsumowania po roku otrzymaliśmy wartość null, ponieważ tej
kolumny nie było w naszym podsumowaniu w zapytaniu woda (3).
Dobrze
byłoby zamiast wartości null wpisać np. wartość tekstową suma. W Power Query
pojawia się problem, ponieważ dane w kolumnie Miesiąc zostały określone jako
typ liczbowy i kiedy podejmiemy próbę wpisania tekstu to Power Query będzie
zgłaszał sprzeciw. W cely wyjaśnienia problemu wybieramy polecenie Zamienianie wartości z karty Narzędzia główne (rys. nr 20).
rys. nr 20 — ścieżka dostępu do polecenia Zamienianie wartości
Otworzy nam
się okno Zamieniania wartości, gdzie w polu Wartość do znalezienia wpisujemy
null, natomiast w polu Zamień na wpisujemy Suma. Jeśli spróbujemy zatwierdzić
tę zmianę przyciskiem OK, Power Query zaprotestuje, co widać na rys. nr 21.
rys. nr 21 — parametry zamieniania wartości
Musimy
anulować okno Zamieniania wartości. Poradzić sobie tutaj możemy zmieniając typ
danych w kolumnie Miesiąc, czyli klikamy na ikonkę 123 przy nazwie kolumny
Miesiąc i wybieramy typ danych Tekst (rys. nr 22).
rys. nr 22 — zmiana typu danych na tekst
Po takiej
zmianie po raz kolejny wybieramy polecenie Zamienianie wartości z karty Narzędzia główne (jak na rys.
nr 20). Otworzy nam się okno Zamieniania wartości, gdzie już bez problemu
możemy wpisać parametry jak na rys. nr 21 i zatwierdzić je przyciskiem OK.
Otrzymamy dane przedstawione na rys. nr 23.
rys. nr 23 — zamienione wartości w danych
Tak
przygotowane dane możemy załadować do Excela, w tym celu wybieramy polecenie Zamknij
i załaduj do z karty Narzędzia główne (rys. nr 24).
rys. nr 24 — polecenie Zamknij i załaduj do
Otworzy nam
się okno Importowania danych w Excelu. Ponieważ mamy dwa zapytania nie możemy
ich od razu wstawić do Istniejącego arkusza, dlatego wybieramy opcję Utwórz
tylko połączenie i zatwierdzamy nasz wybór przyciskiem OK (rys. nr 25).
rys. nr 25 — okno Importowania danych
W panelu
bocznym Zapytania i połączenia mamy wszystkie zapytania wczytane jako
połączenie. Aby wiedzieć, które zapytanie jest tym właściwym klikamy na
zapytanie woda (2) i przechodzimy do edytora zapytań Power Query, gdzie
zmieniamy jego nazwę w polu Nazwa na Woda 5_3. Następnie kolejny raz musimy
załadować dane do Excela za pomocą polecenia Zamknij i załaduj z karty Narzędzia
główne. Zapytanie załaduje się jako połączenie. Na tym etapie z okienka Zapytań
i połączeń możemy załadować to konkretne zapytanie klikając na mnie prawym
przyciskiem myszy a następnie wybrać polecenie Załaduj do (rys. nr 26).
rys. nr 26 — polecenie Załaduj do
Otworzy nam
się po raz kolejny okno Importowania danych, gdzie tym razem możemy wybrać sposób
wyświetlania danych w skoroszycie jako Tabela oraz wskazać konkretną komórkę w
istniejącym arkuszu. Tak ustawione parametry zatwierdzamy przyciskiem OK (rys.
nr 27).
rys. nr 27 — okno Importowania danych
Otrzymamy
dane wczytane do Excela przedstawione na rys. nr 28.
rys. nr 28 — Dane wczytane do Excela
Dla lepszej
prezentacji danych możemy zmienić formatowanie w kolumnie Przypływy. Korzystając
ze skrótu klawiszowego Ctrl+1 otwieramy okno Formatowania komórek. Przechodzimy
na Kategorię Liczbowe, a następnie ustawiamy 0 miejsc po przecinku i zaznaczamy
checkbox przy opcji Użyj separatora. Tak ustawione parametry formatowania
zatwierdzamy przyciskiem OK (rys. nr 29).
rys. nr 29 — Formatowanie komórek
Kolejnym
etapem zadania jest stworzenie wykresu przypływów wody do zbiornika
retencyjnego. Zaznaczamy dane z kolumny Przypływy, ale bez komórki
podsumowującej dla całego roku a następnie wybieramy wykres kolumnowy z
karty Wstawianie (rys. nr 30).
rys. nr 30 — ścieżka dostępu do polecenia wykres kolumnowy
Pierwszą
rzeczą jaką poprawimy na standardowym wykresie, będzie pogrubienie kolumn.
Zaznaczamy serie na wykresie, a następnie korzystając ze skrótu klawiszowego
Ctrl+1, otworzymy panel Formatowania serii danych, gdzie możemy zmienić
szerokość odstępu między seriami (rys. nr 31).
rys. nr 31 — Formatowanie serii danych
W kolejnym
etapie musimy zmienić tytuł wykresu, czyli klikamy dwukrotnie na napis Tytuł
wykresu i zmieniamy jego nazwę na Przypkywy Wirki w roku 2008 [m3].
Aby w Excelu uzyskać indeks górny musimy napisać normalną 3, następnie ją
zaznaczyć i korzystając ze skrótu klawiszowego Ctrl+1, otworzyć okno Czcionki,
gdzie zaznaczmy check box przy opcji Indeks górny (rys. nr 32).
rys. nr 32 — indeks górny w oknie czcionka
Ponadto
potrzebujemy na wykresie zamieścić informacje przy osiach (co przedstawiają
dane osie). Od Excela 2013 klikamy na ikonę + w rogu wykresu i zaznaczamy
checkbox przy opcji Tytuły osi (rys. nr 33).
rys. nr 33 — Elementy wykresu (tytuły osi)
Tytuły osi
wstawiają się jako domyślne, czyli musimy je sami odpowiednio zmienić. Klikamy
dwukrotnie na tytuł osi i wpisujemy dla osi pionowej Woda m3,
natomiast dla osi poziomej Nr miesiąca. Otrzymamy poprawny wykres przedstawiony
na rys. nr 34
rys. nr 34 — poprawiony wykres Przypływów do zbiornika retencyjnego
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 2018 z
informatyki. Dziś zajmiemy się rozwiązaniem zadania nr 5.2. Treść zadania
została przedstawiona na rys. nr 1.
rys. nr 1 — treść zadania nr 5.2 z matury z informatyki 2018
Naszym
zadaniem jest znalezienie najdłuższego okresu, kiedy do zbiornika retencyjnego
codziennie dopływało co najmniej 10 000 metrów sześciennych wody. Kolejnym
krokiem jest znalezienie daty początkowej i końcowej tego okresu. Zadanie to
zostanie wykonane w Power Query. Dane bazowe mamy już zaczytane (zostały
zaczytane do poprzedniego zadania w Power Query odcinku 51). Rys. nr 2
rys. nr 2 — wczytane dane bazowe
Otwieramy nasze zapytanie w Edytorze zapytań Power Query. W pierwszym kroku musimy sobie przygotować dodatkowe zapytanie z tymi danymi, na którym będziemy pracować. W tym celu rozwijamy panel boczny Zapytania i klikamy prawym przyciskiem myszy na nazwę zapytania Woda a następnie wybieramy z podręcznego menu polecenie Odwołanie (rys. nr 3).
rys. nr 3 — polecenie Odwołanie z podręcznego menu
Otrzymamy
nowe zapytanie z naszymi danymi, którego nazwę zmienimy na Woda 5_2 we
właściwościach zapytania w polu Nazwa (rys. nr 4).
rys. nr 4 — zmiana nazwy zapytania
W pierwszym kroku musimy znaleźć okresy kiedy do zbiornika wpływa powyżej 10 tys. Metrów sześciennych wody. W tym celu wybieramy polecenie Kolumna warunkowa z karty Dodaj kolumnę (rys. nr 5).
rys. nr 5 — ścieżka dostępu do polecenia Kolumna warunkowa
Otworzy
nam się okno Dodawanie kolumny warunkowej, w którym musimy określić parametry
nowej kolumny. W polu Nazwa kolumny wybieramy kolumnę, którą chcemy sprawdzić,
czyli Woda m3. W polu Operator wybieramy rodzaj porównania, czyli w naszym
przykładzie Jest większe niż, w polu Wartość wpisujemy 10 000, ponieważ
szukamy okresów kiedy ilość wody wpływającej do zbiornika przekracza tę
wartość. W polu Wartość wyjściowa wpisujemy wartość 1, natomiast w polu W
przeciwnym wypadku – wartość 0. Tak ustawione parametry zatwierdzamy przyciskiem
OK (rys. nr 6).
rys. nr 6 — parametry kolumny warunkowej
Otrzymamy
dane z nową kolumną z wartościami 1 lub 0 przedstawioną na rys. nr 7.
rys. nr 7 — dane z nową kolumną warunkową
Aby
otrzymać tylko dane z wartościami 1, wystarczy przefiltrować dane. Klikamy
ikonę trójkąta przy nazwie kolumny Niestandardowe i w filtrach odznaczamy
checkbox przy wartości 0, następnie nasz wybór zatwierdzamy przyciskiem OK
(rys. nr 8).
rys. nr 8 — filtrowanie danych
Otrzymamy
przefiltrowane dane, mianowicie tylko te z wartością 1 w kolumnie
niestandardowe, przedstawione na rys. nr 9.
rys. nr 9 — przefiltrowane dane
W naszych danych na tym etapie mamy wszystkie dni, w których wpłynęło więcej niż 10 000 metrów sześciennych wody. Usuwamy krok Przefiltrowano wiersze, ponieważ łatwiej będzie nam znaleźć okresy, kiedy ta wartość była równa 1. Naszym celem jest pogrupowanie danych po okresach. Z karty Narzędzia główne wybieramy polecenie Grupowanie według (rys. nr 10).
rys. nr 10 — ścieżka dostępu do polecenia Grupowanie według
Otworzy
nam się okno Grupowania według, gdzie wybieramy opcję zaawansowanego
grupowania(punkt 1 na rys. nr 11). Wynika to z tego, że potrzebujemy długości
okresu, daty początkowej i końcowej, czyli aż trzech parametrów. W polu Grupuj
według wybieramy kolumnę Niestandardowe (punkt 2). W polu operacja wybieramy
Minimum (punkt 3) aby otrzymać początek danego okresu. Następnie dodajemy
jeszcze dwie agregacje w których w polu Operacja wybieramy Maksimum (punkt nr
4), aby otrzymać koniec danego okresu oraz Zlicz wiersze (punkt 5), aby
otrzymać sumę dni z danego okresu. Dla operacji Minimum wpisujemy nazwę nowej
kolumny jako Data początku okresu (punkt 6). Dla operacji Maksimum wpisujemy
nazwę nowej kolumny Data końca okresu (punkt 7), a dla Zlicz wiersze wpisujemy
Ilość dni (punkt 8). Tak ustawione parametry zatwierdzamy przyciskiem OK.
rys. nr 11 — parametry grupowania według
Otrzymamy
dane, gdzie będą tylko dwa okresy, jeden dla wartości 0 a drugi dla wartości 1.
Nie jest to wynik, o który nam chodziło (rys. nr 12).
rys. nr 12 — pogrupowane dane (globalnie)
Naszym
celem jest uzyskanie każdego okresu, kiedy wartości w kolumnie Niestandardowe
ulegają zmianie. Za pomocą Power Query możemy to uzyskać. Przede wszystkim
musimy dokładnie sprawdzić jak działa funkcja Table.Group. W tym celu wycinamy
z paska formuły za pomocą skrótu klawiszowego Ctrl+X argumenty funkcji
Table.Group (część zaznaczona na niebiesko na rys. nr 13) a następnie samą
funkcję zatwierdzamy przyciskiem Enter.
rys. nr 13 — wycięte argumenty funkcji Table.Group
Power
Query opisuje nam działanie tej funkcji i jej parametry. W polu groupKind jest
coś takiego jak sposób grupowania (rys. nr 14).
rys. nr 14 — opcjonalny parametr funkcji Table.Group — groupKind
Możemy
wybrać grupowanie globalne, które jest parametrem domyślnym lub grupowanie
lokalne, czyli GroupKind.Local. Jest to grupowanie po pojedynczych okresach w
danych, które ulegają zmianie. Każdorazowo gdy dane w kolumnie Niestandardowe
się zmienią otrzymamy nowy okres. Podsumowując wklejamy wcześniej wycięte
argumenty funkcji do paska formuły, a następnie dopisujemy opcjonalny argument
funkcji GroupKind.Local i zatwierdzamy przyciskiem Enter. Musimy pamiętać aby
dobrze wpisać nazwę argumentu ponieważ Power Query jest Case Sensitive, czyli
zwraca uwagę na wielkość liter (rys. nr 15).
rys. nr 15 — zapis funkcji Table.Group z dodatkowych parametrem
Otrzymamy
tym razem prawidłowe dane, przedstawione na rys. nr 16.
rys. nr 16 — dane pogrupowane okresami
Otrzymaliśmy
poszczególne okresy, kiedy wpływało do zbiornika więcej niż 10 000 metrów
sześciennych wody i kiedy wpływało mniej. Przede wszystkim interesują nas
okresy powyżej 10 000 metrów sześciennych wody więc możemy użyć filtrów. W
tym celu klikamy na ikonkę trójkąta przy nazwie kolumny Niestandardowa i
odznaczamy checkbox przy wartości 0. Tak ustawiony filtr zatwierdzamy
przyciskiem OK (rys. nr 17).
rys. nr 17 — filtrowanie danych
Możemy
również osunąć kolumnę o nazwie Niestandardowa dla lepszej prezentacji danych
za pomocą klawisza Delete. Naszym zadaniem jest znalezienie najdłuższego
okresu, kiedy do zbiornika wpływało powyżej 10 000 metrów sześciennych
wody, czyli posortujemy kolumnę Ilość dni od Z do A z karty Narzędzia główne
(rys. nr 18).
rys. nr 18 — sortowanie danych od Z do A
Interesuje nas tylko pierwszy wiersz posortowanych danych więc tak jak w poprzednim poście skorzystamy z polecenia Zachowywania wierszy. Rozwijamy polecenie Zachowaj wiersze (punkt 2 na rys. nr 19) z karty Narzędzia główne (punkt 1), a następnie wybieramy polecenie Zachowywanie pierwszych wierszy (punkt 3).
rys. nr 19 — ścieżka dostępu do polecenia Zachowywanie pierwszych wierszy
Otworzy
nam się okno Zachowywania pierwszych wierszy, gdzie w polu Liczba wierszy wpisujemy
ilość wierszy jaką chcemy zachować, czyli 1. Tak ustawiony parametr
zatwierdzamy przyciskiem OK (rys. nr 20).
rys. nr 20 — okno zachowywania pierwszych wierszy
Otrzymamy
jeden wiersz z danymi przedstawiającymi początek, koniec i długość najdłuższego
okresu, w którym do zbiornika retencyjnego wpływało ponad 10 000 metrów
sześciennych wody (rys. nr 21).
rys. nr 21 — dane po usunięciu niepotrzebnych wiwerszy
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 22).
rys. nr 22 — polecenie Zamknij i załaduj do
W Excelu
otworzy nam się okno Importowania danych, gdzie ustawiamy ich parametry,
mianowicie sposób wyświetlania danych jako Tabela oraz wskazujemy miejsce
wstawienia danych jako istniejący arkusz i wskazujemy konkretną komórkę. Tak
ustawione parametry zatwierdzamy przyciskiem OK (rys. nr 23)
rys. nr 23 — okno Importowania danych
Otrzymamy
dane wstawione do Excela przedstawione na rys. nr 24, czyli rozwiązanie zadania
5.2 z matury z informatyki 2018.
rys. nr 24 — dane w Excelu, rozwiązanie zadania 5.2 z matury z informatyki w Power Query
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.
Zadanie 5.1 rozwiążemy
przy użyciu Power Query. W kolejnych odcinkach omówimy rozwiązanie pierwszych
trzech zadań, ponieważ dużo łatwiej je rozwiązać w tym programie niż w Excelu.
Zadanie nr 5.4 bardzo ciężko rozwiązać w Power Query, dużo prostsze rozwiązanie
możemy znaleźć w Excelu, dlatego je pominiemy.
Mamy plik, w
którym podane są daty oraz ilość metrów sześciennych wpływających do zbiornika.
Zadanie 5.1 polega na wyznaczeniu roku, w którym zbiornik retencyjny został
zasilony największą liczbą metrów sześciennych wody (rys nr 2).
rys. nr 2 — Treść zadania 5.1
Do rozwiązania zadania potrzebujemy danych z pliku woda.txt, które musimy pobrać do Power Query. W tym celu wybieramy polecenie Z pliku tekstowego/CSV z karty Dane (rys. nr 3).
rys. nr 3 — polecenie Z pliku tekstowego/CSV
Otworzy nam
się okno Importowania danych, w którym wybieramy interesujący nas plik
(woda.txt), a następnie nasz wybór zatwierdzamy klikając dwukrotnie na jego
nazwę (rys. nr 4).
rys. nr 4 — Okno importowania danych
Otworzy nam się okno z wczytanymi danymi, rozdzielonymi na dwie kolumny. W danych tych w pierwszej kolejności jest data, a następnie po znaku tabulacji mamy podaną ilość wody. Power Query bez problemu rozpoznaje ogranicznik, czyli że dane należy oddzielić w miejscu wystąpienia znaku tabulacji na dwie kolumny. Możemy zauważyć że nasze dane mają domyślne nagłówki więc będziemy musieli to odpowiednio przekształcić. Dane te zatwierdzamy przyciskiem Przekształć dane (rys. nr 5).
rys. nr 5 — Okno z danymi które musimy przekształcić
Otworzy nam
się Edytor zapytań Power Query z wczytaną tabelą z pliku woda.txt. W pierwszym
kroku zmienimy nagłówki kolumn klikając dwukrotnie na ich nazwy i ręcznie
wpisując odpowiednie nazwy. I tak w pierwszej kolumnie chcemy mieć tytuł Data a
w drugiej Woda m3 (rys. nr 6).
rys. nr 6 — Edytor zapytań Power Query z wczytanymi danymi
Gdybyśmy
rozwiązywali zadanie w Excelu stworzylibyśmy tabelę przestawną a następnie
skorzystali z grupowania po roku. W Power Query również mamy opcję grupowania,
lecz nie grupuje ona automatycznie po datach. Musimy z daty wyciągnąć rok.
Ze względu na to, że do każdego z zadań jakie zostaną rozwiązane w tym poście będziemy potrzebować tych samych danych bazowych, klikamy na nazwę naszego zapytania prawym przyciskiem myszy i z podręcznego menu wybieramy polecenie Odwołanie (rys. 7).
rys. nr 7 — tworzenie nowego zapytania odwołującego się do poprzedniego zapytania
Otrzymamy kolejne zapytanie (Woda(4)) na liście Zapytań, które odwołuje się do zapytania Woda(3). Właśnie na tym zapytaniu będziemy wykonywać kolejne etapy, aby nie utracić danych wejściowych i nie musieć wczytywać ich jeszcze raz. Naszym celem jest przekształcenie kolumny z datą, aby otrzymać tylko rok. W tym celu rozwijamy polecenie Data (punkt 2 na rys. nr 8) z karty Przekształć (punkt 1), a następnie rozwijamy polecenie Rok (punkt 3) i wybieramy polecenie Rok (punkt 4).
rys. nr 8 — ścieżka dostępu do polecenia Rok
Otrzymamy
przekształcone dane przedstawione na rys. nr 9, gdzie w kolumnie Data mamy
tylko rok. Co istotne nasze przekształcenie wykonaliśmy z karty Przekształć a
nie z karty Dodaj kolumnę, gdzie mamy analogiczne polecenie. Z tą jednak
różnicą, że gdybyśmy użyli polecenia Rok z karty Dodaj kolumnę, otrzymalibyśmy
dodatkową kolumnę z rokiem.
rys. nr 9 — przekształcone dane
Na tym etapie 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 Nazwa nowej kolumny wpisujemy np. Wpłynęło,
w polu Operacja wybieramy działanie Suma (chcemy otrzymać sumę przepływu wody z
każdego roku) a w polu Kolumna wybieramy kolumnę Woda m3. Tak ustawione
parametry grupowania zatwierdzamy przyciskiem OK (rys. nr 11).
rys. nr 11 — parametry grupowania ustawiane w oknie Grupowania według
Otrzymamy
dane pogrupowane (zsumowane) według poszczególnych lat przedstawione na rys. nr 12.
rys. nr 12 — pogrupowane (zsumowane) dane po latach
Z tych
danych interesuje nas rok, w którym wpłynęło najwięcej wody. W Power Query
możemy znaleźć największą wartość sortując dane od Z do A za pomocą przycisku
sortowania na karcie Narzędzia główne (przycisk na oznaczony strzałką na rys.
nr 13).
rys. nr 13 — polecenie sortowania danych od Z do A
Otrzymamy
posortowane dane, w których od razu widać w którym roku wpłynęło najwięcej wody
do zbiornika (rys. nr 14).
rys. nr 14- dane posortowane od największej do najmniejszej
Aby w Power
Query być bardziej precyzyjnym i usunąć zbędne dane możemy rozwinąć polecenie Zachowaj
wiersze (punkt 2 na rys. nr 15) z karty Narzędzia główne (punkt 1),
a następnie wybrać polecenie Zachowywanie pierwszych wierszy (punkt 3).
rys. nr 15 — ścieżka dostępu do polecenia Zachowywanie pierwszych wierszy
Otworzy nam
się okno Zachowywania pierwszych wierszy, gdzie w polu Liczba wierszy wpisujemy
ilość wierszy, jaką chcemy zachować – w naszym przykładzie 1. Tak ustawioną
ilość wierszy zatwierdzamy przyciskiem OK (rys. nr 16).
rys. nr 16 — okno Zachowywania pierwszych wierszy
Otrzymamy
pierwszy wiersz z rokiem 2015, czyli z najwyższym przepływem rocznym
przedstawiony na rys. nr 17.
rys. nr 17 — największy przepływ roczny
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 18).
rys. nr 18 — polecenie Zamknij i załaduj do
Otworzy nam
się okno Importowania danych. W naszym przypadku mam dwa zapytania więc Power
Query nie pozwoli nam wstawić tabeli do arkusza. Możemy jedynie wstawić dane
jako połączenie (rys. nr 19).
rys. nr 19 — wstawianie danych z zapytania jako połączenie
Otrzymamy
wczytane zapytania Woda(3) i Woda(4) jako połączenie. Pierwsze zapytanie
pobrało dane z pliku tekstowego, natomiast drugie zapytanie przechowuje wyniki
naszych przekształceń (rys. nr 20).
rys. nr 20 — zapytanie Woda (4) przechowujące wyniki naszych przekształceń jako połączenie
Klikamy prawym przyciskiem myszy na nazwę zapytania Woda(4), które przechowuje wynik naszych działań i z podręcznego menu wybieramy polecenie Załaduj do (rys. nr 21).
rys. nr 21 — polecenie Załaduj do z podręcznego menu
Otworzy nam
się okno Importowania danych, gdzie ustawiamy sposób wyświetlania danych w
arkuszu jako Tabela oraz wybieramy miejsce wstawienia danych, jako Istniejący
arkusz i wskazujemy konkretną komórkę. Tak ustawione parametry wstawienia
danych zatwierdzamy przyciskiem OK (rys. nr 22).
rys. nr 22 — okno Importowania danych
Otrzymamy
wynik naszego zadania załadowany do Excela i przedstawiony na rys. nr 23.
rys. nr 23 — dane załadowane 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 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.