Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Power Query w Excelu
Liczby z Power Query lądują w Excelu jako tekst - SUMA zwraca zero
Liczby z Power Query lądują w Excelu jako tekst wtedy, gdy w samym zapytaniu są tekstem: tabela wygląda dobrze, a SUMA pod kolumną kwot pokazuje 0. Najczęściej chodzi o kolumnę, której ktoś nadał typ Tekst, albo o kwotę wyciętą z dłuższego opisu. Pokazujemy, jak rozpoznać tekst w arkuszu, dlaczego poprawka w arkuszu nie wystarcza i gdzie naprawić to na stałe.
Po kliknięciu Zamknij i załaduj tabela w arkuszu wygląda poprawnie, ale formuła =SUMA(A2:A3) pod kolumną z kwotami zwraca 0. Tak było w naszym teście w polskim Excelu: kolumna z typem Tekst i wartościami 10 i 20 dała sumę 0. Funkcja =CZY.TEKST(A2) zwróciła PRAWDA, a =CZY.LICZBA(A2) zwróciła FAŁSZ, czyli w komórce jest tekst, a nie liczba.
Zielony trójkąt w rogu komórki to znak, którym Excel oznacza liczby zapisane jako tekst, na przykład wpisane z apostrofem. Przy tabeli z zapytania nie warto na nim polegać: w naszym teście reguła sprawdzania błędów Excela oznaczyła wpis z apostrofem, a komórek tekstowych załadowanych z Power Query nie oznaczyła. Pewniejszym testem są SUMA i CZY.TEKST. Drugi objaw pojawia się po odświeżeniu: liczby poprawione ręcznie w arkuszu znów stają się tekstem.
Power Query ładuje do arkusza wartości w takim typie, jaki mają w zapytaniu. Kolumna z typem Tekst (ikona ABC w nagłówku) trafia do komórek jako tekst, nawet gdy zawiera same cyfry. Kolumna z typem Dowolny (ikona ABC123) zapisuje każdą wartość osobno: w naszym teście liczby z takiej kolumny dały w arkuszu poprawną sumę, a wartości tekstowe z innej kolumny Dowolny dały 0. Liczba staje się więc tekstem w arkuszu wtedy, gdy jest tekstem już w zapytaniu.
Ręczna poprawka nie przetrwa, bo tabela z zapytania jest nadpisywana przy każdym odświeżeniu. Sprawdziliśmy to: komórkę z tekstem 10 zamieniliśmy w arkuszu na liczbę, a po odświeżeniu znów był w niej tekst. W kursie pokazujemy drugą stronę tej zasady: formaty liczb ustawione w arkuszu, na przykład złote i procenty, odświeżanie zachowuje, bo Power Query aktualizuje dane, a nie wygląd tabeli. Typ danych trzeba więc ustawić w zapytaniu, a format w arkuszu.
1 234,50 zł zamienił się w 1234,5. Nie przejdzie natomiast zapis amerykański 12.50, który daje błąd DataFormat.Error: Nie możemy przekonwertować na typ Number. (ang. We couldn't convert to Number.). Takie kolumny zmień poleceniem Używając ustawień regionalnych z kulturą źródła, na przykład Angielski (Stany Zjednoczone).Po załadowaniu formuła =CZY.LICZBA(A2) ma zwracać PRAWDA, a SUMA pod kolumną oczekiwaną kwotę. W naszym teście kolumna z typem Liczba dziesiętna i wartościami 10,5 i 20 dała sumę 30,5. W edytorze kolumny z liczbami mają w nagłówku ikonę 1.2 albo 123, a nie ABC ani ABC123. Na karcie Dane kliknij Odśwież wszystko (Ctrl+Alt+F5) i sprawdź, czy wynik się utrzymuje.
Żeby problem nie wrócił, typy ustawiaj w zapytaniu, a nie w arkuszu. Ostatnim krokiem zapytania, które ładujesz do arkusza, niech będzie zmiana typu wszystkich kolumn. Jeśli zapytanie zasila tabelę przestawną, odśwież ją po zmianie typu i porównaj sumy z wynikiem formuły SUMA.

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