Kontynuujemy temat przerabiania numeru miesiąca na jego nazwę. W tym artykule będziemy przerabiać miesiąc napisany liczbą na wersję skróconą nazwy miesiąca. Czyli chcemy np. 1 przerobić na sty (w jednym z poprzednich artykułów, pokazywałam jak to zrobić funkcją Date.MonthName, zwracającą pełną nazwę miesiąca).
Zrobimy to na przykładzie takim, jak poprzednim razem, a zatem surowe dane wyglądają tak:
A w Power Query mamy je już pogrupowane do miesięcy, o tak:
Pokażę Ci 2 sposoby: pierwszy zrobimy w dużej mierze z interfejsu, ponieważ dodamy kolumnę niestandardową, a drugi – napiszemy samodzielnie, korzystając z funkcji Table.TransformColumns (pisałam już o niej tutaj).
Sposób 1: Dodawanie kolumny niestandardowej
Tak, jak poprzednio, dodamy teraz kolumnę niestandardową, czyli Dodaj kolumnę → Kolumna niestandardowa.
Tym razem jednak, w treści formuły wpiszemy tak:
Date.ToText(#date(2023,[Miesiąc],1), "MMM")
Używamy zatem innej funkcji niż poprzednio: Date.ToText, która jest taką excelową funkcją TEKST. Potrzebuje ona od nas daty (i ją dostaje: w postaci kolejnej funkcji #date), którą wyświetla w postaci kodu, który podamy w kolejnym argumencie (”MMM”). MMM to nic innego jak kod skróconej nazwy miesiąca. Zauważ, że w odróżnieniu od Excela – należy to napisać wielkimi literami.
Po zatwierdzeniu otrzymujemy to:
I znowu – pierwotną kolumnę miesiąca już można usunąć i cieszyć się wynikiem 😊.
Sposób 2: Transformacja kolumny
Takiego samego przekształcenia możemy dokonać również poprzez przekształcenie kolumny Miesiąc. Czyli nie będziemy dodawać nowej kolumny, a potem usuwać tej źródłowej, tylko od razu, w locie, podmienimy wartości kolumny Miesiąc. Metodę tę opisywałam w szczegółach tutaj.
Zaczniemy z tego samego miejsca, czyli po grupowaniu danych dodajemy krok niestandardowy (ikonka Fx obok paska formuły). W kroku tym wpiszemy następującą formułę:
= Table.TransformColumns(#"Pogrupowano wiersze", {{"Miesiąc", each Date.ToText(#date(2023, _, 1), "MMM")}})
Potem warto jeszcze zmienić typ kolumny na tekstowy i voila!
Nazwa miesiąca po angielsku
W przypadku obu sposobów (dodawanie i transformacja kolumny), jeśli chcemy otrzymać nazwy miesięcy napisane zawsze po angielsku (niezależnie od wersji językowej systemu operacyjnego, na którym pracujemy), wystarczy do funkcji Date.ToText dopisać drugi, opcjonalny argument jako:
"en-us"
W przypadku dodawania kolumny niestandardowej będzie to taka formuła:
= Table.AddColumn(#"Pogrupowano wiersze", "NazwaMiesiąca", each Date.ToText(#date(2023, [Miesiąc], 1), "MMM", "en-us"), type text)
A w przypadku transformacji kolumny – taka:
= Table.TransformColumns(#"Pogrupowano wiersze", {{"Miesiąc", each Date.ToText(#date(2023, _, 1), "MMM", "en-us")}})
Efekt po angielsku będzie taki:
Do wyboru, do koloru 😊
Plik do pobrania:
https://malinowyexcel.pl/wp-content/uploads/2023/10/MalinowyExcel-20231026-PQ-Date.ToText-DW.zip
I film na Youtubie, gdzie pokazuję powyższe rozwiązanie:
0 Comments