1413

Получение списка файлов в папке

В Excel, путём проведения нехитрых махинаций, имеется возможность получения списка файлов, находящихся в папке компьютера. Для этого копируем путь к файлам в папке и вставляем его в нужную ячейку, при этом в конце пути необходимо указать маску поиска файлов вида:

1. *.* – все файлы;

2. *.xl* – все файлы Excel (xls, xlsx, xlsm, xlsb и т.д.);

3. *.exe – все исполняемые файлы (программы);

4. *.docx (doc, docm) – все документы Word. Добавив ключевое слово Рок*.docx в список войдут все названия файлов, начинающиеся со слова «Рок».

Получение списка файлов в папке Excel, Таблица, Полезное, Лайфхак, На заметку, Длиннопост

Дальше нажатием Ctrl+F3 или на вкладке «Формулы» - «Диспетчер имён», в открывшемся окне создадим новое имя Список_файлов и введём в строку Диапазон следующую формулу =ФАЙЛЫ(Лист1!$A$1) где «Лист1» – это название листа, а «А1» – ячейка с адресом

Получение списка файлов в папке Excel, Таблица, Полезное, Лайфхак, На заметку, Длиннопост

Теперь в созданном нами названии «Список_файлов» уже содержатся нужные имена файлов, осталось их оттуда извлечь. Для этого используем в ячейке А3 следующую формулу и протянем её вниз: =ЕСЛИОШИБКА(ИНДЕКС(Список_файлов;СТРОКА()-2);””)

Получение списка файлов в папке Excel, Таблица, Полезное, Лайфхак, На заметку, Длиннопост

Функция ЕСЛИОШИБКА нужна, чтобы спрятать ошибку #ССЫЛКА, которая возникает, когда мы протягиваем формулу "с запасом", т.е. на больший по размеру диапазон, чем количество имеющихся у нас файлов.


Функция ИНДЕКС извлекает из массива элемент по номеру, например, формула =ИНДЕКС(Список_файлов; 5) выдаст имя пятого по счету файла в папке.


Функция СТРОКА, выдает порядковый номер текущей строки, из которого мы вычитаем 2, т.к. первая ячейка, куда выводится имя, в нашем случае А3.

Найдены дубликаты

+16

`dir C:\path\to\dir`

`ls /path/to/dir | grep -e 'regex'`

раскрыть ветку 3
+2

Это смотря для чего.

У меня описанное ТС-ом работает в макросе сбора данных из текстовых файлов генерируемых CMM машиной.

Файл с макросом копируется в папку с выбранной горой текстовых отчетов и макрос делает из кучи барахла удобокопируемые данные.

Если бы делал для себя- может и морочился бы с текстовым файлом и батниками. Но задача была сделать файл для работы необученого ничему оператора. Чтобы нажал кнопку и всё получилось.

раскрыть ветку 2
+2

Использование экселя для получения данных, безусловно, удобно когда потом эти же данные надо обрабатывать в экселе. Но в общем случае использовать. Эксель для получения списка файлов менее удобно, чем воспользоваться программами, которые прямо для этого и предназначены (не уверен что dir это программа, а не команда оболочки — сам я по юниксам).

P.S. Конкретно в вашем случае я бы складывал это все в какую-нибудь СУБД, после чего эти данные можно удобно обработать и проанализировать, скорее всего гораздо быстрее, чем в экселе, если данных ДЕЙСТВИТЕЛЬНО много (гигабайты и больше). Я бы смотрел в сторону Clickhouse.

раскрыть ветку 1
+35
заебал, давай уже дум портируй в эксель
раскрыть ветку 1
+2

Держи

+6

Спасибо, уважаемый. Очень часто бывает нужно на чужом компе, особенно где нет стороннего файлового менеджера. А на тех кто визжат, что "ненужно", не обращайте внимание, любые знания нужны и могут пригодиться, чем больше инструментов, тем проще решаются нетривиальные задачи.

+10

Для копирования названий файлов с папки использовал другой способ. Ctrl+A, shift+пкм, копировать как путь. А там уже через замену удалял путь, остаётся название.

Иллюстрация к комментарию
раскрыть ветку 1
+2
пакетно ведь не получится )
+5

