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