W części poprzedniej – Przekształcanie tabel i kolumn – mogłeś poznać opcje obszarów Tabela, Dowolna Kolumna oraz Kolumna tekstowa. Poniżej zajmę się bardziej matematycznymi zagadnieniami – przekształcaniem kolumn z wartościami liczbowymi, przekształcaniem wartości związanych z upływem czasu, czyli kolejnymi funkcjami dostępnymi z poziomu wstążki Przekształć w Power Query.
Kolumna liczb
W pierwszej kolejności zajmiemy się rozłożeniem na części pierwsze obszaru Kolumna liczb, w której znajdziemy pięć grup funkcji:
– funkcja Statystyczne pozwala na wykonanie zestawu standardowych obliczeń statystycznych (znanych choćby z tabel przestawnych) na wybranej kolumnie.
Zaznaczenie kolumny na której chcemy wykonać działanie a następnie wybór odpowiedniej opcji spowoduje wyświetlenie się pojedynczej wartości będącej wynikiem działania.
– funkcja Standardowe pozwala na wykonanie najprostszych działań na kolumnie zawierającej dane liczbowe.
Działanie Modulo zwraca resztę z dzielenia liczby. Przykładowo: Po wykonaniu działania 5 : 2 otrzymamy wynik 2 oraz wartość reszty 1 – co jest właśnie wynikiem działania Modulo.
Po wybraniu kolumny oraz dowolnego działania otwiera nam się następujące okno dialogowe:
W obszar Wartość możemy wpisać jedynie liczbę, wpisanie jakiegokolwiek tekstu powoduje błąd. Oznacza to, iż nie jest możliwe stosowanie dodawanie dwóch kolumn przy pomocy tej funkcji. Analiza kodu którą można przeprowadzić w Edytorze zaawansowanym (o którym można przeczytać m. in. tutaj) wskazuje iż w żaden łatwy sposób nie można zmodyfikować go tak, aby wykonać działanie na dwóch różnych kolumnach. Nie oznacza to jednak, że taka opcja nie istnieje – znajduje się ona po prostu w innym miejscu (Dodaj kolumnę > Dodawanie kolumny niestandardowej).
– opcja Wykładnicze także pozwala nam na wykonanie pewnej określonej grupy działań:
Liczby możemy podnieść do dowolnej potęgi, natomiast obliczanie logarytmów jest ograniczone jedynie do logarytmu dziesiętnego oraz naturalnego. Opcja Wykładnik oznacza, iż wynik w komórce otrzymujemy poprzez podniesienie liczby Eulera (e) do potęgi określonej poprzez zawartość komórki. Przykładowo – jeżeli w komórce znajduje się cyfra jeden, to w komórce będzie znajdował się wynik działania e^1.
– funkcja Trygonometryczne pozwala na przeprowadzenie wielu (choć nie wszystkich) działań trygonometrycznych:
Należy jednak pamiętać, iż argumentami powyższych funkcji (bądź wynikami w przypadku działań Arcus…) są wartości w radianach, a nie w stopniach.
– funkcja Zaokrąglenie pozwala naturalnie na zaokrąglenie wartości:
Opcje Zaokrąglenie w górę oraz Zaokrąglenie w dół przeprowadzają zaokrąglenie liczby do liczby całkowitej.
Klikając opcję Zaokrąglenie… możemy określić do ilu liczb po przecinku ma zostać przeprowadzone zaokrąglenie.
– funkcje Informacyjne to funkcje zwracające pewne z góry zdefiniowane wartości:
W przypadku opcji Jest parzysta oraz Jest nieparzysta możliwe są dwa wyniki: prawda (TRUE) oraz fałsz (FALSE). Należy zwrócić uwagę, aby stosować te funkcje jedynie na kolumnach z liczbami całkowitymi – niestety nie zwracają one błędu w przypadku zastosowania ich na kolumnie z liczbami niecałkowitymi, co jest ewidentną pomyłką. W dodatku w przypadku zastosowania ich na liczbach dziesiętnych opcje te potrafią pokazać, ze cyfra jest zarówno parzysta jak i nieparzysta.
Funkcja Znak informuje nas o tym, czy dana liczba jest dodatnia (zwraca wartość 1), ujemna (zwraca wartość -1) czy też jest to 0 (w takim przypadku wartość 0 pozostaje w danej komórce).
Kolumna daty i godziny
Następnym obszarem we wstążce Przekształć jest Kolumna daty i godziny.
Aby wykonać jakiekolwiek działania przy pomocy tych funkcji, musimy mieć zaznaczoną kolumnę z datami.
Po naciśnięciu przycisku Data pojawiają nam się następujące opcje:
Klikając na Wiek otrzymujemy liczbę dni, godzin, minut i sekund które minęły od chwili obecnej do daty znajdującej się w komórce.
Jak widać na powyższym obrazku, Power Query podaje nam wiek aż do jednej dziesięciomilonowej sekundy. Niestety, przeciętne komputery nie są wyposażone w zegary atomowe i osiągnięcie takiej dokładności jest nierealne . Szkoda, iż nie przewidziano żadnego łatwego sposobu na skrócenie tego dość irracjonalnego zapisu.
Kolejny przycisk – Tylko data – pozwala na wyrzucenie z kolumny informacji dotyczących godziny.
Użycie tej funkcji spowoduje, ze informacje o godzinie zostaną usunięte z komórek – zmienia się ich zawartość, a nie tylko wyświetlanie. Ma to wpływ na wszystkie późniejsze działania wykonywane na tej kolumnie – np. przy użyciu funkcji Wiek. W chwili gdy w komórce widnieje sama data, program zakłada godzinę 0:00:00.
– Funkcja Analizuj jest jedyną z zestawu Data którą można używać na danych tekstowych, nie można za to na dacie. Służy ona przekonwertowaniu daty zapisanej jako tekst do formatu daty. Niestety, działa tylko na amerykański zapis (mm-dd-rrrr), w przypadku zapisu polskiego (dd-mm-rrrr) funkcja zwraca błąd.
Kolejne opcje w menu Data, tj. Rok, Miesiąc, Dzień, Kwartał i Tydzień mają bardzo podobne działanie.
– Funkcja Rok ma podopcje Rok, Początek roku oraz Koniec roku. Funkcja Rok zwraca liczbę całkowitą (naturalnie jest to rok z daty poddanej działaniu tej funkcji). Dwie kolejne opcje zwracają kolejno daty pierwszego i ostatniego dnia w roku.
– Funkcja Miesiąc ma podopcje Miesiąc, Początek miesiąca, Koniec miesiąca, Liczba dni w miesiącu. Pierwsza z nich zwraca liczbę całkowitą od 1 do 12 – w zależności od tego, w którym miesiącu znajduje się oznaczony przez datę dzień. Dwie kolejne funkcje zwracają oczywiście daty końca miesiąca oraz początku, natomiast liczba dni w miesiącu zwraca liczbę naturalną informująca ile dni było w danym miesiącu (będą to liczby 28, 29, 30 lub 31).
– Klikając na Dzień zobaczymy podfunkcje Dzień, Dzień tygodnia, Dzień roku, Początek dnia oraz Koniec dnia. Pierwsze trzy z nich zwracają w wyniku swojego działania liczbę informującą który jest to dzień w danej jednostce czasu, tzn. w miesiącu, tygodniu oraz roku. Warto zauważyć, że tego że funkcja Dzień dotyczy miesiąca użytkownik musi się domyślić – w przeciwieństwie do dwóch pozostałych przypadków. Wydaje się to małą niekonsekwencją.
Opcja Początek dnia zmienia godzinę w przekształcanej kolumnie na 0:00:00. Koniec dnia robi dokładnie to samo, ale dodatkowo zmienia dzień na kolejny (np. 1 stycznia na 2 stycznia).
– Funkcja Kwartał ma 3 warianty: Kwartał roku, Początek kwartału oraz Koniec kwartału. Pierwszy z wariantów zwraca liczbę od jednego do czterech informując, w którym kwartale roku znajduje się dana data. Pozostałe dwie opcje zwracają daty – odpowiednio –pierwszego dnia i ostatniego dnia kwartału, do którego należy data.
– Opcja Tydzień ma cztery podopcje: Tydzień roku (zwracającą informację w którym tygodniu roku znajduje się dana data), Tydzień miesiąca (zwracającą liczbę mówiącą w którym tygodniu miesiąca znajduje się dana data), Początek tygodnia (zwracającą datę poniedziałku z tygodnia w którym znajduje się przekształcana przez nas data) oraz Koniec tygodnia (zwracającą datę niedzieli z tygodnia w którym znajduje się przekształcana przez nas data).
Kolejnym przyciskiem w danym obszarze jest Godzina:
– Funkcja Tylko godzina usuwa datę z komórki, w której znajduje się zarówno data jak i godzina.
Funkcja Czas lokalny działa tylko na kolumnach w których znajdują się dane w formacie Data/godzina/czas lokalny. Zmiana na ten format dowolnej kolumny z datami i godzinami przypisze do kolumny strefę czasową ustawioną na komputerze użytkownika.
Więcej na temat formatów danych w Power Query możesz przeczytać tutaj.
W razie gdybyśmy posiadali dane z innej strefy czasowej i chcielibyśmy zmienić je na naszą, to wystarczy zaznaczyć dane z takimi rekordami oraz kliknąć Czas lokalny. Uwaga: funkcja zmienia godziny oraz oznaczenie strefy czasowej; oznacza to, iż w czasie uniwersalnym Greenwich (UT) godzina będąca wynikiem działania tej funkcji to jest ta sama godzina, która pierwotnie się znajdowała w naszej kolumnie.
Pozostałe podopcje w funkcji Godzina – tzn. Godzina, Minuta oraz Sekunda służą wyodrębnić z zapisu samą godzinę, minutę bądź sekundę i zapisać ją w formacie liczby.
– Opcja Analizuj służy – analogicznie do funkcji o tej samej nazwie w menu Data – zamianie tekstu na godzinę. Działanie mechanizmu konwertującego wartości jest dosyć nieprzewidywalne, w związku z czym należy zawsze sprawdzać, czy wynik odpowiada naszym oczekiwaniom. Tekst oprócz informacji o godzinie może także zawierać dane na temat daty i strefy czasowej, jednak wynikiem zawsze jest tylko godzina.
Ostatnią funkcją z obszaru Kolumna daty i godziny jest Czas trwania. Jest ona aktywna jedynie w przypadku zaznaczenia kolumny zawierającej wynik opisywanej powyżej funkcji Wiek. Posiada pewien zestaw podfunkcji:
Działanie jest bardzo proste i intuicyjne. W przypadku wybrania którejkolwiek z pierwszych czterech opcji (Dni, godziny, Minuty, Sekundy), w komórkach zostają jedynie informacje na temat danych jednostek czasu, bez wykonywania jakichkolwiek przeliczeń. Przykładowo, jeżeli coś trwało 5 dni i 4 godziny, to po wybraniu opcji Godziny pozostanie jedynie informacja na temat 4 godzin.
W przypadku wybrania jednej z ostatnich opcji (Suma dni, Suma godzin, Suma minut, Suma sekund) przedstawimy czas trwania w wybranej przez nas jednostce czasu. Przykładowo, jeżeli wybierzemy godziny, to liczba dni zostanie zamieniona na odpowiednią liczbę godzin, a minuty i sekundy zostaną przedstawione jako część ułamkowa.
Podsumowanie karty Przekształć
Możliwości przekształcania kolumn liczbowych są dość ograniczone – proste działania często nie wystarczają do osiągnięcia satysfakcjonujących wyników. Sytuacja wygląda trochę lepiej jeżeli chodzi o pracę na datach i godzinach. Nowe typy danych – Czas trwania oraz Data/godzina/strefa czasowa pozwalają na uwzględnienie informacji dotychczas pomijanych w skoroszytach Excela i przeprowadzenie działań, które wcześniej ze względu na ich brak były niemożliwe. W pozostałych przypadkach nie są to nowe funkcjonalności, ale ich stosowanie jest wygodniejsze niż wcześniej.
W Power Query można co chwilę zauważyć pewne interfejsowe niedociągnięcia – teraz natrafiliśmy na funkcję Dzień, która zwraca liczbę mówiącą, który jest dzień miesiąca, czego użytkownik musi się sam domyślić – pomimo, iż w dwóch pozostałych funkcjach (Dzień tygodnia oraz Dzień roku) jednostka czasu została jasno określona. Spowodowane jest to prawdopodobnie ciągłym rozwojem dodatku – nieustannie pojawiają się nowe funkcjonalności, w związku z czym takie drobne błędy są nieuniknione.
Jakie jest Twoje zdanie?
Przy uruchomieniu funkcji Analizuj formatu daty rzeczywiście pojawia się błąd, ale wystarczy najpierw ustawić dla całej kolumny format daty (za pomocą Power Query) regionalny „angielski (Stany Zjednoczone Ameryki)” i potem już można wszystko zrobić.
Po zmianie na format „Data”, trzeba klikną na kolumnie w nagłówku prawy klawisz myszy i wybrać „Zmień typ danych/Używając ustawień regionalnych”. Wtedy wybrać 'Angielski (Stany Zjednoczone).
A potem już można robić, to co potrzebne.
Jak kliknie się Data/Tylko data, to już pokaże się data wg ustawienia naszego komputera.
Dzięki, dobra uwaga!
Cześć, w jaki sposób osiągnąć dwucyfrowy numer tygodnia z daty uzyskany dzięki funkcji Date.WeekOfYear? Zależy mi, by numery tygodnia od 1 do 9 były poprzedzone zerem, czyli np. dla tygodnia roku nr 2 wynik pokazywał 02 itd. Czy jest to możliwe? Kombinuję ze zmianą typu, ale bezskutecznie.
Cześć Kasia, spróbuj poleceniem Kolumna z przykładów i podaj przykład dla jedno- i dwucyfrowego tygodnia.