еще один вариант

Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку 1
0

Сложно для объяснения. Особенно редактор отчетов.

У ТСа конструкция, которую при паре модификаций можно просто копировать в нужную папку, открывать файл  и получать список. 


Функция


Function MyFullPath() As String

MyFullPath = ThisWorkbook.Path

End Function



В ячейке получается формула

=CONCATENATE(MyFullPath(),"\")

Получаем путь к папке, куда мы наш файл положили

А дальше можно уже добавить чего хотим искать (например в моем случае это

=CONCATENATE(MyFullPath(),"\","*_chr.txt")

И после этого индексом вытягиваем список файлов по маске, которые нам нужны и пользуемся.

+9

А не проще DIR *.mp3 > 123.txt и этот файл открыть в экселе.

раскрыть ветку 4
+8

Тогда уж только имена фалов: dir /b *.mp3 > 123.txt

Тут изобрели не велосипед, а велосипедище.

раскрыть ветку 1
0
Решение нормального человека 😁 я тоже так делаю
+1

Нет, не проще. Много телодвижений.  Для однокнопочного сотрудника не подойдет.

Вам же к этому инструкцию на куче листов придется писать. С картинками.

А у ТС-а скопировать в папку с файлами=>открыть.

раскрыть ветку 1
+1

как однокнопочный сотрудник ответственно заявляю, ничего в ветке комментов непонятно, у ТСа все огонь и я впервые смогу нормально импортировать изображения в ЭДО у себя на работе....

Спасибо!

+4

Следующий этап

+3
Я папку перетаскиваю в браузер и выдает типа фтп со списком папок, это если надо очень быстро
+5

благо тотал коммандер в пару кликов умеет копировать и имена и путь

раскрыть ветку 2
+1

Тотал так же сохраняет выделение в файл, а там уже просто копировать из блокнота в эксель, получится быстрее чем как в посте.

0

Если в линуксе скопировать файл/папку, а потом втавить туда, где нужен текст, то вставится полный путь. Если правильно помню, для нескольких выделеных файлов скопируютс все пути. То есть надо лишь Ctrl+a, Ctrl+c.

+4

Ловите плюсик за Раммштайн)) ну и за полезную информацию, конечно!

раскрыть ветку 4
+5

Rammstein uber allen

раскрыть ветку 2
0

Если в ячейках стоит 5*8 и так весь столбец текстовый, можно ли быстро все это преобразовать в формулу =5*8 ?

раскрыть ветку 1
-1
Раааадиииооо!
+1
В фаре Ctrl Shift Insert на выделении скопирует в буфер пути к выделенным файлам разделив их переводом строки.
раскрыть ветку 1
0
Специально искал, ну хоть кто нибудь про Far упомянет. Пользуюсь только им.
+1

А чтобы еще папки и файлы в папках учитывались?

раскрыть ветку 2
0
мне тоже интересна возможность подтягивать и подпапки со вложенными файлами по маске :)

...через cmd/bat быстро делается, выгружается в txt, txt открывается в xls. но вдруг без лишних шагов и знаний нативными средствами екселя, все же, можно :)
раскрыть ветку 1
+1

Примерно так. #comment_153215691

Но нужно разрешение использовать макросы.

+1

Скорее беги постить на хабр.

Иллюстрация к комментарию
+1

Можно просто bat файл создать, положить в папку и запустить


Создаем список папок, подпапок и всех файлов в них в виде дерева


chcp 1251

tree /F /A>название.txt

exit

раскрыть ветку 1
+1

А можно просто вызвать cmd, зажав шифт и пкм на папке...

+1

Привет.

Можно ли в данные поля забивать логическое "или", "и", "отрицание" в обход текстовых фильтров?

Вроде когда то натыкался на инфу, но забыл уже.

Иллюстрация к комментарию
раскрыть ветку 1
+1

А вот это - классная штука. Спасибо!

