Note: The other languages of the website are Google-translated. Back to English

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

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

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


Извлечь имя файла из полного пути с формулой в Excel

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

Выберите пустую ячейку, введите в нее приведенную ниже формулу и нажмите Enter .

=MID(A1,FIND("*",SUBSTITUTE(A1,"\","*",LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))+1,LEN(A1))

Советы: A1 - это ячейка, из которой вы хотите извлечь имя файла), и нажмите кнопку Enter, затем перетащите маркер заполнения, чтобы заполнить нужный диапазон. После этого имя файла извлекается из каждой ячейки.

выдержка из документа имя1


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

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

1. Удерживайте ALT + F11 , чтобы открыть Окно Microsoft Visual Basic для приложений.

2. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.

Function FunctionGetFileName(FullPath As String) As String
'Update 20140210
Dim splitList As Variant
splitList = VBA.Split(FullPath, "\")
FunctionGetFileName = splitList(UBound(splitList, 1))
End Function

3. Нажмите другой + Q ключи, чтобы закрыть Microsoft Visual Basic для приложений окно и вернитесь к рабочему листу. В пустой ячейке, например B1, введите в нее приведенную ниже формулу и нажмите Enter .

=FunctionGetFileName(A1)

doc-extract-filenames1

Затем снова выберите ячейку B1, перетащите маркер заполнения в диапазон, в котором вы хотите применить эту формулу, и все имена файлов были извлечены из полных путей, как следующий результат:

doc-extract-filenames1


Извлечь имя файла из полного пути с кодом VBA

Помимо функции, определяемой пользователем, код VBA также может помочь вам извлечь имена файлов. Пожалуйста, сделайте так:

1. Удерживайте ALT + F11 , чтобы открыть Окно Microsoft Visual Basic для приложений.

2. Нажмите Вставить > Модулии вставьте следующий код в окно модуля.

Sub GetFileName()
'Update 20140210
Dim Rng As Range
Dim WorkRng As Range
Dim splitList As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
    splitList = VBA.Split(Rng.Value, "\")
    Rng.Value = splitList(UBound(splitList, 1))
Next
End Sub

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

doc-extract-filenames1

4, Затем нажмите OK, имена файлов были извлечены из выбора следующим образом:

Внимание: С этим кодом VBA исходные данные будут уничтожены, поэтому вы должны скопировать их перед применением этого кода.


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (2)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Формула поднимает #ЗНАЧ! ошибка, если исходная ячейка начинается только с имени файла. Встраивание всей формулы в функцию ЕСЛИОШИБКА решает эту проблему, например, =ЕСЛИОШИБКА( ,А1)
Этот комментарий был сведен к минимуму модератором на сайте
Очень полезная функция. Есть ли способ изменить сценарий, чтобы он находил имя файла, если путь имеет косую черту \ или /?

У меня есть электронная таблица с различными гиперссылками, в которых базовые пути разделены либо \, либо / (обратная косая черта или косая черта). сервер документов. Или, может быть, это потому, что некоторые ссылки на пути сделаны с абсолютными и относительными ссылками?

например:

../../../../Документы/2ndQuarter/2019/standardcost_widget12345.pdf
or
\fileserver\factory23\Operations\Parts_Mgt\Documents\2ndQuarter\2019\standardcost_widget12345.pdf


Когда я запустил функцию getfilename, она получила все имена файлов, которые были в путях с \ между каталогами или папками, но ссылки с косой чертой / были возвращены как есть.
Я изменил и добавил вторую функцию, которая была похожа, но заменила «\» в строке 4 на «/» и назвала ее forwardslashgetfilename и запустила ее в отдельном столбце после запуска первой функции.

Запускать одну функцию за другой несложно, но мне было любопытно, можно ли расширить код операции splitList в строке 4, чтобы включить как «\», так и «/». Я не программист VBA, но я попробовал splitList = VBA.Split(FullPath, "\" или "/"), и это не сработало.

Мысли? Я предполагаю, что это какой-то простой синтаксис - я просто не в курсе... но я начну ковыряться в паутине...

Tks!
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL