Разделить строку на первый разделитель

У меня есть столбец с длинным списком имен файлов и файлов. Папки и имена файлов различаются. Я хочу извлечь имя файла из столбца в другой столбец, но я изо всех сил стараюсь сделать это в Excel.

Пример данных столбца: (файлы и папка изменены, чтобы скрыть детали, которые не должны быть общедоступными)

c:\data\1\nc2\media\ss\system media\ne\d - wnd enging works v5.swf c:\data\1\nc2\media\ss\special campaigns\samns dec 2012\trainerv5.swf C:\Local\Messages\17362~000000001~20131231235910~4.MUF c:\data\1\nc2\media\ss\system media\tl\nd - tfl statusv4.swf c:\data\1\nc2\media\ss\system media\core\ss_bagage v2.swf 

Я знаю, что должен иметь возможность искать справа от первого появления «\», но я не могу понять синтаксис.

Большое спасибо

ОБНОВИТЬ:

Формула =RIGHT(B2,LEN(B2)-SEARCH("\",B2,1)) должна работать, но она показывает неправильные результаты. Но если я поменяю его на поиск "." он вытаскивает расширение файла. Итак, есть ключевой элемент, который мне не хватает

 =RIGHT(A1,LEN(A1)-FIND("~",SUBSTITUTE(A1,"\","~",LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))) 

скопируйте его в любой столбец, скажите b, перетащите вниз, вы закончите

VBA – более эффективный вариант, если у вас много файлов для разбора. Создайте модуль и добавьте следующее:

 Function GetFileName(file As String) As String Set fso = CreateObject("Scripting.FileSystemObject") GetFileName = fso.GetFileName(file) End Function 

Существует несколько различных способов получить текст после последней косой черты в строке, включая следующую формулу. В этом примере H15 – это ячейка, содержащая строку для поиска. Если он не может найти косой черты, он возвращает символ «-» (тире).

  =iferror(RIGHT(H15,LEN(H15)-SEARCH("|",SUBSTITUTE(H15,"/","|",LEN(H15)-LEN(SUBSTITUTE(H15,"/",""))))),"-") 

Сначала формула находит количество слэшей в строке. LEN дает общую длину строки, а LEN строки без косых черт после использования SUBSTITUTE для устранения косых черт в исходной строке – разница в числе косых черт.

Затем вы заменяете знак маркера (я использовал «|») для последней косой черты. При поиске маркера вы обнаружите, где бит после начала косой черты. Общая длина строки минус, где начинается маркер, указывает, сколько символов нужно брать справа, что вы затем делаете.

Если вам нужен более общий синтаксический анализ строк и вы готовы использовать немного VBA, вы можете использовать функцию split предложенную Джейми Буллом в его ответе на этот вопрос в SuperUser.

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

Я скопировал функцию Джейми здесь для удобства:

 Function STR_SPLIT(str, sep, n) As String Dim V() As String V = Split(str, sep) STR_SPLIT = V(n - 1) End Function 
  • Согласование трех столбцов на двух листах и ​​вставка определенного столбца из соответствия
  • Мне нужно переместить каждую строку в Excel
  • Несколько критериев If & Isblank Excel Formula
  • Excel для выполнения добавления, если ячейка четная или нечетная
  • Excel 2010: сравнить два столбца (A и C), найти точную строку соответствия, а затем вычесть их значения
  • Значения суммы в столбце на основе условий в другом столбце, а также значения
  • COUNTIFS с несколькими критериями
  • Формула Excel для передачи значений столбцов из нескольких листов, но не имеющих множественного значения, переданных по
  • Более короткая версия IF (ISERROR (...))
  • Столбец Excel заполняет несколько значений
  • Excel - найдите предыдущую дату для товара?
  • Interesting Posts

    Почему корейская версия Excel отличается от английской версии при запуске макросов?

    Сценарии изменений в нескольких книгах Excel

    excel vba копировать с одного листа на другой в определенном порядке

    Найти и заменить строку во всех файлах excel в папке

    Создайте макрос, чтобы найти последние 8 точек данных в столбце и переименовать

    Собирайте значения ячеек из столбца в другой таблице тех же рабочих книг

    Ошибка синтаксической ошибки силового запроса при сортировке данных работает, если не отсортировано

    Как игнорировать последние два слова в ячейке

    Не работает макрос Word 2010

    Excel VBA – загрузка текста блога без загрузки изображений

    «Транспорт не удалось подключиться к серверу» при отправке почты из Excel через Office 365

    Поиск элементов, которые уникальны в одном столбце, превосходят

    excel, сочетающий vlookup и некоторые сложные вычисления

    Arelle автоматизирует небольшую процедуру для переноса данных в Excel с помощью Python

    Мой обработчик ошибок работает только один раз, и я не понимаю, почему

    Давайте будем гением компьютера.