Как вставить названия файлов в Excel: от простых способов до автоматизации

Работа с большими наборами файлов в Microsoft Excel часто требует добавления их названий прямо в таблицу. Например, когда вам нужно проанализировать данные из десятков документов или создать сводный отчёт с указанием источников. Вручную копировать имена файлов — долгий и чреватый ошибками процесс. К счастью, в Excel есть несколько способов автоматизировать эту задачу: от простых формул до мощных инструментов вроде Power Query и VBA.

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

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

В этой статье мы не будем ограничиваться теорией. Вы получите готовые шаблоны формул, скриншоты с пояснениями и даже макрос, который можно скопировать и использовать сразу. А если вы никогда не работали с VBA, не переживайте — мы разберём каждый шаг так, чтобы было понятно даже новичкам. Начнём с самого простого способа, который работает во всех версиях Excel без дополнительных надстроек.

Способ 1: Вставка имени текущего файла с помощью формулы

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

Формула выглядит так:

=CELL("filename")

Если ввести её в любую ячейку, Excel вернёт что-то вроде:

C:\Users\ИмяПользователя\Documents\[Отчёт_2026.xlsx]Лист1

Здесь видно не только имя файла (Отчёт_2026.xlsx), но и путь к нему, а также название листа (Лист1). Чтобы оставить только имя файла без расширения и пути, потребуется немного доработать формулу с помощью функций MID, FIND и LEN:

=MID(CELL("filename");FIND("]";CELL("filename"))+1;FIND(".";CELL("filename");FIND("]";CELL("filename")))-FIND("]";CELL("filename"))-1)

Эта формула ищет закрывающую скобку ] в пути (она обозначает конец пути и начало имени файла), а затем извлекает текст до первой точки (расширения). Если вам нужно оставить расширение, упростите формулу:

=MID(CELL("filename");FIND("]";CELL("filename"))+1;LEN(CELL("filename")))

Обратите внимание: если файл ещё не сохранён, функция CELL вернёт пустое значение. Также она не работает в Excel Online — только в десктопных версиях. Для облачной версии придётся использовать другие методы (о них расскажем далее).

Способ 2: Power Query для импорта имён файлов из папки

Если вам нужно получить список всех файлов в папке (например, ежемесячные отчёты за год), а не только текущего документа, на помощь придёт Power Query. Этот инструмент доступен в Excel 2016 и новее (включая Excel 365) и позволяет импортировать данные из внешних источников, в том числе из файловой системы.

Вот пошаговая инструкция:

  1. Перейдите на вкладку ДанныеПолучить данныеИз файлаИз папки.
  2. Укажите путь к папке с файлами и нажмите OK.
  3. В открывшемся окне вы увидите список всех файлов. Нажмите Преобразовать данные.
  4. В редакторе Power Query удалите ненужные столбцы (например, Date modified), оставив только Name.
  5. Нажмите Закрыть и загрузить, чтобы импортировать список в Excel.

Преимущество этого метода в том, что вы можете не только получить имена файлов, но и сразу загрузить данные из них (например, если все файлы имеют одинаковую структуру). А если файлы в папке обновляются, достаточно кликнуть Обновить на вкладке Данные, и список имён автоматически синхронизируется.

Убедитесь, что все файлы в папке имеют одинаковый формат (например, только .xlsx)

Проверьте права доступа к папке (Power Query не сможет прочитать файлы без разрешения)

Закройте все файлы из папки, чтобы избежать конфликтов при импорте

Создайте резервную копию данных на случай ошибок-->

Есть и ограничения: Power Query не показывает скрытые файлы и папки, а также может медленно работать с тысячами документов. Для таких случаев лучше использовать VBA (о нём расскажем в следующем разделе).

Способ 3: VBA-макрос для автоматического списка файлов

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

Откройте редактор VBA сочетанием клавиш Alt + F11, затем вставьте следующий код в новый модуль (Insert → Module):

Sub GetFileNames()

Dim folderPath As String

Dim fileName As String

Dim i As Integer

' Укажите путь к папке (замените на свой)

folderPath = "C:\Users\ВашеИмя\Documents\Отчёты\"

' Очищаем предыдущие данные (начиная с ячейки A1)

Range("A:A").ClearContents

' Получаем первый файл в папке

fileName = Dir(folderPath & "*.xlsx")

' Записываем имена файлов в столбец A

i = 1

Do While fileName <> ""

