Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Еще…Меньше
Предположим, что вы хотите добавить в табличный отчет сведения, подтверждающие расположение книги и листа, чтобы быстро находить и идентифицировать их. Эту задачу можно решить несколькими способами.
Вставка текущего имени файла, его полного пути и имени активного листа
Введите или вставьте следующую формулу в ячейку, в которой нужно отобразить текущее имя файла с полным путем и именем текущего листа.
=ЯЧЕЙКА(«filename»)
Вставка текущего имени файла и имени активного листа
Введите или вставьте следующую формулу в виде формула массива, чтобы отобразить текущее имя файла и имя активного листа.
=ПРАВСИМВ(ЯЧЕЙКА(«filename»);ДЛСТР(ЯЧЕЙКА(«filename»))- МАКС(ЕСЛИ(НЕ(ЕОШ(ПОИСК(«»;ЯЧЕЙКА(«filename»); СТРОКА(1:255))));ПОИСК(«»;ЯЧЕЙКА(«filename»);СТРОКА(1:255)))))
Примечания:
-
Чтобы ввести формулу в виде формулы массива, нажмите клавиши CTRL+SHIFT+ВВОД.
-
Формула возвращает имя листа, если он был сохранен хотя бы один раз. Если вы используете эту формулу на несохраненном листе, ячейка формулы останется пустой, пока вы не сохраните лист.
Вставка только текущего имени файла
Введите или вставьте следующую формулу, чтобы вставить имя текущего файла в ячейку.
=ПСТР(ЯЧЕЙКА(«filename»);ПОИСК(«[«;ЯЧЕЙКА(«filename»))+1; ПОИСК(«]»;ЯЧЕЙКА(«filename»))-ПОИСК(«[«;ЯЧЕЙКА(«filename»))-1)
Примечание: Если вы используете эту формулу на несохраненном листе, вы увидите сообщение об ошибке #ЗНАЧ! в ячейке. После сохранения листа ошибка заменяется именем файла.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Нужна дополнительная помощь?
Как вписать имя файла в ячейку формулой. |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Микки Пользователь Сообщений: 3280 |
Добрый день , а есть функция выводящая имя файла и имя листа в ячейку? Лучше поотдельности. |
subtlety Пользователь Сообщений: 375 |
|
Микки Пользователь Сообщений: 3280 |
я понимаю что удф такую можно написать … но мне лучше функцию |
Микки Пользователь Сообщений: 3280 |
Там для имени листа … |
subtlety Пользователь Сообщений: 375 |
Напишите просто: |
Микки Пользователь Сообщений: 3280 |
=ПСТР(ЯЧЕЙКА(«имя_файла»),ПОИСК(«[«,ЯЧЕЙКА(«имя_файла»))+1, ПОИСК(«]»,ЯЧЕЙКА(«имя_файла»))-ПОИСК(«[«,ЯЧЕЙКА(«имя_файла»))-1) |
Микки Пользователь Сообщений: 3280 |
=ЯЧЕЙКА(«имяфайла») кстати почему -то тоже не пашет |
subtlety Пользователь Сообщений: 375 |
Посмотрите справку по этой функции. Если Excel новых (2007-2010) версий, наберите =ЯЧЕЙКА( |
ShAM Пользователь Сообщений: 469 |
{quote}{login=Микки}{date=28.03.2012 12:34}{thema=}{post}=ПСТР(ЯЧЕЙКА(«имя_файла»),ПОИСК(«[«,ЯЧЕЙКА(«имя_файла»))+1, ПОИСК(«]»,ЯЧЕЙКА(«имя_файла»))-ПОИСК(«[«,ЯЧЕЙКА(«имя_файла»))-1) |
Вот — для возврата имени листа (офис 2010): |
|
Serge Пользователь Сообщений: 11308 |
Миш, универсально, для всех версий, всех локалей, волатильно: Имя книги: Имя листа: |
Микки Пользователь Сообщений: 3280 |
Спасибо ShAM и гость ..получилось |
ShAM Пользователь Сообщений: 469 |
|
Микки Пользователь Сообщений: 3280 |
#15 28.03.2012 15:00:09 Спасибо Сереж сохранил (в сердце) |
Извлечем
имя
файла
из
полного
имени
файла
(C:WINDOWSTXTChapter text03.txt)
Предположим, в ячейке
А1
имеется текстовая строка, содержащая полное имя файла
C
:
WINDOWS
TXT
Chapter
text
03.
txt
.
Записав формулу (см.
файл примера
):
=ПСТР(A1; НАЙТИ(СИМВОЛ(1);ПОДСТАВИТЬ(A1;»»;СИМВОЛ(1);ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;»»;»»))))+1; ДЛСТР(A1))
Получим имя файла:
text
03.
txt
Также можно использовать следующую формулу:
=СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(A1;»»;ПОВТОР(» «;257));256))
Формула заменяет каждый обратный слеш () на 257 пробелов, затем функция
ПРАВСИМВ()
возвращает 256 правых символов из строки, т.е. имя файла с пробелами слева. Функция
СЖПРОБЕЛЫ()
убирает пробелы перед именем файла.
In this guide, we’re going to show you how to get filename from path in Excel. We will cover how to do this with and without VBA.
Download Workbook
File path and file name
A file path is a string identifier that specifies the unique location in a file system. It contains folders in a hierarchical order following by a file name. Each element is separated by a delimiter which is usually a backslash «». The goal of getting filename from path is to parse that filename after the last delimiter.
Warning: If your paths contain another separator, update the formulas by replacing backslash («») with the separator character fits your case.
We will show you four different approaches to get filename from path in Excel.
Conservative method
Our first approach is using well known Excel functions MIN, SUBSTITUE and LEN to get the file name. You can use this formula in any Excel version.
=MID(<path>,FIND(«*»,SUBSTITUTE(<path>,»»,»*»,LEN(<path>)-LEN(SUBSTITUTE(<path>,»»,»»))))+1,LEN(<path>))
This formula has couple of steps:
- At the inner section, all separators («») get replaced with empty strings.
- The formula subtracts the length of substituted path (1) from original path to find the number of separators.
- The outer SUBSTITUTE function replaces the last separator («») with «*». Obviously, the last separator’s instance is equal to number of separators (2).
- Finally, the FIND locates the «*» character, and the MID function parses the file name after the character.
VBA with FileSystemObject
You can use VBA to create your own custom functions which you can use in worksheet as well. Of course, you can use this function in your macros as well.
The code is very short. It uses GetFileName method of FileSystemObject object. The important section of the code is the initializing of the object. The following code sets FileSystemObject object to fso variable.
Set fso = CreateObject(«Scripting.FileSystemObject»)
Once the object is initialized, use the GetFileName method by providing the path.
GetFileNameFromPath_FSO = fso.GetFileName(«C:Excel FilesDashboards.xlsm»)
The above line returns «Dashboard.xlsm» string. Here is the function version you can use in your worksheets as well.
Function GetFileNameFromPath_FSO(ByVal Path As String) As String Set fso = CreateObject("Scripting.FileSystemObject") GetFileNameFromPath_FSO = fso.GetFileName(Path) End Function
VBA with a recursive function
A recursive function is function which calls itself. The recursive approach acts like an iteration and helps us to parse values starting from the end of a string. You could have used recursive functions only in VBA until the LAMBDA function has been released. Because the most of Excel users do not have access to the LAMBDA function, we will show you VBA version which any Excel user can use.
This function has only few rows as well. The function’s name is GetFilenameFromPath_Recursive and take a single argument named Path.
The first row is a logical test that checks if the last character in the argument is a backslash («») or not and if the argument is not an empty string. If the test is passed, the function returns itself with the argument without its last character and the last character of the path. This is where the recursion occurs.
The function runs itself until coming up a backslash («») or not a character left. It parses the characters from the right side and combines them with each run.
The last row contains a standard End If statement which determines where the If block ends.
Function GetFilenameFromPath_Recursive(ByVal Path As String) As String If Right$(Path, 1) <> "" And Len(Path) > 0 Then GetFilenameFromPath_Recursive = GetFilenameFromPath_Recursive(Left$(Path, Len(Path) - 1)) & Right$(Path, 1) End If End Function
Using LAMBDA to get filename from path
If you are Microsoft 365 subscriber, you can create recursive functions without using VBA. Briefly, the LAMBDA function is a special function that converts named ranges into user defined functions. Its syntax allows you to define arguments and a custom formula which uses that defined arguments.
For example, let’s say my custom function will have two arguments and returns multiplication of two arguments. All I need to is creating a named range, such as «MyLambda» and enter the following formula into Refers to box.
Syntax | Sample Formula | Sample Result |
=LAMBDA(x, y, x*y) | =MyLambda(2,3) | 6 |
If you call the named range «MyLambda» in the «MyLambda» function, you will create a recursive function. Same logic can be applied to VBA function at previous section.
The following is the LAMBDA version of our VBA code. The function’s name is GetFileNameFromPath_Lambda. Check out how the function calls itself after IF function’s logical test.
=LAMBDA(Path,IF(AND(RIGHT(Path,1)<>»»,LEN(Path)>0),GetFileNameFromPath_Lambda(LEFT(Path,LEN(Path)-1))&RIGHT(Path,1),»»))
Warning: Do not forget to update formula name in the formula if you change the named range’s name. Otherwise, the function returns #NAME? error due to incorrect function name.
Using LAMBDA Function with different approach
Alternatively, you can use the LAMBDA function without calling the «function name». The definition may sound complicated since you must call the function in the function by its name. This structure dictates you to update each occurrence of the name every time change the function’s name.
You can overcome this necessity by using another Microsoft 365-specific function called LET. The LET function allows you to define named ranges in a formula scope. You can define repeating values or blocks into these names and use them continuously.
If you define the name of the LAMBDA function in the formula, you can use the in-formula name over and over to make the function recursive. In our example, we create the name «Func» in the formula and call it within self. Outer LAMBDA function is to give the whatever name we want, «GetFileNameFromPath_LambdaMe».
=LAMBDA(Path,LET(Func,LAMBDA(ME,Path,IF(AND(RIGHT(Path,1)<>»»,LEN(Path)>0),ME(ME,LEFT(Path,LEN(Path)-1))&RIGHT(Path,1),»»)),Func(Func,Path)))
Как вставить имя файла или путь в ячейку / верхний или нижний колонтитул в Excel?
Предположим, вы хотите вставить имя файла или путь к файлу в ячейку, верхний или нижний колонтитул Excel, как бы вы могли быстро выполнить эту операцию?
Вставить текущее имя файла или путь в ячейку с формулой
Вставить текущее имя файла или путь в верхний / нижний колонтитул с помощью функции верхнего и нижнего колонтитула
Вставьте текущее имя файла или путь в ячейку/верхний или нижний колонтитул с помощью Kutools for Excel
Вставить текущее имя файла или путь в ячейку с формулой
С помощью следующих формул вы можете быстро вставить имя файла, путь или имя листа в заданную ячейку.
Товары | Формула | Пример |
Только имя файла | = MID (ЯЧЕЙКА («имя файла»), ПОИСК («[«, ЯЧЕЙКА («имя файла»)) + 1, ПОИСК («]», ЯЧЕЙКА («имя файла»)) — ПОИСК («[«, ЯЧЕЙКА («имя файла «)) — 1) | продукты features.xlsx |
Только путь к файлу | = ЛЕВАЯ (ЯЧЕЙКА («имя файла»; A1); НАЙТИ («[«; ЯЧЕЙКА («имя файла»; A1); 1) -1) | C: Users dt Desktop Новая папка |
Только активное имя листа | = ПРАВО (ЯЧЕЙКА («имя файла»), LEN (ЯЧЕЙКА («имя файла»)) — НАЙТИ («]», ЯЧЕЙКА («имя файла»), 1)) | Sheet7 |
Текущее имя файла, путь к файлу и активное имя листа | = ЯЧЕЙКА («имя файла») | C: Users dt Desktop Новая папка [products features.xlsx] Sheet7 |
Ноты:
1. Скопируйте любую формулу выше, которая вам нужна, в указанную ячейку, и вы получите нужный результат.
2. Открытая книга должна быть сохранена.
Вставить текущее имя файла или путь в верхний / нижний колонтитул с помощью функции верхнего и нижнего колонтитула
Если вы хотите вставить имя файла или путь к файлу в верхний или нижний колонтитул рабочего листа, вы можете использовать функцию верхнего и нижнего колонтитула.
1. На ленте щелкните Вставить > Верхний и нижний колонтитулы.
2. В разделе верхнего или нижнего колонтитула будет три поля редактирования, нажмите оставил, центр or Ringht поле, в которое вы хотите вставить имя файла или путь. Тогда под Дизайн вкладку нажмите Путь к файлу, Имя файла or Имя листа что вам нужно вставить. Смотрите скриншот:
Затем щелкните любую ячейку, и вы увидите, что путь к файлу или имя или имя листа были вставлены в верхний или нижний колонтитул. Смотрите скриншоты:
Вставьте текущее имя файла или путь в ячейку/верхний или нижний колонтитул с помощью Kutools for Excel
Kutools for ExcelАвтора Вставить информацию о книге это многофункциональный инструмент, он может помочь вам быстро и удобно вставить имя рабочего листа, имя книги, путь к книге или путь и имя книги в ячейки Excel, верхний или нижний колонтитул.
После установки Kutools for Excel, пожалуйста, сделайте, как показано ниже Бесплатная загрузка Kutools for Excel Сейчас!)
1. Нажмите Кутулс Плюс > Рабочие инструменты > Вставить информацию о книге, см. снимок экрана:
2. В Вставить информацию о книге В диалоговом окне выберите информацию о книге, которую вы хотите вставить, на левой панели, а затем выберите место, куда вы хотите вставить информацию. Смотрите скриншот:
3. Затем нажмите OK. Если вы вставите информацию о wotkbook в ячейку, вы получите следующий результат:
Если вы вставляете информацию о книге в верхний или нижний колонтитул, вы можете выбрать место, куда вы хотите вставить информацию, левый, Правильно or Центр. И вы можете предварительно просмотреть верхний или нижний колонтитул из Вид > Макет страницы.
Чтобы узнать больше об этой функции, посетите Вставить информацию о книге.
Вставить информацию о книге
Наконечник.Если вы хотите вставить несколько пустых строк или столбцов в каждую n-ю строку, попробуйте использовать Kutools for ExcelАвтора Вставить пустые строки и столбцы как показано на следующем снимке экрана. Полная функция без ограничений в течение 60 дней, пожалуйста, скачайте и получите бесплатную пробную версию сейчас.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Вставка только текущего имени файла
Автор Ermash, 27.08.2009, 12:35
« назад — далее »
Добрый день!
Скопировала с официального сайте MO формулу, которая обещает:
Вставку только текущего имени файла
=ПСТР(ЯЧЕЙКА(«имя_файла»),ПОИСК(«[«,ЯЧЕЙКА(«имя_файла»))+1, ПОИСК(«]»,ЯЧЕЙКА(«имя_файла»))-ПОИСК(«[«,ЯЧЕЙКА(«имя_файла»))-1)
НО она не «запускается»
Что здесь не так или что надо сделать, чтобы это заработало?
Спасибо!
Потому что там разделитель запятая, а должен быть ;. И эта формула без привязки к ячейке будет выдавать имя файла, в котором была последний раз активирована любая ячейка. Чтобы привязать к конкретному файлу, надо добавить любую ячейку в этом файле:
=ПСТР(ЯЧЕЙКА("имяфайла";A1);ПОИСК("[";ЯЧЕЙКА("имяфайла";A1))+1;
ПОИСК("]";ЯЧЕЙКА("имяфайла";A1))-1-ПОИСК("[";ЯЧЕЙКА("имяфайла";A1)))
СПАСИБО!
все понятно и работает )))
- Профессиональные приемы работы в Microsoft Excel
-
►
Обмен опытом -
►
Microsoft Excel -
►
Вставка только текущего имени файла