В первый день моей работы в небольшой консалтинговой фирме мне на три дня поручили небольшой проект.
Работа была простой.
На сетевом диске было много папок, и в каждой папке были сотни файлов.
Мне нужно было выполнить следующие три шага:
Выберите файл и скопируйте его имя.
Вставьте это имя в ячейку Excel и нажмите Enter.
Перейдите к следующему файлу и повторите шаги 1 и 2.
Звучит просто, правда?
Это было просто – просто и огромная трата времени.
То, что у меня заняло три дня, можно было бы сделать за несколько минут, если бы я знал правильные методы.
В этом уроке я покажу вам различные способы сделать весь этот процесс очень быстрым и очень простым (с VBA и без него).
Это руководство охватывает:
Ограничения методов, показанных в этом руководстве: с помощью методов, показанных ниже, вы сможете получить имена файлов только в основной папке. Вы не получите имена файлов в подпапках в основной папке. Вот способ получить имена файлов из папок и подпапок с помощью Power Query
Использование функции FILES для получения списка имен файлов из папки
Слышали о функции FILES раньше?
Не волнуйтесь, если вы этого не сделали.
Это из детства электронных таблиц Excel (формула версии 4).
Хотя эта формула не работает в ячейках рабочего листа, она по-прежнему работает в именованных диапазонах. Мы будем использовать этот факт, чтобы получить список имен файлов из указанной папки.
Теперь предположим, что у вас есть папка с названием «Тестовая папка» на рабочем столе, и вы хотите получить список имен файлов для всех файлов в этой папке.
Вот шаги, которые дадут вам имена файлов из этой папки:
В ячейке A1 введите полный адрес папки, за которым следует знак звездочки (*).
Например, если ваша папка на диске C, то адрес будет выглядеть как C:\Users\Sumit\Desktop\Test Folder\*
В папке, из которой вы хотите получить имена файлов, либо создайте новую книгу Excel, либо откройте существующую книгу в папке и используйте приведенную ниже формулу в любой ячейке. Эта формула даст вам адрес папки и добавит в конце знак звездочки (*). Теперь вы можете скопировать и вставить (вставить как значение) этот адрес в любую ячейку (A1 в этом примере) в книге, в которой вы хотите имена файлов.
[Если вы создали новую книгу в папке, чтобы использовать приведенную выше формулу и получить адрес папки, вы можете удалить ее, чтобы она не отображалась в списке файлов в этой папке]
Хотите извлечь файлы с определенным расширением??
Если вы хотите получить все файлы с определенным расширением, просто измените звездочку на это расширение файла. Например, если вам нужны только файлы Excel, вы можете использовать *xls* вместо *
Таким образом, адрес папки, который вам нужно использовать, будет C:\Users\Sumit\Desktop\Test Folder\*xls*
Точно так же для файлов документов Word используйте *doc*
Как это работает?
Формула FILES извлекает имена всех файлов указанного расширения в указанной папке.
В формуле ИНДЕКС мы задали имена файлов в виде массива и возвращаем 1-е, 2-е, 3-е имена файлов и т. д. с помощью функции СТРОКА.
Обратите внимание, что я использовал ROW()-2, так как мы начали с третьей строки и далее. Таким образом, ROW()-2 будет равно 1 для первого экземпляра, 2 для второго экземпляра, если номер строки равен 4, и т. д. и т. д.
Посмотреть видео – получить список имен файлов из папки в Excel