Jak poradzić sobie z ustawieniami lokalnymi w zapytaniach w Power Query?

Ustawienia lokalne odgrywają szczególną rolę w przypadku dwóch typów danych: liczb dziesiętnych i dat. Dane, które nie pasują do ustawień lokalnych naszego komputera, mogą powodować 2 rodzaje problemów: nie możemy ich wczytać lub możemy je wczytać, ale inni użytkownicy mają inne ustawienia lokalne i mogą wczytać je inaczej. Jak sobie z nimi poradzić?

Zmień typ danych wg ustawień lokalnych

Ta operacja to game changer w wielu organizacjach. Dane z systemu są w formacie amerykańskim (np. liczba dziesiętna = milion jako 1,000,000.00 lub data 30 maja 2019 jako 05/30/2019) lub niemieckim? Wczytaj je do Power Query i ustaw typ danych, deklarując na wejściu konkretny kraj.

Zbuduj nazwę miesiąca zgodnie z ustawieniami lokalnymi

Ustawienia lokalne determinują też operacje na datach, takie jak Data > Miesiąc > Nazwa miesiąca.

Ten krok ma ustawienia lokalne, ale schowane w oknie Zastosowane kroki.

Dzięki tej ukrytej właściwości możemy łatwo wstawić nazwę miesiąca w innym języku (np. angielskim) lub zagwarantować, że kolega z Niemiec nie popsuje tego kroku swoimi ustawieniami lokalnymi (jeśli tak by się stało, na raporcie zamiast stycznia zobaczymy Maj zobaczymy Mai).

Wstaw numer dnia tygodnia z poniedziałkiem jako początkiem

Jak zagwarantować stały początek tygodnia w innych poleceniach, takich jak numer tygodnia roku czy numer dnia tygodnia? Jednym sposobem jest przejrzenie dokumentacji języka M i dopisanie go w pasku formuły.

Przykładowo domyślnie wstawiony numer dnia tygodnia generuje formułę:

Date.DayOfWeek([Data zamówienia])

Możemy ją usztywnić na początek tygodnia w poniedziałek (tak jak w analogicznej formule w Excelu), dopisując w pasku formuły Day.Monday:

Date.DayOfWeek([Data zamówienia], Day.Monday)

Ponownie daje to gwarancję, że zapytanie odświeżane przez osobę o innych ustawieniach lokalnych, zawsze wyliczy numery identycznie.

A dlaczego Power Query poniedziałek oznacza jako 0, a niedzielę jako 6?

Bo umie liczyć od 0, a nie od 1. Jeśli chcemy uzyskać numery od 1 (poniedziałek) do 7 (niedziela), dodajmy do kolumny 1.

Udostępnij ten wpis:

Brak komentarzy

  1. Witam,
    Jak poradzić sobie w zapytaniu z wyliczeniem tygodnia w roku. Aktualnie wylicza mi o jeden tydzień w przód. Np dla tygodnia z datami 9-15.08.2021 pokazuje tydzień 33 a powinien być 32… Ustawienia regionalne mam dla Polski a formuła, która to wylicza jest taka Date.WeekOfYear([CONFIRMED ETA], Day.Monday).
    Z góry dziekuję za odpowidź.

    • Cześć Magda, tydzień 33., obliczony w PQ, odpowiada numerowi tygodnia w kalendarzu gregoriańskim – czyli takim ściennym. Ty potrzebujesz tygodnia zgodnego z metodologią określoną w normie ISO 8601 i nazywanego europejskim systemem numerowania tygodni. Tydzień zawierający pierwszy czwartek roku jest pierwszym tygodniem roku i otrzymuje numer 1. Najprostszym sposobem jest zbudowanie tabeli (np. w Excelu), która będzie zawierać Datę i Numer tygodnia wyliczony za pomocą formuły =NUM.TYG([komórka];21). Następnie Twoją tabelę scalasz z tak przygotowanym słownikiem tygodni.

Dodaj komentarz

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