Cells(i, 1).Value = fileName

i = i + 1

fileName = Dir()

Loop

End Sub

Этот макрос:

  • 📁 Просит указать путь к папке (замените C:\Users\ВашеИмя\Documents\Отчёты\ на свой).
  • 📄 Ищет все файлы с расширением .xlsx в указанной папке.
  • 📋 Записывает их имена в столбец A, начиная с первой строки.

Чтобы запустить макрос, вернитесь в Excel и нажмите Alt + F8, выберите GetFileNames и кликните Выполнить. Если макросы отключены, включите их в Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов (выберите Включить все макросы).

Формула CELL

Power Query

VBA-макрос

Другой вариант-->

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

  • 🔍 Фильтровать файлы по дате создания (добавить FileDateTime).
  • 📂 Рекурсивно обходить вложенные папки.
  • 📊 Добавлять дополнительные столбцы с размерами файлов или датами изменения.
Как добавить путь к файлу в тот же список?

Чтобы вместе с именем файла выводить и его полный путь, замените строку Cells(i, 1).Value = fileName на:

Cells(i, 1).Value = folderPath & fileName

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

Способ 4: Гиперссылки с именами файлов

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

Синтаксис функции:

=HYPERLINK("путь_к_файлу"; "отображаемый_текст")

Например, если файл Отчёт_январь.xlsx лежит по пути C:\Отчёты\, формула будет такой:

=HYPERLINK("C:\Отчёты\Отчёт_январь.xlsx"; "Отчёт за январь")

Чтобы автоматизировать создание ссылок для всех файлов в папке, комбинируйте HYPERLINK с данными из Power Query или VBA. Например, если в столбце A у вас список имён файлов (полученный через Power Query), а в столбце B — пути к ним, формула в столбце C может выглядеть так:

=HYPERLINK(B1 & A1; A1)

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

  1. Создайте гиперссылку как описано выше.
  2. Выделите ячейку, кликните правой кнопкой → Формат ячеекВсплывающая подсказка.
  3. Введите текст подсказки (например, "Открыть отчёт за январь").

Этот метод особенно полезен для создания интерактивных дашбордов, где пользователю нужно быстро переключаться между связанными файлами. Например, в сводном отчёте по продажам можно сделать кликабельные ссылки на детализацию по каждому региону.

Способ 5: Динамические массивы в Excel 365 для работы с файлами

Если вы используете Excel 365 или Excel 2021, у вас есть доступ к динамическим массивам — мощному инструменту для работы с наборами данных. С их помощью можно не только получить список файлов, но и автоматически обновить его при изменении содержимого папки.

Вот как это работает:

  1. Создайте запрос Power Query для импорта имён файлов (как в Способе 2).
  2. Загрузите данные в Excel как таблицу (не как диапазон!).
  3. Используйте функции FILTER, SORT или UNIQUE для динамической обработки списка. Например, чтобы отобразить только файлы, содержащие слово "Отчёт":
    =FILTER(Таблица1[Name]; ISNUMBER(SEARCH("Отчёт"; Таблица1[Name])))

Преимущество динамических массивов в том, что они автоматически расширяются при добавлении новых данных. Например, если в папку добавили новый файл и обновили запрос Power Query, формула FILTER сразу покажет его в результатах, без необходимости вручную растягивать диапазон.

Ещё один полезный трюк — комбинировать динамические массивы с HYPERLINK для создания интерактивных панелей. Например:

