Załóżmy, że mamy dane sprzedażowe, pochodzące z pliku tekstowego (txt). Mamy w nim proste informacje: miesiąc transakcji, klient, kupiony przez niego produkt i oczywiście wartość transakcji. Dane wyglądają tak:
Naszym celem jest zrobienie prostej rzeczy: raport sprzedaży po miesiącach, ale… miesiące chcemy napisać słownie, czyli mieć styczeń zamiast 1.
Szef się uparł.
Gdybyśmy w danych mieli datę transakcji, zapisaną jako prawdziwą datę, czyli np.: 2023-09-02, to nie byłoby to żaden problem. Ale tutaj mamy nieszczęsny numerek, oznaczający miesiąc (zobacz obrazek powyżej).
Co więc zrobić?
Oczywiście rozwiązań jest z milion. Ja pokażę Ci dziś dodanie kolumny niestandardowej w Power Query, w której użyjemy funkcji Date.MonthName. Co ciekawe funkcja ta, jak sama nazwa wskazuje, potrzebuje dostać od nas datę, jednak my sprytnie tego unikniemy.
1. Importowanie pliku tekstowego do Power Query i niezbędne transformacje
Aby załadować dane z pliku tekstowego do Power Query, wykonaj następujące czynności (nazwy podłam dla Excela 365):
- Menu Dane → Z pliku tekstowego/csv
- Nawiguj do pliku, który chcesz zaimportować. U mnie będzie to plik o nazwie 20231012 Dane.txt
- Ten plik nie zawiera żadnych pułapek typu błędna kodowanie, zatem kliknij Przekształć dane:
4. Wylądowaliśmy w Power Query, gdzie automatycznie zostały zastosowane kroki promowania nagłówka i zmiany typów danych. Tutaj zawsze warto zerknąć na prawidłowość zmiany typów danych. Jeśli jest OK (a w naszym przypadku jest), to idziemy dalej.
5. Dla tych danych wystarczy je pogrupować wg miesiąca, czyli kolumnę Miesiąc kliknij prawym przyciskiem myszki i wybierz polecenie Grupuj według…, określić kolumnę, wg której następuje grupowanie (Miesiąc), nazwę nowej kolumny (Wartość), operację, jaka ma zostać wykonana (Suma) oraz kolumnę, która tej operacji ma podlegać (PLN). My chcemy grupować wg miesięcy i w zgrupowanych miesiącach chcemy sumować kolumnę PLN. A zatem zaznaczamy tak:
6. Wynik otrzymamy następujący (jeśli chcesz, to można go jeszcze posortować wg miesięcy):
I to jest moment, gdzie wchodzi faktyczna praca 😊.
2. Dodawanie kolumny niestandardowej z funkcją Date.MonthName
Chcemy przerobić numerki miesięcy na ich nazwy.
Rozwiązaniem najprostszym i w dużej mierze korzystającym z interfejsu, jest dodanie kolumny niestandardowej, w której dokonamy potrzebnych transformacji. A zatem:
- Wybierz z menu Dodaj kolumnę → Kolumna niestandardowa
- W okienku, które się pokaże, wpisz nazwę nowej kolumny oraz formułę, która ją tworzy:
Date.MonthName([Miesiąc] * 29)
jak na obrazku:
Powyższa formuła jest niesłychanie sprytna. Zauważ, że mnoży każdy numerek miesiąca razy 29. Takie obliczenie da oczywiście w wyniku jakąś liczbę, która jest dla Power Query datą (dla Excela daty też są liczbami). Ta data zaś zawsze będzie z określonego miesiąca!
A funkcja Date.MonthName wyodrębnia nazwę miesiąca z owej daty.
Genialne w swojej prostocie, prawda?
Po zatwierdzeniu otrzymamy taki wynik:
Pierwotną kolumnę z miesiącem możemy już usunąć i gotowe! Efekt, już po załadowaniu do Excela, jest następujący:
3. Jak przerobić numery miesięcy na nazwy miesięcy po angielsku?
Nazwy miesięcy są pobierane z systemu operacyjnego. Ja mam go w polskiej wersji, zatem nazwy miesięcy też są po polsku. Jednak co by było, gdybyśmy chcieli widzieć te nazwy np. po angielsku? Zawsze?
Wystarczy dokonać prostej modyfikacji w formule kolumny niestandardowej. Wykorzystamy konkretnie drugi argument funkcji Date.MonthName, jakim jest culture. Ustawimy go na „en-us”, o tak:
A jeśli chcielibyśmy je widzieć zawsze po polsku, niezależnie od wersji językowej systemu operacyjnego – trzeba byłoby wpisać „pl-pl”.
Jeśli chcesz, aby polskie nazwy miesięcy zostały napisane wielką literą – śmiało dokonaj prostej transformacji tekstu w Power Query i gotowe 😊. Jeśli chcesz zobaczyć tylko 3 pierwsze litery nazwy każdego miesiąca – też możesz to zrobić prostą transformacją tekstu. Nie będzie to może metoda najbardziej optymalna (taką opiszę w jednym z kolejnych wpisów), ale zadziała!
A w kolejnym wpisie pokażę Ci, jak uniknąć dodawania kolumny niestandardowej i usuwania oryginalnej. Zrobimy całą tę operację w jednym kroku. Będzie to co prawda trochę bardziej zaawansowane, ale warto 😊.
I film na Youtubie, gdzie pokazuję powyższe rozwiązanie:
0 Comments