Страницы: 1
RSS
Как локализовать данные до ближайшего \ справа?
 
Частенько длина пути .mp3 файлов бывает разная (зависит от количества и глубины подпапок) и непросто четко раскидать их по ячейкам по разделителю \. Пока в голову пришла идея, но не знаю как ее реализовать. Короче, имеется таблица где конечная (правая) ячейка (имя файла) предваряется разделителем косая линия \. Для удобной сортировки не по пути к файлу, а по имени файла, хочется перекинуть имя файла (последняя косая линия справа) Исполнитель - Hазвание песни.mp3 в отдельную колонку L (их вертикальная нумерация должна совпадать). Расширение песен в моей большой таблице (там 64000 строк на каждой странице) не только mp3, но и .wma, .wav, .mp4, .m4a и если моя задумка осуществима, в формуле это тоже надо учесть. То есть, все они должны попасть в колонку L. Был-бы признателен за помощь.
Изменено: Excaz - 28.03.2017 13:31:41
 
Такую формулу проверьте:
=ПСТР(A2;НАЙТИ("@";ПОДСТАВИТЬ(A2;"\";"@";ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;"\";""))))+1;99)
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
еще вариант
Код
=СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(A2;"\";ПОВТОР(" ";100));100))
Лень двигатель прогресса, доказано!!!
 
Ну на этой крошечной таблице все правильно показывает. Сейчас проверю на своей большой таблице. А что означает +1;99, не ограничение ли в количестве строк? Оно у меня бывает разное, от 10 до 64000. Пока спасибо. Будем тестить.
О-о, проверил на своей большой таблице. Всё супер. Названия песен в отдельной колонке.
Изменено: Excaz - 28.03.2017 15:47:40
 
Нет, не ограничивает. Ограничивает количество возвращаемых формулой знаков. Если 99 мало, можете поставить число больше.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
То есть, 99 это предельное количество знаков в ячейке? Вообще, всякие ограничения лучше снять, т.к. в будущем могут попасться длиннющие (мне попадались из 300 знаков) песни или название песни из одного слова.

Сергей, формула тоже подходит. Спасибо. Только 100 что означает, это не ограничение строк? Оно у меня должно быть "плавающим", т.е. у меня таблицы бывают разные, и маленькие 20 строк и большие несколько десятков строк. На больших таблицах формула остается неизменной?
 
Ограничивает количество возвращаемых формулой знаков. Если у Вас длина названия песни будет <=99 (как по мне этого более чем достаточно ) то выведет полностью название песни. Если будет больше 99, то выведет меньше на длина названия-99. Обрежет с конца. Только в этом случае вы увидите что что-то не так. Такой способ вполне корректный. Можно выводить точное количество знаков, но для этого нужно формулу еще удлинить, а она и без того не короткая.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
смотрим файл
Лень двигатель прогресса, доказано!!!
 
Цитата
Bema написал: Ограничивает количество возвращаемых формулой знаков
А почему нельзя сразу вместо 99 поставить 300? Я же не знаю, завтра попайдется длинная по названию песня, считать количество знаков в каждой песнe неохота. А так поставил в формуле 300 и сиди спокойно, не пропустит длинные песни. А что это чревато глюком в главной формуле?
 
Цитата
Excaz написал:
А почему нельзя сразу вместо 99 поставить 300?
Цитата
Bema написал:
Если 99 мало, можете поставить число больше.
Уже писал об этом.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Ничего не понимаю. А почему у меня не находит при элементарном поиске идентичное имя файла (Исполнитель - Название песни.mp3), которое и в колонке А и в (созданной) L и что добавить в формулу, чтобы совпадение в имени файла стало 100%-тным?
Изменено: Excaz - 28.03.2017 14:26:00
 
Excaz, не валите все вопросы в одну кучу по данной теме получили ответ, другой вопрос другая тема, тем более
Цитата
Excaz написал:
в колонке А и в (созданной) L
что вы там создали и что ищете нам не известно
Лень двигатель прогресса, доказано!!!
 
В исходной таблице (Книга5) всего 2 строки. Оригинальная в А и нововозданная в L. Копирую имя файла с L и поиск мне не находит тот же фрагмент (Исполнитель -Название песни), что в колонке А. Почему?
Изменено: Excaz - 28.03.2017 15:48:51
 
Из правил: один вопрос- одна тема. По теме вы получили 2 варианта решения с пояснениями.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Разобрался. Извините за беспокойтсво.
 
вариант функций vvv или uuu
 
Код
Function vvv(t$)
  vvv = StrReverse(Split(StrReverse(t), "\", 2)(0))
End Function
Код
Function uuu$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "[^\\]+": .Global = True
    uuu = .Execute(t)(.Execute(t).Count - 1)
 End With
End Function
Изменено: sv2013 - 28.03.2017 15:50:57
Страницы: 1
Наверх