+1
вопрос наверно не по адресу, но я думаю, вы сможете мне подсказать)
как сделать так, чтобы ячейки закрашивались определенным цветом, при внесении в нее какого-либо числа (разные цвета для интервалов чисел, например 1-10 зеленым, 11-15 желтым и т.д.)? help me 🙏
раскрыть ветку 2
+8
Условное форматирование Вам в помощь!
раскрыть ветку 1
0
больщущее спасибо)
0
PS C:\> Get-ChildItem -Path C:\mp3\ -Filter *.mp3 | select Name | Export-Csv -Path C:\TMP\mp3_list.csv -Encoding UTF8 -NoTypeInformation
раскрыть ветку 1
0

Отлично!   А теперь попробуй объяснить это оператору с тремя классами образования.

0

А как єто реализовать в google exel? Или в libreoffice?

0
Вот это вовремя!! Только вчера думал как такое организовать.
В кабинете у меня диктофон, подключенный к компу. При наличии звука пишет. При отсутствии прекращает запись. Соответственно список файлов вывести уже могу.
Можно ли в соседнем столбце вывести атрибуты соответствующего файла? В моем случае - длительность mp3? Или его размер?
0
Кто ты такое?)
0
Интересная штука. Полезность её категорически не представляю, но она забавная.
0

Спасибо! А можно сделать наоборот?

Есть файл, который нужно клонировать много раз. Названия копий файлов есть (собственно и сами файлы пока есть).

0
А FLAC в конце каждой песни - это код или намёк на Кристиана Лоренца?)))
раскрыть ветку 1
0

Это формат сжатия аудио файлов без потерь. Если грубо, то как mp3, только размер больше.

0
Где ты раньше был...
0

Когда не взяли в IT))))

0

Подскажите пожалуйста почему при поставленной галочке "перенос по словам" клеточку автоматически не расширяется.

раскрыть ветку 1
0

Сделайте автоподбор по высоте

0

ты заебал в моём компе лазить!

0
А возможно ли в экселе реализовать следующее: есть таблица 10 строк, 20 столбцов (не суть на самом деле), так вот допустим там в столбце есть имена людей в каждой ячейки разное имя, и я хочу поиском сразу найти несколько имен, например ctrl+F, ввожу ' Игорь, Юра, Дима, Саша, Лена, ну и конечно же Олег" , и чтобы он и нашел сразу, а не по одному имени вбивать каждый раз
раскрыть ветку 2
0

Нашел и что-то с ними сделал? Что именно нужно получить на выходе? Если закрасил- то условное форматирование.

Ну или просто отфильтруйте их.

Или добавьте столбец с цифрой /булевым : присутствует в списке "Игорь, Юра, Дима, Саша, Лена, ну и конечно же Олег" или нет. Можно ВПР|ГПР-ом(VLOOKUP|HLOOKUP ), можно  MATCH ,  или COUNTIF(s).   Вам это надо в списке или отдельная табличка только с указанными гражданами? Или еще и отчет по их среднему возрасту и фамилиям?  Может в сторону сводных таблиц глянете?


Вариантов много, ибо задача вами описана плохо и непонятно, кто это будет делать - вы или отдел с дикой текучкой и как часто это надо делать вообще.

0

разве что записать в макрос последовательность как вы создаете правило для условного форматирования, и потом копипастой менять там ключевое искомое слово

0
А теперь то же самое для bash, ls и egrep, пожалуйста
0
Уау!
0

А можно ли сделать, чтобы имена файлов были ссылками на эти файлы?

раскрыть ветку 1
0

Есть другой способ. Можно написать макрос, который будет вытаскивать названия всех файлов в папке (и вложенных в том числе), а также их полный путь расположения.

А дальше есть стандартная формула Экселя - ГИПЕРССЫЛКА(Адрес;имя) - всё это мы уже вытащили макросом.


В конкретном случае из поста: можно воспользоваться функцией СЦЕПИТЬ, которая соединит путь с названием файла, и функцией ГИПЕРССЫЛКА сделать её кликабельной.


В любом случае это умеет делать функция ГИПЕРССЫЛКА, только нужно иметь полный путь к файлу.

-1
Прочитал пост до конца только из-за слова RAMMSTEIN
-3
Я пока читал, уснул, блин, кино кончилось, да?
Похожие посты
Возможно, вас заинтересуют другие посты по тегам: