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).
Otworzy nam
się Edytor zapytań Power Query z wczytanymi danymi z tabeli przedstawiony na
rys. nr 2.
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.
Otrzymamy
dane ze zmienionym typem danych w kolumnie Data przedstawione na rys. nr 4.
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).
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).
Ikonka przy
nazwie zapytania oznaczona strzałką na rys. nr 7 wskazuje nam, że nasze dane
mają formę 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.
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).
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.
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.
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.
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).
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).
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.
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.
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
W kolejnym
kroku musimy przekształcić nasze dane z listy na tabelę, skorzystamy tutaj z
polecenia Do tabeli z karty Przekształć (rys. nr 18).
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).
Otrzymamy
listę rekordów przekonwertowaną na tabelę co widać na rys. nr 20.
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).
Otrzymamy
rozwinięte dane w postaci tabeli przedstawione na rys. nr 22.
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).
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).
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).
Otrzymamy
dane zaczytane do Excela przedstawione na rys. nr 26.
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.
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).
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).
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).
Otrzymamy przefiltrowane dane tylko z wierszami, w których stan wody przekraczał 1000000 m3 wody przedstawione na rys. nr 31 .
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).
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).
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.
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).
Otrzymamy
odpowiedź na pierwszą część zadania wstawioną do Excela przedstawioną na rys.
nr 36.
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).
Otrzymamy
wszystkie wiersze, dla których stan wody przekraczał 800000 m3
przedstawione na rys. nr 38.
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).
Otrzymamy
liczbę wierszy, gdzie stan wody przekraczał 800 000m3
przedstawioną na rys. nr 40.
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.
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.
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).
Otrzymamy
maksymalny stan zbiornika przedstawiony na rys. nr 44.
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.
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.
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.
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.
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).
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).
Otrzymamy
dane z nową kolumną zawierającą numer miesiąca w roku przedstawione na rys. nr 6.
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).
Otrzymamy
przekształcone dane w kolumnie Data przedstawione na rys. nr 8.
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).
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.
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).
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).
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).
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.
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).
W zapytaniu
woda(3) otrzymamy podsumowane dane po cały roku 2008 przedstawione na rys. nr 16.
Teraz możemy
sobie dołączyć zapytania, w tym celu wybieramy polecenie Dołącz zapytania
z karty Narzędzia główne (rys. nr 17).
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).
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.
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).
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.
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).
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.
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).
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).
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).
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).
Otrzymamy
dane wczytane do Excela przedstawione na rys. nr 28.
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).
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).
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).
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).
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).
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
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.
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
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).
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).
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).
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).
Otrzymamy
dane z nową kolumną z wartościami 1 lub 0 przedstawioną na rys. nr 7.
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).
Otrzymamy
przefiltrowane dane, mianowicie tylko te z wartością 1 w kolumnie
niestandardowe, przedstawione na rys. nr 9.
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).
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.
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).
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.
Power
Query opisuje nam działanie tej funkcji i jej parametry. W polu groupKind jest
coś takiego jak sposób grupowania (rys. nr 14).
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).
Otrzymamy
tym razem prawidłowe dane, przedstawione na rys. nr 16.
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).
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).
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).
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).
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).
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).
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)
Otrzymamy
dane wstawione do Excela przedstawione na rys. nr 24, czyli rozwiązanie zadania
5.2 z matury z informatyki 2018.
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).
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).
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).
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).
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).
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).
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).
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.
Na tym etapie wybieramy polecenie Grupowanie według z karty Narzędzia główne (rys. nr 10).
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).
Otrzymamy
dane pogrupowane (zsumowane) według poszczególnych lat przedstawione na rys. nr 12.
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).
Otrzymamy
posortowane dane, w których od razu widać w którym roku wpłynęło najwięcej wody
do zbiornika (rys. nr 14).
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).
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).
Otrzymamy
pierwszy wiersz z rokiem 2015, czyli z najwyższym przepływem rocznym
przedstawiony na rys. nr 17.
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).
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).
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).
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).
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).
Otrzymamy
wynik naszego zadania załadowany do Excela i przedstawiony na rys. nr 23.
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.
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).
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).
Co istotne
nasze zapytanie zostało wczytane jako tabela, co widać w Liście zapytań
(zaznaczone czerwoną strzałką na rys. nr 4).
Do dalszych działań potrzebujemy listy a nie tabeli. W tym celu wybieramy ikonkę polecenia Konwertuj na listę z karty Przekształć (rys. nr 5).
Otrzymamy
przekonwertowane dane na listę przedstawione na rys. nr 6.
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).
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).
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).
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).
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).
Otworzy nam
się edytor zapytań Power Query z wczytanymi wszystkimi danymi przedstawiony na
rys. nr 12.
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).
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).
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)
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.
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).
Pojawi nam się
komunikat Wstawianie kroku, w którym musimy zatwierdzić nasze działanie
przyciskiem Wstaw (rys. nr 18).
Dzięki temu
krokowi wartości null zostały usunięte z listy. Otrzymamy listę przedstawioną
na rys. nr 19.
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).
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).
Otrzymamy
dane wczytane do Excela zawierające tylko kolumny z listy, przedstawione na
rys. nr 22.
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).
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).
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.