Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Power Query w Excelu, Power BI i Fabric
Nagłówki z każdego pliku lądują w danych po połączeniu plików z folderu
Problem z nagłówkami w danych przy łączeniu plików w Power Query pojawia się, gdy łączysz miesięczne eksporty z folderu, a nagłówki ustawiasz dopiero w zapytaniu głównym. Pokazujemy, po czym go rozpoznasz, z czego wynika i jak przenieść kroki do zapytania, które obsługuje każdy plik osobno. Przykłady opieramy na plikach sprzedaży fikcyjnej firmy Nordvella z naszego kursu.
Po kliknięciu Użyj pierwszego wiersza jako nagłówków w zapytaniu głównym (w kursie to Sprzedaz_miesieczna) dane wyglądają poprawnie tylko na początku. Niżej, na granicy plików, trafiasz na wiersze, w których kolumna Sklep zawiera tekst „Sklep”, a kolumna Ilość tekst „Ilość”. Kolumna z nazwą pliku pokazuje, że każdy taki wiersz pochodzi z innego pliku: z drugiego, trzeciego i kolejnych. Ta pierwsza kolumna traci przy okazji nazwę Source.Name i nazywa się teraz tak jak pierwszy plik, na przykład Nordvella_sprzedaz_2026-01.csv, bo promowanie objęło cały pierwszy wiersz.
Po ustawieniu typu liczbowego zbłąkane nagłówki zamieniają się w błędy komórek. Kliknięcie obok napisu Error w takiej komórce pokazuje komunikat DataFormat.Error: Nie możemy przekonwertować na typ Number. (w angielskim Excelu We couldn't convert to Number.), a w szczegółach wartość Ilość. Liczba wierszy jest większa niż suma wierszy danych w plikach: przy N plikach w wyniku zostaje N-1 dodatkowych wierszy nagłówka.
Łączenie plików z folderu tworzy kilka zapytań. Funkcja Przekształć plik powstaje z kroków zapytania Przekształć przykładowy plik i Power Query wywołuje ją osobno dla każdego pliku z listy. Zapytanie główne zbiera wyniki tych wywołań w kroku Rozwinięto kolumnę tabeli i układa je jeden pod drugim. Jeśli w pliku przykładowym nagłówki nie zostały promowane, każdy plik wnosi do sklejonej tabeli swój wiersz nagłówka jako zwykły wiersz danych.
Funkcja Table.PromoteHeaders zamienia w nagłówki pierwszy wiersz tej tabeli, na której działa. W zapytaniu głównym to jedna wspólna tabela, więc nagłówki dostaje tylko pierwszy plik, a wiersze nagłówków pozostałych plików zostają w danych. Tak samo zachowuje się każdy krok zależny od położenia wiersza: usunięcie pierwszych wierszy w zapytaniu głównym obetnie wiersze tytułowe tylko z pierwszego pliku.

Expression.Error: Nie można znaleźć kolumny „Column1” w tabeli. (ang. The column 'Column1' of the table wasn't found.). Zgłasza go automatyczny krok Zmieniono typ z chwili łączenia plików, który wskazuje dawne nazwy Column1, Column2 i kolejne. Usuń ten krok krzyżykiem.Table.SelectRows(#"Nagłówki o podwyższonym poziomie", each [Sklep] <> "Sklep"). Pierwszej kolumnie przywróć nazwę Source.Name.W zapytaniu głównym otwórz filtr kolumny Sklep i wyszukaj na liście wartości słowo Sklep: nie powinno go tam być. Włącz na karcie Widok opcję Jakość kolumn i sprawdź, że w kolumnach liczbowych udział błędów wynosi 0%. Porównaj też liczbę wierszy z sumą wierszy danych w plikach. W kursie cztery pliki mają razem 9256 linii paragonów, a każdy zbłąkany nagłówek podniósłby ten wynik o jeden.
Żeby problem nie wrócił, trzymaj się podziału z lekcji: wszystko, co dotyczy pojedynczego pliku (wiersze tytułowe, nagłówki, wiersz Razem), robisz w zapytaniu Przekształć przykładowy plik, a typy danych, duplikaty i scalanie robisz w zapytaniu głównym. Po dodaniu nowego pliku do folderu odśwież wynik i sprawdź, czy liczba wierszy wzrosła dokładnie o liczbę wierszy danych w nowym pliku.
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...