Blog JSystems - uwalniamy wiedzę!

Szukaj

Power BI - Instalacja, licencje i pliki Power BI Desktop

Przecinek czy kropka w liczbach i datach Power BI - ustawienia regionalne pliku

W skrócie

  • Gdy źródło zapisuje kwoty z przecinkiem zamiast kropki, a Power BI czyta tekst w regionie angielskim, kwota 6198,48 zł zamienia się bez żadnego błędu w 619848. Decydują o tym ustawienia regionalne bieżącego pliku, a nie format w wizualizacji.
  • Pole Ustawienia regionalne na potrzeby importowania mówi Power Query, jak czytać liczby, daty i godziny zapisane jako tekst. To ustawienie pojedynczego pliku, a domyślnie Power Query bierze format regionalny systemu Windows.
  • Ustaw region zgodny ze źródłem w Plik, Opcje i ustawienia, Opcje, sekcja Bieżący plik, Ustawienia regionalne. Pojedynczą kolumnę z innym zapisem zmień poleceniem Zmień typ, Używając ustawień regionalnych.

Przecinek czy kropka w liczbach Power BI to pytanie, które wraca przy każdym pliku CSV, eksporcie z systemu i danych z zagranicznego źródła. Ustawienia regionalne decydują, czy tekst 1299,90 zostanie kwotą, czy liczbą sto razy za dużą, i czy 04/03/2025 to 4 marca, czy 3 kwietnia. Pokazujemy na modelu Nordvelli, które ustawienie za co odpowiada i jak je poprawić bez przebudowy raportu.

Jak to wygląda w praktyce

Pierwszy objaw nie daje żadnego komunikatu. W lekcji 2 kursu kolumna WartoscNetto po konwersji w regionie angielskim pokazała 619848 zamiast 6198,48: Power BI potraktował polski przecinek dziesiętny jako separator tysięcy. Wiersz z kwotą 6198,48 zł jest w FaktSprzedaz jeden, ale gdy błąd dotknie całej kolumny, raport policzy się bez ostrzeżenia wielokrotnie za wysoko. Kwota zapisana z dwiema cyframi po przecinku rośnie sto razy, z jedną cyfrą dziesięć razy, a bez części dziesiętnej się nie zmienia. Sprawdziliśmy to zapytaniem DAX: [Łączna sprzedaż] Nordvelli to 467 775 009,17 zł, a po zamianie każdej kwoty na tekst z przecinkiem i odczytaniu przecinka jako separatora tysięcy suma rośnie do 35 552 741 741 zł, czyli około 76 razy, bo dwie cyfry po przecinku ma 91 782 ze 108 675 wierszy.

Drugi objaw to błąd konwersji. W modelu Nordvelli, który ma ustawienia regionalne pl-PL, funkcja VALUE("1299.90") zwraca komunikat „Nie można przekonwertować wartości „1299.90” typu Text na typ Number.” (w angielskiej wersji: „Cannot convert value '1299.90' of type Text to type Number.”), a VALUE("1299,90") daje 1299,9. Trzeci objaw to daty: ten sam model odczytał tekst 04/03/2025 jako 4 marca 2025, czyli dzień przed miesiącem, a plik z systemu amerykańskiego zapisuje tak 3 kwietnia.

Power Query: WartoscNetto po konwersji w regionie en-US pokazuje 619848 zamiast 6198,48, w krokach widać ZlyRegion
Niedopasowanie regionu na danych Nordvelli: Power BI potraktował polski przecinek dziesiętny jako separator tysięcy i bez żadnego błędu zrobił z 6198,48 zł kwotę 619848.

Dlaczego tak się dzieje

