Blog JSystems - uwalniamy wiedzę!

Szukaj

Power Query w Excelu, Power BI i Fabric

Plik przykładowy przy łączeniu plików - jak zmienić plik, na którym budujesz kroki

W skrócie

  • Kroki łączenia plików z folderu Power Query buduje na pliku przykładowym, domyślnie pierwszym z listy. Gdy to stary albo nietypowy eksport, kroki pasują tylko do niego, a połączone dane mają błędy albo brakujące kolumny.
  • Zapytanie Przykładowy plik wybiera pierwszy wiersz listy plików (fragment {0} w formule). Na tym pliku działa Przekształć przykładowy plik, z jego kroków powstaje funkcja dla wszystkich plików i z jego wyniku pochodzi lista kolumn.
  • Przy łączeniu wskaż typowy plik na liście Przykładowy plik w oknie Połącz pliki. Po fakcie zmień w zapytaniu Przykładowy plik wybór {0} na wybór po nazwie albo po regule, na przykład najnowszy plik, i przejrzyj kroki od nowa.

Zmiana pliku przykładowego w Power Query przydaje się wtedy, gdy pierwszy plik w folderze odbiega od pozostałych: ma stary układ, mniej kolumn albo inną liczbę wierszy nad nagłówkiem. Pokazujemy, jak rozpoznać, że kroki zbudowano na nietypowym pliku, i jak wskazać inny plik przykładowy przed łączeniem i po nim. Przykłady opieramy na miesięcznych eksportach sprzedaży fikcyjnej firmy Nordvella z naszego kursu.

Jak to wygląda w praktyce

W zapytaniu Przekształć przykładowy plik wszystko wygląda dobrze: wiersze tytułowe zniknęły, nagłówki są na miejscu. Kłopot widać dopiero w zapytaniu głównym, w jednej z dwóch postaci.

  • Zapytanie główne zatrzymuje się na błędzie, na przykład Expression.Error: Nie można znaleźć pola „Data” w rekordzie. (ang. The field 'Data' of the record wasn't found.). Tak kończy się sytuacja, w której plik przykładowy miał dwa wiersze nad nagłówkiem, a pozostałe pliki mają trzy. Krok usuwający dwa pierwsze wiersze zostawia w nich pusty wiersz, kolumny dostają nazwy Column1, Column2, Column3 i filtr po kolumnie Data nie ma czego szukać.
  • Zapytanie działa, ale brakuje kolumny, która jest w nowszych plikach, na przykład Kanał. Lista kolumn w kroku rozwinięcia pochodzi z wyniku dla pliku przykładowego, więc kolumna, której on nie ma, nie trafia do połączonej tabeli.

Dlaczego tak się dzieje

Po wybraniu Łączenie i przekształcanie danych Power Query tworzy w grupie Zapytania pomocnicze zapytanie Przykładowy plik. W kodzie wygenerowanym w naszej lekcji o Dataflow Gen2 widać, że ma ono własną kopię kroków listy plików i kończy się wyborem jej pierwszego wiersza:

Nawigacja = #"Filtrowano pliki ukryte"{0}[Content]

Fragment {0} oznacza pierwszy wiersz listy, czyli plik, który akurat stoi na górze. Na tym pliku działa Przekształć przykładowy plik, z jego kroków powstaje funkcja Przekształć plik wywoływana dla każdego pliku, a krok rozwinięcia w zapytaniu głównym pobiera nazwy kolumn z wyniku dla pliku przykładowego: Table.ColumnNames(#"Przekształć plik"(#"Przykładowy plik")). Plik przykładowy decyduje więc o tym, co widzisz podczas budowania kroków, i o tym, jakie kolumny będzie miał wynik. Filtr dodany później w zapytaniu głównym nie zmienia tego wyboru, bo zapytanie Przykładowy plik korzysta z własnej listy.

Jak to rozwiązać krok po kroku

  1. Przed łączeniem: w oknie Połącz pliki rozwiń listę Przykładowy plik i zamiast pozycji Pierwszy plik wybierz plik o typowym układzie, najlepiej jeden z ostatnich eksportów. Podgląd w oknie pokaże wybrany plik, więc przed kliknięciem OK sprawdzisz, czy wiersze tytułowe i kolumny wyglądają tak jak w pozostałych plikach.
  2. Po łączeniu: kliknij w panelu Zapytania zapytanie Przykładowy plik i zaznacz ostatni krok na liście Zastosowane kroki. Jeśli nie widzisz paska formuły, włącz go na karcie Widok polem Pasek formuły. Formuła kończy się fragmentem {0}[Content].
  3. Zamień {0} na wybór po nazwie pliku, na przykład {[Name = "Nordvella_sprzedaz_2026-01.csv"]}, i zatwierdź Enterem. Nazwę przepisz dokładnie z kolumny Name listy plików. Gdy ten plik zniknie z folderu albo zmieni nazwę, zapytanie zgłosi Expression.Error: Klucz nie pasuje do żadnego wiersza w tabeli. (ang. The key didn't match any rows in the table.).
  4. Wybór odporny na nowe pliki uzyskasz regułą zamiast nazwy. Przed wyborem wiersza posortuj listę od najnowszego pliku: Table.Sort(Źródło, {{"Date modified", Order.Descending}}){0}[Content] albo zostaw tylko pliki z właściwym początkiem nazwy: Table.SelectRows(Źródło, each Text.StartsWith([Name], "Nordvella_sprzedaz_2026")){0}[Content]. Zamiast Źródło wpisz nazwę kroku, który w Twojej formule stoi przed {0}.
  5. Kliknij Przekształć przykładowy plik i przejdź przez listę Zastosowane kroki od góry, klikając kolejne kroki. Podgląd pokazuje już nowy plik, więc zobaczysz, czy liczba usuwanych wierszy tytułowych i filtry nadal pasują. Gdy liczba wierszy nad nagłówkiem różni się między plikami, zamień stałą liczbę na warunek: Table.Skip(Źródło, each [Column1] <> "Data") pomija wiersze aż do wiersza nagłówka w każdym pliku.
  6. W zapytaniu głównym usuń krok Zmieniono typ, jeśli zgłasza brak kolumny, i ustaw typy od nowa przyciskiem Wykryj typ danych na karcie Przekształć. Gdy krok rozwinięcia ma w formule Table.ColumnNames(#"Przekształć plik"(#"Przykładowy plik")), sam pobierze listę kolumn z nowego pliku przykładowego. Kolumna Kanał pojawi się wtedy w wyniku, a w wierszach ze starszych plików, które jej nie mają, będzie pusta.
  7. Jeśli nietypowy plik w ogóle nie powinien trafić do danych, przenieś go z folderu albo dodaj filtr po kolumnie Name w obu miejscach: w zapytaniu głównym i w zapytaniu Przykładowy plik.
Okno Połącz pliki w Power Query z listą Przykładowy plik ustawioną na Pierwszy plik, kodowaniem UTF-8, ogranicznikiem średnik i podglądem pliku
Okno Połącz pliki z listą Przykładowy plik ustawioną na Pierwszy plik. Podgląd pokazuje ten plik: dwa wiersze tytułu i pusty wiersz nad nagłówkiem, przez co kolumny nazywają się Column1, Column2 i tak dalej.

Jak sprawdzić, że zadziałało

W zapytaniu głównym kliknij Grupowanie według, pogrupuj po kolumnie Source.Name i policz wiersze. Na liście powinien pojawić się każdy plik z folderu, a liczby wierszy powinny odpowiadać plikom. Włącz na karcie Widok opcję Jakość kolumn i sprawdź, że kolumny nie mają błędów, a kolumny z nowszych plików, takie jak Kanał, są obecne. Krok grupowania usuń po sprawdzeniu.

Na przyszłość trzymaj w folderze pliki jednego układu, a plik przykładowy wybieraj regułą, na przykład po nazwie albo dacie, a nie położeniem na liście. Gdy dostawca danych zmieni układ eksportu, wróć do zapytania Przekształć przykładowy plik i sprawdź kroki na nowym pliku, zanim odświeżysz raport.

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

Baner szkolenia Microsoft Excel - Power Query w JSystems z edytorem Power Query na ekranie laptopa

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

Najczęściej zadawane pytania

Czy zmiana pliku przykładowego zmienia to, które pliki trafią do wyniku?
Nie. Funkcja Przekształć plik działa na każdym pliku z listy w zapytaniu głównym, niezależnie od tego, który plik jest przykładowy. Zmienia się podgląd, na którym budujesz kroki, oraz lista kolumn pobierana przy rozwinięciu wyniku, dlatego po zmianie sprawdź kroki i kolumny.
Gdzie w Excelu znajdę zapytanie Przykładowy plik?
W panelu Zapytania edytora Power Query, w grupie Przekształć plik z: z nazwą zapytania głównego, w podgrupie Zapytania pomocnicze. Obok są Parametr1, funkcja Przekształć plik i zapytanie Przekształć przykładowy plik, w którym budujesz kroki dla każdego pliku.
Co się stanie, gdy plik wskazany po nazwie zniknie z folderu?
Zapytanie Przykładowy plik zgłosi błąd Expression.Error: Klucz nie pasuje do żadnego wiersza w tabeli. Zapytanie główne, które pobiera z niego listę kolumn, też przestanie działać. Jeśli pliki w folderze się wymieniają, wybieraj plik regułą, na przykład najnowszy według kolumny Date modified.
Dlaczego po zmianie pliku przykładowego pojawiła się kolumna z pustymi wartościami?
Krok rozwinięcia pobiera nazwy kolumn z wyniku dla pliku przykładowego. Jeśli nowy plik przykładowy ma kolumnę, której nie mają starsze pliki, pojawi się ona w wyniku, a w wierszach ze starszych plików będzie pusta. To zgodne z danymi, bo starsze eksporty tej informacji nie zawierały.

Komentarze (0)

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

Brak komentarzy...