Czyli najprostszy z możliwych sposobów na łączenie danych z plików
Jeśli masz w jednym folderze wiele plików o tej samej strukturze – możesz szybko połączyć dane z tych plików w jeden zbiorczy plik. Potrzebujesz tylko Power Query i dosłownie kilka kliknięć myszką.
W moim przykładzie są dane sprzedażowe poszczególnych przedstawicieli handlowych – każdy ma swój plik nazwany jego imieniem. W każdym z tych plików znajduje się jeden arkusz, nazwany Sales, gdzie jest zakres z danymi do scalenia.
Zobacz dalej, jakie to proste…
Założenia
Zanim pokażę Ci tę prościutką i przyjemną metodę łączenia danych z plików – sprecyzuję w jakich okolicznościach można w ogóle tej metody użyć. Od razu mówię: w najprostszych z możliwych :).
- pliki znajdują się w jednym folderze,
- jeden arkusz z danymi do scalenia w plikach źródłowych,
- jednakowa liczba kolumn w scalanych zakresach,
- jednakowe nazwy kolumn w scalanych zakresach.
Założenia te obrazuje poniższy obrazek:
Jak widać – najprostsza sytuacja z możliwych: pliki w jednym miejscu, o identycznej strukturze. Ale często taką własnie sytuację mamy :).
Pamiętaj tylko, że do wykonania tego zadania potrzebne jest Power Query: od wersji 2016 w górę jest to wbudowana funkcjonalność; w 2010 i 2013 – należy doinstalować dodatek.
Kolejne czynności
- Najpierw mówimy Power Query skąd chcemy zaimportować dane, a jest to folder z naszymi plikami źródłowymi, czyli (nawigacja Excela 2016 i wyższych): Dane/ Pobierz dane/ Z pliku/ Z folderu:
2. Następnie, w okienku z obrazka poniżej wskazujemy folder, w którym znajdują się nasze pliki źródłowe (ze sprzedażą handlowców). Po wybraniu folderu – klikamy OK:
3. Pojawi się podgląd plików z wybranego folderu. Klikamy dalej Połącz/ Połącz i edytuj:
4. Kolejny krok to wybór szablonowego arkusza. Na jego podstawie Power Query stwierdzi z jakimi plikami ma do czynienia – klikamy w nazwę arkusza, u mnie to Sales. Krok ten zatwierdzamy OK:
5. Ostatni krok to już tylko załadowanie danych do Excela, czyli Plik/ Zamknij i załaduj. Przy tej instrukcji dane zostaną załadowane do nowego arkusza. Jeśli zaś chcesz, aby zostały załadowane do już istniejącego arkusza, polecam Ci opcję: Plik/ Zamknij i załaduj ▼ /Zamknij i załaduj do… i tam możesz wybrać gdzie dokładnie chcesz umieścić wynikowe dane:
Gotowe, połączone dane wyglądają tak:
Jak widać dostaliśmy bardzo ładną informację o nazwach plików źródłowych, z których pochodzą dane. W naszym przypadku akurat informacja ta nie jest potrzebna, ponieważ mamy już kolumnę z przedstawicielami handlowymi, natomiast nie zawsze tak musi być. Jeśli chcielibyśmy jedną z tych kolumn usunąć – trzeba byłoby to zrobić w edytorze Power Query, którego celowo w tym wpisie nie dotykam bardziej.
Rozwiązanie to jest mega proste, co czyni je cudownym! Każdy może je wykonać. Jest niestety mało eleganckie, ponieważ tworzy „śmietnik” w zapytaniach. Zobacz, ile ich zostało wygenerowanych (Dane/ Zapytania i połączenia):
Ale coś za coś… Sami oceńcie na ile to rozwiązanie się Wam przyda i na ile jesteście w stanie zaakceptować to „niedociągnięcie” ;).
A na koniec wersja wideo tego rozwiązania:
Powiązane produkty
- Power Query – wstęp dla laików – Celem tej lekcji jest wprowadzenie w magiczny świat Power Query wszystkich tych, którzy jeszcze nie mieli do czynienia z tym cudownym narzędziem. Coś tam kiedyś słyszeli, coś widzieli, ale jeszcze nic samodzielnie nie robili.
- Kurs online Mistrz Power Query, Adam Kopeć. Kurs jest dla osób, które nie miały wcześniej do czynienia z Power Query, pokrywa zagadnienia od początkowych do bardziej zaawansowanych, jak parametryzacja czy tworzenie własnych funkcji.
Podany link jest linkiem afiliacyjnym, czyli jeśli kupisz kurs za jego pośrednictwem – ja dostanę drobne wynagrodzenie.
Wow! Faktycznie proste. Moje pliki zawierają kolumny do dodawania, nie wersy. Czy tymi funkcjami da się też liczyć kolejne kolumny?
Hej Ula :). Jeśli dodasz te kolumny wszędzie z takimi samymi nazwami – jak najbardziej będzie OK (żeby PQ miało co dopasować do siebie) 🙂
Power QUERY jest bardzo pomocne, ale ostatnio stanąłem przed następującym problemem: jak w o365, gdzie nie ma POWER QUERY zaciągnąć dane do Arkusza 1 z pozostałych arkuszy??
Wszystko w obrębie jednego pliku, ale excel w o365 jest bardzo ubogi :/
Hmmm… jeśli nie PQ to może VBA? Tylko to już kawałek kodu…
Ale jak to w O365 nie ma PQ? Zobacz zakładką Dane:
A jak jest jeden folder główny i w nim są podfoldery i w każdym podfolderze jest plik Excela to już się nie da… 🙁
Hej, tak, to byłoby już trudniejsze łączenie 🙂
Hej, niestety nie – powyższe zakłada najprostszy scenariusz…
Super! Ale jak nie chcemy mieć wszystkiego w jednej tabeli tylko w kolejnych arkuszach, to jak to zrobić?
Witam,
mam mały problem, mianowicie PQ łączy wszystko idealnie ale kolumny we wszystkich plikach muszą być w tej samej kolejności. natomiast u mnie zdarza się że w plikach kolumny są pozamieniane między sobą. Wówczas na wykresie kwartalnym widzę skoki wartości, idealnie na przejściu miesiąca (miesięczne zrzuty danych).
czy istnieje narzędzie które rozpozna i przypisze odpowiednie kolumny do siebie jednocześnie łącząc pliki ?
Hej,
Trzeba trochę pokombinować z tym w pasku formuły Power Query.
W funkcji Excel.Workbook ustaw przedostatni argument na true. Dzięki temu, kolumny łączone będą wg nagłówków, a nie kolejności kolumn.
Super rozwiązanie, dziękuje za instrukcję.
Maggie, super, bardzo się cieszę, że CI się przydało 🙂
Hej, mam takie pytanie.. czy PQ pomoże jeśli mam dane w jednym folderze, dane a w zasadzie ich uklad jest identyczny zawsze ale każdy skoroszyt ma inną nazwę arkusza? Chodzi o to że mam 10 plikow excel z jedną zakłada ale każdy ma inną nazwę która jest data np 01072021, 02072021 itd. Czy da się to polaczyc? Póki co pojawia się błąd i nie wiem jak go ominąć? Czy taki problem jest gdzieś opisany? Dziękuję :*
Hej, niestety w sposobie, który zaprezentowałam w tym artykule, nazwy arkuszy muszą być takie same.
Trzeba byłoby bardziej wgryźć się w PQ, żeby sobie z tym poradzić. Albo prelecieć makrem po wszystkich tych plikach i pozmieniać nazwę pierwszego arkusza :).
Jest wiele plików w jednym katalogu, o identycznej strukturze. Są to pliki .csv (można ew. przerobić je na .xls z jednym arkuszem tak samo nazwanym). W pliku wynikowym w kolejnych wierszach powinien się znaleźć jeden wiersz z kolejnego pliku źródłowego, zawsze ten sam np. o nr 51. Czyli w pliku wynikowym:
wiersz 51. z pliku1
wiersz 51. z pliku2
wiersz 51. z pliku3
…
Jak to zrobić i czy da się zautomatyzować?
Pojawia mi się komunikat – „Lista może być niekompletna”, czyli nie nadaje się to rozwiązanie niestety do moich danych…za dużo ich mam 🙁