=HYPERLINK("C:\Отчёты\" & FILTER(Таблица1[Name]; ISNUMBER(SEARCH("2026"; Таблица1[Name]))))

Эта формула создаст кликабельные ссылки на все файлы, в именах которых есть "2026".

=TEXTJOIN(", "; TRUE; Таблица1[Name])

Это удобно для создания сводных строк типа "Файлы в обработке: файл1, файл2, файл3".-->

Типичные ошибки и как их избежать

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

Ошибка Причина Решение
#VALUE! в формуле CELL("filename") Файл не сохранён или открыт в Excel Online Сохраните файл на диск или используйте Power Query
Макрос не находит файлы Неверно указан путь к папке или отсутствуют права доступа Проверьте путь (используйте \\ вместо \ для сетевых папок)
Гиперссылки не работают Файлы перемещены или переименованы Обновите пути вручную или используйте относительные ссылки
Power Query не показывает все файлы Файлы скрыты или имеют нестандартные расширения Включите отображение скрытых файлов в параметрах папки

Ещё одна частая проблема — длинные пути к файлам (более 260 символов). Windows по умолчанию ограничивает длину пути, и если ваш файл лежит глубоко вложенной папке, Excel может не увидеть его. Решения:

  • 📁 Переместите файлы ближе к корню диска (например, в C:\Отчёты\).
  • 🔧 Включите поддержку длинных путей в Windows 10/11 через реестр (требуются права администратора).
  • 💾 Используйте сетевые пути (\\server\папка\) — они часто обходят ограничение.
Как включить поддержку длинных путей в Windows?

1. Нажмите Win + R, введите regedit и нажмите Enter.

2. Перейдите к ключу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem.

3. Создайте параметр LongPathsEnabled типа DWORD со значением 1.

4. Перезагрузите компьютер.

⚠️ Будьте осторожны при работе с реестром — неверные изменения могут нарушить работу системы!

Если вы работаете с Excel Online, учтите, что многие методы (включая CELL("filename") и VBA) в нём не поддерживаются. В этом случае используйте Power Query или экспортируйте данные в десктопную версию для обработки.

Продвинутые сценарии: автоматизация с Python

Для пользователей, которым нужно обработать тысячи файлов или интегрировать Excel с другими системами, стоит рассмотреть Python. С помощью библиотек pandas и openpyxl можно автоматизировать задачи, которые в чистом Excel выполняются медленно или вообще невозможны.

Пример скрипта на Python, который читает все файлы .xlsx в папке и записывает их имена в новый файл:

import os

import pandas as pd

folder_path = "C:/Отчёты/"

output_file = "Список_файлов.xlsx"

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

files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx')]

Создаём DataFrame и сохраняем в Excel

df = pd.DataFrame(files, columns=["File Name"])

df.to_excel(output_file, index=False)

Преимущества этого подхода:

  • 🚀 Обработка больших объёмов данных (тысячи файлов).
  • 🔄 Интеграция с базами данных, API или облачными хранилищами.
  • 📊 Гибкая предобработка имён файлов (регулярные выражения, фильтрация).

Чтобы запустить такой скрипт, установите Python (например, через Anaconda) и библиотеки:

pip install pandas openpyxl

Для связи Python и Excel можно использовать xlwings — библиотеку, которая позволяет вызывать Python-скрипты прямо из Excel как макросы. Это открывает почти безграничные возможности для автоматизации.

FAQ: Ответы на частые вопросы

Можно ли вставить имя файла без расширения?

Да! Используйте комбинацию функций LEFT и FIND:

=LEFT(CELL("filename"); FIND("."; CELL("filename")) - 1)

Если в имени файла есть несколько точек (например, Отчёт.версия1.xlsx), используйте более сложную формулу с SUBSTITUTE или Power Query.

Почему макрос не видит файлы в сетевой папке?

Сетевые пути в VBA нужно указывать в формате \\server\папка\, а не Z:\папка\. Также проверьте права доступа — макрос выполняется с правами текущего пользователя.

Если проблема остаётся, попробуйте:

  • Открыть сетевую папку в Проводнике перед запуском макроса.
  • Использовать NetUse для подключения сетевого диска.
Как обновить список файлов автоматически?

Если вы используете Power Query, настройте автоматическое обновление:

  1. Кликните правой кнопкой по таблице с данными → Свойства.
  2. Установите флажок Обновлять при открытии файла.
  3. Задайте интервал автоматического обновления (например, каждые 10 минут).

Для VBA добавьте вызов макроса в событие Workbook_Open:

Private Sub Workbook_Open()

Call GetFileNames

End Sub

Можно ли получить имена файлов в Google Sheets?

В Google Sheets нет прямого аналога функции CELL("filename"), но можно использовать скрипты Google Apps Script. Вот пример:

function getFileName() {

return SpreadsheetApp.getActiveSpreadsheet().getName();

}

Чтобы вставить имя файла в ячейку, используйте формулу:

=getFileName()

Для работы с файлами в папке потребуется более сложный скрипт с DriveApp.

Как вставить имя файла в заголовок при печати?

Перейдите в Вид → Разметка страницы, затем:

  1. Кликните на область верхнего или нижнего колонтитула.
  2. Выберите Имя файла в списке полей (или введите вручную &[File]).
  3. Отформатируйте текст по желанию (шрифт, размер).

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