fbpx

Jak zmienić numer miesiąca na jego nazwę w Power Query (też po angielsku)? Metoda 1.

10.10.2023 | Power Query

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ąda tak: 

Plik tekstowy

 

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): 

  1. Menu Dane → Z pliku tekstowego/csv 
  2. Nawiguj do pliku, który chcesz zaimportować. U mnie będzie to plik o nazwie 20231012 Dane.txt 
  3. Ten plik nie zawiera żadnych pułapek typu błędna kodowanie, zatem kliknij Przekształć dane:

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:

Grupowanie danych

 

6. Wynik otrzymamy następujący (jeśli chcesz, to można go jeszcze posortować wg miesięcy):

Wynik grupowanie

 

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: 

  1. Wybierz z menu Dodaj kolumnę → Kolumna niestandardowa 
  2. 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:

Dodawanie kolumny niestandardowej

 

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: 

Wynik MonthName

 

Pierwotną kolumnę z miesiącem możemy już usunąć i gotowe! Efekt, już po załadowaniu do Excela,  jest następujący: 

Wynik

 

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: 

Nazwa po angielsku

 

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 😊. 


Plik do pobrania:

 

 

I film na Youtubie, gdzie pokazuję powyższe rozwiązanie:

 

Jeżeli chcesz lepiej poznać Power Query zapisz się na listę zainteresowanych kursem Power Query w Excelu od podstaw! Podczas oczekiwania na kurs będę Ci wysyłała informacje i ciekawostki na temat Power Query. Bezpłatnie! 

Pomogłam Ci? Postaw mi wirtualną kawę! →

Przeczytaj podobne wpisy

Kategorie

0 komentarzy

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *