Страницы: 1
RSS
Как формулой заменить сразу несколько указанных символов ?
 
Всем здрасьте.
Задача такая: пользователь заполняет реестр с данными и автоматом для каждой записи формируется имя файла. Пользователь его копирует и переименовывает файл со счетом.
Проблема такая: теоретически, номер счета может содержать знаки (символы), кои не могут быть в имени файла.
Вот

Хочу формульно их обнаружить и, при наличии, заменить на "-".  
Без макроса.
Для одного символа понятно, функция "подставить", кою и использую. Но как сконструировать сразу для нескольких?

Понимаю, что можно через многоэтажные условия, но такое решение - как-то не кашерно. Всяко должно быть покрасивее.
Дайте, плиз, "на водку" )
Изменено: Сергей Евдокимов - 21.01.2022 06:19:55
Компьютер никогда не заменит человека (©️ Hannibal Lecter)
 
=LET(y;"-";x;ПСТР(A1;ПОСЛЕД(ДЛСТР(A1));1);СЦЕП(ПЕРЕКЛЮЧ(x;"/";y;"";y;">";y;"<";y;":";y;"|";y;"?";y;"*";y;"""";y;x)))

формула меняет запрещённые символы на тире (вместо тире можно указать любой другой знак)

Можно выбирать, на какой знак менять --> допустим * поменять на пробел, ? поменять на #, : поменять на _, остальные на тире) (смотрите ниже )
=LET(y;"-";x;ПСТР(A1;ПОСЛЕД(ДЛСТР(A1));1);СЦЕП(ПЕРЕКЛЮЧ(x;"/";y;"";y;">";y;"<";y;":";"_";"|";y;"?";"#";"*";" ";"""";y;x)))
 
Для 21-365 что-то подобное
=LEFT(TextJoin("";;IF(ISNUMBER(FIND(MID(A2;ROW(1:260);1);"/\?"));"_";MID(A2;ROW(1:260);1)));LEN(A2))
но там еще проще ибо ROW(1:260) заменить на sequence(len(a2)) и тогда
=TextJoin("";;IF(ISNUMBER(FIND(MID(A2;sequence(len(a2));1);"/\?"));"_";MID(A2;sequence(len(a2));1)))
а LET еще больше сократит
Изменено: БМВ - 21.01.2022 07:55:41
По вопросам из тем форума, личку не читаю.
 
Вот я тупанул-то. Не указан нужную версию Excel. Простите меня великодушно.
Сам на последних работаю, но файлы пользователей будут лежать в терминале, а там 19-ый.

За решения - спасибо. Буду разбирать.
Компьютер никогда не заменит человека (©️ Hannibal Lecter)
 
для 2019 попробуйте первую формулу от БМВ (сам не проверял)
 
Для коллекции.
Возможно, окажется небесполезной вот эта статья
Массовая замена текста формулами
Страницы: 1
Наверх