Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Power Query w Excelu, Power BI i Fabric
DataFormat.Error: Nie możemy przekonwertować na typ Number - przyczyny i rozwiązanie
Komunikat DataFormat.Error: Nie możemy przekonwertować na typ Number widzi każdy, kto ustawia typ liczbowy na kolumnie z eksportu, w którym ktoś wpisał tekst zamiast kwoty albo zapisał liczby z kropką dziesiętną. Zapytanie działa, ale w części komórek zamiast liczb stoi Error. Pokazujemy, jak znaleźć te komórki w dużej tabeli, jak odczytać wartość, która zawiodła, i jak dobrać naprawę do przyczyny.
Błąd powstaje w kroku zmiany typu, zwykle Zmieniono typ, ale nie zatrzymuje zapytania. Większość wierszy ma poprawne liczby, a w niektórych komórkach kolumny stoi napis Error. Po kliknięciu w puste miejsce takiej komórki (nie w sam napis) na dole okna pojawia się komunikat:
DataFormat.Error: Nie możemy przekonwertować na typ Number.
Szczegóły:
do ustaleniaAngielski oryginał to DataFormat.Error: We couldn't convert to Number. W polu Szczegóły Power Query podaje dokładnie tę wartość, której nie udało się zamienić na liczbę, i od niej zaczyna się diagnoza. Na zrzucie z kursu taki błąd zostawił wpis „do ustalenia” w budżecie sklepu Nordvella Online na grudzień.
Po załadowaniu do arkusza komórka z błędem zostaje pusta, więc suma kolumny w Excelu pominie tę pozycję.

Zmiana typu na liczbę to konwersja tekstu, a konwersja zależy od ustawień regionalnych. W polskich ustawieniach separatorem dziesiętnym jest przecinek, więc „12,5” przechodzi, a „12.5” kończy się błędem ze Szczegółami 12.5. Sprawdziliśmy w Excelu, co Power Query przyjmuje w polskich ustawieniach, a co odrzuca:
Każda taka wartość psuje tylko swoją komórkę, dlatego zapytanie się odświeża, a problem łatwo przeoczyć. Podgląd edytora pokazuje i profiluje domyślnie pierwsze 1000 wierszy, więc błąd w wierszu numer 5000 nie pojawi się w statystykach, dopóki nie przełączysz profilowania na cały zestaw danych.
Druga konwersja nie naprawia pierwszej. Jeśli krok Zmieniono typ już zamienił „12.5” w błąd, kolejny krok z ustawieniami regionalnymi dostaje błąd zamiast tekstu i błąd zostaje, co potwierdziliśmy w Excelu. Poprawiać trzeba pierwszą konwersję albo dane przed nią.
= Table.ReplaceValue(Źródło, "NA", null, Replacer.ReplaceValue, {"Budżet"}).{"Cena", type number}. Potem na ostatnim kroku kliknij ikonę typu w nagłówku kolumny, wybierz Używając ustawień regionalnych i w oknie Zmienianie typu za pomocą ustawień regionalnych wskaż typ Liczba dziesiętna i ustawienia regionalne Angielski (Stany Zjednoczone). Power Query zapisze kulturę jako trzeci argument: = Table.TransformColumnTypes(Źródło, {{"Cena", type number}}, "en-US").= try Number.From([Budżet]) otherwise null. Alternatywa bez kodu to kliknięcie prawym przyciskiem nagłówka kolumny, polecenie Zamień błędy i wpisanie null w polu Wartość. Nie wpisuj tam zera: zero udaje prawdziwą wartość, zaniża średnie i w dzieleniu daje dzielenie przez zero.Włącz na karcie Widok pole Jakość kolumn i kliknij na pasku stanu napis o profilowaniu pierwszych 1000 wierszy, żeby przełączyć go na cały zestaw danych. W naprawionej kolumnie Błąd ma pokazywać 0%. Porównaj liczbę pustych wartości z liczbą zamienionych znaczników: więcej pustych oznacza, że w źródle są braki, których nie zamieniałeś. Na koniec zestaw sumę kolumny po załadowaniu z sumą policzoną w pliku źródłowym.
Nowy znacznik w kolejnym eksporcie, na przykład „b/d”, da ten sam błąd, bo żadna zamiana go nie obejmuje. Dlatego po każdej zmianie źródła zajrzyj do Jakości kolumn, a z właścicielem eksportu ustal, że brak danych to pusta komórka, a nie tekst. Gdy dane przychodzą z systemu, który zapisuje liczby z kropką, ustaw kulturę en-US w kroku zmiany typu na stałe, a nie dopiero po pierwszym błędzie.
Wróć do listy: 88 najczęstszych pytań i problemów związanych z Power Query
Szkolenie Microsoft Excel - Power Query --> Dwa dni warsztatów z Excela: pobieranie danych z plików, folderów, SharePointa i baz SQL, ich czyszczenie i łączenie w Power Query, praca w języku M, a na koniec model danych i oparta na nim tabela przestawna. Prowadzi Sebastian Stasiak.
To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.
★★★★★Średnia ocena naszych szkoleń w Google: 5/5
Komentarze (0)
Brak komentarzy...