Привет. Чтобы получить имя листа в Экселе, было бы удобно использовать специальную функцию. Однако, на момент написания этой статьи, такой функции в программе нет. Поэтому, будем выкручиваться, как сможем.

Для решения задачи нам потребуется три функции:

  1. Функция ЯЧЕЙКА(тип_сведений; [ссылка]). С её помощью мы получим полный путь к ячейке в файловой системе вашего компьютера. Подробнее об этой функции – здесь;
  2. Функция НАЙТИ(текст для поиска; исходный текст; [Начальная позиция]). Используем её для поиска места в пути к ячейке, где начинается имя файла. В этой статье рассказано, как ею пользоваться;
  3. Функция ПСТР(строка; начальный_символ; количество_символов) – выведет на экран тот участок пути, где содержится имя листа. Вот описание работы функции: https://officelegko.com/2016/01/03/kak-izvlech-chast-teksta-v-eksel/

А теперь, пошагово напишем формулу Эксель для получения имени листа.

  • Определим полный путь к ячейке: =ЯЧЕЙКА(«имяфайла»; A1). Результат получим в таком виде: папка[Имя_файла]Имя_листа. Например, так: D:\EXCEL\[пример.xlsx]Лист1.

    Обратите внимание, что в полученной строке название листа идёт сразу после закрывающей квадратной скобки!

  • Найдём в этой строке порядковый номер символа, с которого начинается имя листа. Напомню, это следующая буква после закрывающей квадратной скобки: =НАЙТИ(«]»; ЯЧЕЙКА(«имяфайла»; A1))+1. Для приведенного выше примера результат будет 23;
  • Выведем на экран часть строки с именем. Начальным номером здесь будет найденное значение (23), а длина – максимально допустимая: 255. =ПСТР(ЯЧЕЙКА(«имяфайла»; A1); НАЙТИ(«]»; ЯЧЕЙКА(«имяфайла»; A1))+1; 255)

Мы успешно определили имя листа, задача выполнена! Вы можете скачать описанный пример по ссылке ниже.

Скачать пример