Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Power Query w Excelu, Power BI i Fabric
Łączenie plików z folderu: brakuje kolumn z nowych plików
Łączenie plików z folderu działa miesiącami, aż system źródłowy dopisze do eksportu nową kolumnę, na przykład kanał sprzedaży. Nowy plik trafia do folderu, odświeżenie przechodzi bez błędu, a nowej kolumny w wyniku nie ma. Gdy w Power Query łączenie plików gubi kolumny, przyczyna leży w krokach zbudowanych na pliku przykładowym. Pokazujemy, które to kroki i jak przestawić je na wszystkie pliki.
W folderze są pliki za kilka miesięcy, a najnowszy ma kolumnę więcej, na przykład Kanał. Po Odśwież wszystko połączona tabela ma tyle kolumn co wcześniej. Kolumna Source.Name pokazuje wiersze z nowego pliku, ale bez wartości z dodatkowej kolumny, a Power Query nie pokazuje żadnego komunikatu ani komórki z błędem.
Sprawdziliśmy to w polskim Excelu na dwóch poziomach. Funkcja Csv.Document z opcją Columns=3 odczytała plik z czterema kolumnami jako trzy kolumny i bez błędu pominęła wartość z czwartej: z wiersza 2026-05-01;WAW1;10;online zostało 2026-05-01, WAW1 i 10. Z kolei krok rozwijania z nazwami kolumn pobranymi z pierwszego pliku dał tylko Source.Name, Data i Kwota, choć drugi plik miał też kolumnę Kanał.
Łączenie plików z folderu tworzy grupę zapytań pomocniczych: Przykładowy plik (domyślnie pierwszy plik z folderu), Parametr1, Przekształć przykładowy plik i funkcję Przekształć plik, wywoływaną dla każdego pliku. Kroki powstają na pliku przykładowym i zapamiętują jego układ.
Pierwsze miejsce to krok Źródło w zapytaniu Przekształć przykładowy plik. Dla plików CSV zawiera on wywołanie Csv.Document z rekordem opcji, a w nim między innymi Columns, czyli liczbę kolumn pliku przykładowego. Plik z jedenastoma kolumnami przy Columns=10 zostanie odczytany jako dziesięć. Drugie miejsce to krok rozwijania w zapytaniu głównym: Table.ExpandTableColumn(#"Usunięto inne kolumny1", "Przekształć plik", Table.ColumnNames(#"Przekształć plik"(#"Przykładowy plik"))). Lista kolumn do rozwinięcia pochodzi z pliku przykładowego, więc kolumna, której ten plik nie ma, nie zostanie rozwinięta, nawet jeśli funkcja ją odczyta. Do tego krok Zmieniono typ ma zapisaną listę kolumn z pliku przykładowego, a nowa kolumna zostaje bez typu.

Columns= z liczbą kolumn, na przykład Columns=10.Columns=10, razem z przecinkiem i zatwierdź klawiszem Enter. Formuła przyjmie postać w rodzaju = Csv.Document(Parametr1, [Delimiter=";", Encoding=65001, QuoteStyle=QuoteStyle.None]). W naszym teście bez tej opcji plik z czterema kolumnami dał wszystkie cztery: Data, Sklep, Kwota i Kanał. Funkcja Przekształć plik przejmie tę zmianę automatycznie dla wszystkich plików.= Table.ExpandTableColumn(#"Usunięto inne kolumny1", "Przekształć plik",
List.Union(List.Transform(#"Usunięto inne kolumny1"[Przekształć plik], Table.ColumnNames)))W naszym teście taki krok rozwinął kolumny Data, Kwota i Kanał, a w wierszach z pliku bez kolumny Kanał wpisał null.Any.Type.Po zmianach odśwież zapytanie i sprawdź listę kolumn połączonej tabeli: nowa kolumna jest na miejscu, a w wierszach ze starszych plików ma wartość null. Filtr kolumny Source.Name na najnowszy plik pokaże, czy wartości z nowej kolumny doszły. Zrób też test z kursu: dodaj do folderu kolejny plik, kliknij Odśwież wszystko i porównaj liczbę załadowanych wierszy w okienku Zapytania i połączenia z sumą wierszy w plikach.
Żeby problem nie wrócił, w opcjach Csv.Document zostaw ogranicznik, kodowanie i sposób traktowania cudzysłowów, a listę kolumn do rozwinięcia licz zawsze ze wszystkich plików. Jeśli raport wymaga stałego zestawu kolumn, wybieraj je po połączeniu krokiem Table.SelectColumns z parametrem MissingField.UseNull, który zamiast błędu tworzy pustą kolumnę.
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...