Liczba zapisana w źródle jako liczba nie ma problemu z regionem. W arkuszu Excela Nordvelli kwoty są liczbami, więc region ich nie zmienia. Kłopot zaczyna się przy tekście: w pliku CSV, w odpowiedzi z interfejsu API albo w kolumnie tekstowej. Według dokumentacji Microsoft Power Query w Power BI Desktop rozpoznaje format regionalny systemu operacyjnego i według niego zamienia tekst na liczby i daty. Zmienić to można w oknie Opcje, w sekcji Bieżący plik, na stronie Ustawienia regionalne, w polu Ustawienia regionalne na potrzeby importowania. To ustawienie dotyczy tylko otwartego pliku, więc w kolejnym projekcie trzeba je ustawić od nowa.

Na tej samej stronie jest drugie pole, Domyślne ustawienia regionalne formatu dla dat i liczb. Ono zmienia tylko domyślne formatowanie w wizualizacjach, a nie wartości w modelu. Że region formatu zmienia tylko tekst, a nie liczbę, widać w DAX: funkcja FORMAT zamienia tę samą liczbę 1299,9 z regionem pl-PL na tekst 1 299,90, a z regionem en-US na 1,299.90. Trzecia rzecz to sekcja Globalne, gdzie w ustawieniach regionalnych są język aplikacji, język modelu, który według opisu w Desktopie działa tylko przy tworzeniu nowego raportu, oraz separatory w formułach DAX, opisane w poście o przecinku i średniku w formułach DAX.

Co zrobić krok po kroku

  1. Sprawdź, jak zapisano dane w źródle. Otwórz plik CSV w Notatniku i zobacz, czy kwoty mają postać 1299.90 czy 1299,90, a daty 04/03/2025 czy 04.03.2025. Od tego zależy region, który ustawisz.
  2. Kliknij Plik, a w dolnej części lewej kolumny Opcje i ustawienia i Opcje. W okienku po lewej, w części Bieżący plik, wybierz Ustawienia regionalne.
  3. W polu Ustawienia regionalne na potrzeby importowania wybierz region źródła: Polski (Polska) dla przecinka dziesiętnego, Angielski (Stany Zjednoczone) dla kropki i dat w układzie miesiąc, dzień, rok. Kliknij OK, a potem na karcie Narzędzia główne kliknij Odśwież i sprawdź kolumnę od nowa.
  4. Gdy w pliku tylko jedna kolumna ma inny zapis, zostaw region pliku i popraw tę kolumnę. Kliknij Przekształć dane, w edytorze Power Query kliknij prawym przyciskiem nagłówek kolumny, wskaż Zmień typ i wybierz Używając ustawień regionalnych. W oknie Zmienianie typu za pomocą ustawień regionalnych ustaw Liczba dziesiętna i region źródła. Dla Angielski (Stany Zjednoczone) okno pokaże przykład 2,100.50, a na liście kroków przybędzie krok Zmieniono typ z ustawieniami regionalnymi.
  5. Ten sam efekt da region podany wprost w kroku zmiany typu w języku M. Wzorzec do dostosowania, z kolumną z kropką dziesiętną i datą amerykańską (nazwy zapytania i kroków zmień na swoje):
    let
        Zrodlo = Csv.Document(File.Contents("C:\Kurs_PBI\eksport_sprzedazy.csv"), [Delimiter = ",", Encoding = 65001]),
        Naglowki = Table.PromoteHeaders(Zrodlo, [PromoteAllScalars = true]),
        TypyKolumn = Table.TransformColumnTypes(
            Naglowki,
            {{"WartoscNetto", type number}, {"DataSprzedazy", type date}},
            "en-US"
        )
    in
        TypyKolumn
  6. Nie myl importu z wyglądem. Gdy wartości są poprawne, a raport ma tylko pokazać separator inaczej, zmień pole Domyślne ustawienia regionalne formatu dla dat i liczb albo format kolumny. Zamiany dnia z miesiącem w datach z innych systemów opisujemy w poście o amerykańskim formacie daty w Power Query, a liczby z kropką z plików CSV i API w poście o kropce dziesiętnej w polskim Excelu.

Jak sprawdzić, że problem zniknął

