Путь к текущей книге и новая функция LET


В повседневной работе с Microsoft Excel нередко возникают ситуации, когда хорошо было бы в какой-либо определенной ячейке вывести либо полный путь к текущей книге (от буквы диска до расширения), либо путь к текущей папке, где наша книга хранится. Сделать это можно несколькими способами.

Способ 1. Вручную

Идем в Файл - Сведения и жмём в верхней части кнопку Копировать путь (File - Info - Copy path). После этого полный путь к текущей книге окажется у нас в буфере, откуда его можно вставить куда угодно стандартным образом (например, сочетанием клавиш Ctrl+V).

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

Способ 2. Функция ЯЧЕЙКА

Уже очень давно в Excel есть встроенная функция ЯЧЕЙКА (CELL), которая может выводить кучу разной полезной информации:


Если использовать её с аргументом "имяфайла" ("filename"), то мы получим почти то, что нам нужно:

Путь к файлу из функции ЯЧЕЙКА

Останется только обрезать хвост после закрывающей квадратной скобки с помощью функций ЛЕВСИМВ (LEFT) и НАЙТИ (FIND) и убрать открывающую квадратную скобку функцией ПОДСТАВИТЬ (SUBSTITUTE):

Путь к текущей книге

Способ 3. Новая функция LET

Как легко заметить, в предыдущей формуле дважды повторяется один и тот же фрагмент с функцией ЯЧЕЙКА. Чтобы немного сократить и упростить эту конструкцию, можно использовать новую обёрточную функцию LET:

Путь к текущей книге Excel с функцией LET

Первым аргументом этой функции будет имя переменной (любое, например, s), вторым - значение этой переменной (наша функция ЯЧЕЙКА), третьим - результирующая формула с участием созданной переменной.

Ссылки по теме

  


29.06.2022 20:23:33
Подскажите, а если в имени файла и/или пути есть символы "]", "[", тогда как быть?
P.S. Заметил, что в функции Ячейка второй аргумент не обязательный, можно не указывать
30.06.2022 11:06:11
В этом случае функция ЯЧЕЙКА заменит квадратные скобки на круглые, но потом можно выполнить обратную замену с помощью функции ПОДСТАВИТЬ. Если же у вас в имени файла и круглые и квадратные скобки, то это уже проблема :)

P.S. Если не указывать второй аргумент функции ЯЧЕЙКА, то при функция будет ломаться при активации другой открытой книги.
30.06.2022 18:39:31
P.S. Если не указывать второй аргумент функции ЯЧЕЙКА, то при функция будет ломаться при активации другой открытой книги.
Да, действительно, спасибо!
03.05.2024 16:09:44
Легче тогда Определить положение последней "\" и разделить по ней путь. Затем левую часть оставить без изменений, а правую подчистить. Остаётся потом только Объединить результат.
12.09.2023 14:28:58
Подскажите, если книга excel хранится в папке OneDrive, функция ЯЧЕЙКА("имяфайла") выводит путь начиная с https//d.docs.live.net... и если гиперссылка, то файл открывает с веб браузера. Как настроить что бы путь начинался с  D:\OneDrive\.....\.xlsx?
17.11.2023 20:16:18
Подскажите пожалуйста, как сделать запрос на папку, путь к которой прописан в текущей книге? (не на файл, а папку целиком)
18.11.2023 11:48:38
=ЛЕВСИМВ(ЯЧЕЙКА("имяфайла";A1);НАЙТИ("[";ЯЧЕЙКА("имяфайла";A1))-2)
Наверх