Jak pobrać nazwy wszystkich plików z określonego folderu do kolejnych komórek?

Czasami potrzebujemy pobrać nazwy wszystkich plików do kolejnych wierszy w Excelu. Przykładowo każdy plik może zawierać oceny konkretnego pracownika, a pliki powstają przy eksportowaniu danych z jakiegoś zewnętrznego programu. No i chcemy zrobić sobie tabelkę z podsumowaniem. W niniejszym wpisie opiszę jak to zadanie można wykonać na 3 różne sposoby za pomocą różnych narzędzi. Pierwsza rzecz jaka mi przyszła do głowy to wykorzystanie Power Query.

Power Query

Na początek przejdź na kartę Dane a następnie wybierz polecenie Pobierz dane -> Z pliku -> Z folderu.

Pojawi się okno dialogowe Przeglądaj w którym należy wskazać odpowiedni folder i kliknąć w przycisk Otwórz.

Następnie pojawi się okno dialogowe Nawigatora. Tutaj na dobrą sprawę możesz kliknąć w przycisk Załaduj a cała ta tabelka pojawi się w nowym arkuszu. Ja jednak zachęcam do kliknięcia w przycisk Przekształć dane dzięki czemu będziemy mogli obrobić dane.

Po kliknięciu w przycisk Przekształć dane załaduje się edytor Power Query. Co możemy zrobić? Ja np. umyślnie wrzuciłem do folderu plik o nazwie wydruk.pdf. Dlaczego? Bo czasem może się zdarzyć sytuacja gdy ktoś w naszym folderze z plikami excelowymi przez przypadek wrzuci jakiś plik nie związany z ocenami pracowników. Dlatego w kolumnie Extension ustawiłem filtr tak aby były brane pod uwagę tylko pliki z rozszerzeniem xlsx.

Jak ktoś chce to np. na kolumnie Date created lub Date modified może ustawić własne kryterium (np. interesują nas pliki tylko z tego roku).

Kolejna ważna rzecz – jeśli w naszym folderze byłyby podfoldery z innymi plikami, to te pliki również byłyby zaimportowane. Na szczęście ostatnia kolumna w naszej tabelce to Folder Path gdzie również można nałożyć odpowiedni filtr.

Jeśli już wedle własnych kryteriów odfiltrujesz rekordy to możemy się pozbyć tych wszystkich kolumn (założenie jest takie, że interesują nas nazwy plików). W tym celu kliknij prawym przyciskiem myszy na kolumnie Name i wybierz opcję usuń inne kolumny.

Gdy została nam tylko kolumna z imionami i nazwiskami to możemy chcieć np. pozbyć się z nazwy pliku jego rozszerzenia. W tym celu jeszcze raz kliknij prawym przyciskiem myszy na kolumnie Name i wybierz polecenie Zamień wartości.

W oknie dialogowym zamienianie wartości w polu Wartość do znalezienia wpisz .xlsx a pole Zamień na zostaw puste i kliknij w przycisk OK.

Następnie możesz jeszcze chcieć rozdzielić imię o nazwiska. Zauważ, że w moim przypadku imię od nazwiska oddziela „dolnik”. Czasem imię od nazwiska może rozdzielać spacja. Aby rozdzielić imię od nazwiska może wybrać polecenie Podziel kolumny-> Według ogranicznika.

Pojawi się okno dialogowe Dzielenie kolumny według ogranicznika. Należy wskazać ogranicznik (w naszym wypadku jest to symbol dolnika, ale czasem może to być np. spacja). Inna ciekawa opcja to Ogranicznik najdalej z prawej strony. O co tutaj chodzi: jeśli miałbym np. plik o nazwie Jan_Maria_Rokita to w pierwszej kolumnie by był ciąg znaków Jan_Maria a w drugiej kolumnie Rokita. Dzięki temu osoby z dwoma imionami „nie rozwalają” nam tabelki.

I po tych wszystkich bojach możemy jeszcze zmienić nazwy kolumn tj. Name.1 zmieniamy na ImięName.2 na Nazwisko. Następnie na karcie Narzędzia główne możemy kliknąć w przycisk Zamknij i załaduj. I mamy świetnie pobrane imiona i nazwiska naszych pracowników.

Alternatywa – Total Commander

Pierwszy kontakt z komputerem miałem za czasów, gdy Windows to była taka kolorowa nakładka na DOSa. Windowsa 3.11 to włączałem tylko po to, aby Paintem się pobawić lub pograć w sapera. Głównie siedziałem w DOSie i grałem w jakieś gry albo coś tam kodowałem w QBasicu lub Turbo Pascalu. Aby wygodniej nawigować po drzewie folderów używałem menedżera plików Norton Commander. Jako, że się wychowałem na NC to do dziś moim ulubionym menedżerem plików jest Total Commander.

I jedną z fajnych funkcji jest możliwość skopiowania nazw plików do schowka. Tylko najpierw należy wszystkie pliki zaznaczyć (albo poprzez naciśnięcie gwiazdki na klawiaturze numerycznej lub poprzez wybranie polecenia Zaznacz wszystko z menu Zaznacz. Następnie z menu Zaznacz należy wybrać polecenie Kopiuj wybrane nazwy do schowka.

I to tyle, teraz wystarczy przejść np. do Excela ustawić kursor np. w komórce A2 i wkleić zawartość schowka. Nazwy plików będą ładnie wypisane w kolejnych wierszach w kolumnie A.

Alternatywa – Prosta pętla w VBA

Jeśli jesteś programistą z krwi i kości, albo posiadasz starego Excela (np. 2007), możesz napisać prostą pętle, która do kolejnych wierszy w aktywnym arkuszu wypisze nazwy plików:

Sub WypiszNazwyPlikow()
    Dim Katalog As String
    Dim Plik As Object
    Dim Folder As Object
    Dim Licznik As Long
    
    Katalog = "v:\pracownicy\"
    Set Folder = CreateObject("Scripting.FileSystemObject").GetFolder(Katalog)
    
    Cells(1, 1) = "Pracownik:"
    Licznik = 2
    
    For Each Plik In Folder.Files
        Cells(Licznik, 1) = Plik.Name
        Licznik = Licznik + 1
    Next Plik
    
    Set Folder = Nothing
    Set Plik = Nothing
End Sub

Jeśli artykuł Ci się podobał, będę wdzięczny gdy go udostępnisz w mediach społecznościowych
Ten wpis został opublikowany w kategorii Power Query. Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.