W widoku tabeli (druga ikona na lewym pasku) wybierz tabelę w panelu Dane i porównaj liczby ze źródłem. W kursie kontrola wyglądała tak: kolumna WartoscNetto pokazuje wartości jak 2473,14 z przecinkiem dziesiętnym, a pasek stanu w lewym dolnym rogu Tabela: FaktSprzedaz (wiersze: 108,675). Pewny test to suma: łączna sprzedaż Nordvelli ma wynosić 467 775 009,17 zł, tyle samo co suma kolumny w Excelu. Wynik kilkadziesiąt albo sto razy większy oznacza pomylony separator, a błędy w kolumnie oznaczają tekst, którego region nie potrafi odczytać.

Region ustawiaj przy zakładaniu każdego nowego pliku, bo ustawienie nie przechodzi między projektami. Dla źródeł, które na pewno mają inny zapis, podawaj region w kroku zmiany typu, wtedy zapytanie działa tak samo na każdym komputerze, niezależnie od ustawień systemu Windows. Zanim zaczniesz szukać błędu w miarach DAX, sprawdź region pliku.

Źródła i sposób sprawdzenia

  • Microsoft Learn: Data types in Power Query (Document or project locale, Change type Using locale) (źródło)
  • Słownik tekstów polskiego Power BI Desktop 2.157: okno Opcje, Ustawienia regionalne (pola importu, formatu, języka modelu i separatorów DAX)
  • Sprawdzone zapytaniami DAX na modelu Nordvelli: ustawienia regionalne modelu pl-PL, VALUE i DATEVALUE z tekstu, FORMAT z regionem, suma sprzedaży razy sto
  • Kurs Power BI, lekcja 2: ustawienia regionalne bieżącego pliku, przykład 6198,48 zamienione na 619848, kontrola w widoku tabeli

Zachowanie programu sprawdziliśmy w Power BI Desktop 2.157 (wydanie z sierpnia 2026 r.) z polskim interfejsem, a przykłady na modelu sieci Nordvella z bezpłatnego kursu Power BI. Microsoft wydaje nową wersję Power BI Desktop co miesiąc, więc nazwy przycisków i limity usługi mogą się zmieniać. Aktualne wartości podaje dokumentacja Microsoft Learn.

Wróć do listy: 131 najczęstszych pytań i problemów związanych z Power BI

Najczęściej zadawane pytania

Jak zmienić przecinek na kropkę w Power BI?
Zależy, co chcesz zmienić. Sposób odczytu liczb z tekstu ustawiasz w Plik, Opcje i ustawienia, Opcje, Bieżący plik, Ustawienia regionalne, w polu Ustawienia regionalne na potrzeby importowania. Wygląd liczb w wizualizacjach zmienia pole Domyślne ustawienia regionalne formatu dla dat i liczb, a separatory w formułach DAX ustawiasz w sekcji Globalne.
Dlaczego Power BI pokazuje kwoty sto razy za duże po imporcie?
Źródło zapisuje część dziesiętną przecinkiem, a Power BI czyta tekst w regionie z kropką dziesiętną, na przykład angielskim. Przecinek staje się wtedy separatorem tysięcy, a Power BI nie pokazuje błędu. W kursie Power BI kwota 6198,48 zł zamieniła się w ten sposób w 619848, czyli urosła sto razy.
Czy ustawienia regionalne w Power BI Desktop dotyczą wszystkich plików?
Nie. Ustawienia regionalne na potrzeby importowania należą do sekcji Bieżący plik i dotyczą tylko otwartego raportu, więc w kolejnym projekcie trzeba je ustawić od nowa. W sekcji Globalne są język aplikacji, język modelu i separatory formuł DAX.
Jak wczytać kolumnę z kropką dziesiętną w polskim Power BI?
W edytorze Power Query kliknij prawym przyciskiem nagłówek kolumny, wybierz Zmień typ i Używając ustawień regionalnych. Ustaw Liczba dziesiętna i region Angielski (Stany Zjednoczone). Power Query odczyta kropkę jako separator dziesiętny i doda krok Zmieniono typ z ustawieniami regionalnymi.

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...