Добра всем и всем.
Я ищу способы удалить специальные символы из нескольких ячеек в Excel.
Например, с A2:A50, чтобы заменить специальные символы в выбранных ячейках.
Пример:
H&*O^&@LA --> ПРИВЕТ
Функция не должна изначально выполняться через макрос.
Как я мог тогда заменить специальные символы?
У меня есть идея сделать это с помощью макроса, например, используя цикл со строкой и делая замену в каждой ячейке, но я не уверен, как я мог бы сделать это на листе без макроса.
Я пробовал с: =REPLACE("XYZ123",4,3,"456"), но replace запрашивает замену позиций. В этом случае я бы не знал, какие позиции использовать.
PS: использование расширения не является решением.
Спасибо.
Что делает функция
Replace
, если я правильно помню, так это замена в позиции X, но то, что вы ищете, этоSUSTITUIR
. Я объясняю:Из этого примера, который вы поставили:
Правильная функция будет такой (B2 - моя ячейка в моем excel):
Но как распространить этот пример на любого персонажа?
Замена для каждого символа : вам нужно создать функцию для каждого символа, который вы хотите отфильтровать, в этом случае их было 4. Когда вы дойдете до последней замены, вы создадите исходную функцию, то есть ту, которая ищет ячейку
SUSTITUIR(B2;"&";"");
.После создания основной функции нет необходимости повторять вызов ячейки, так как она вложенная, все остальные функции знают, в какой ячейке вы находитесь, и вам нужно только добавить следующие фильтры
"*";"")
; ,"^";"");
и"@";"")
. Очевидно, что если вы собираетесь попробовать изменить больше символов, вас ждет длинная задача, вы можете создать список и брать значения из него, пока не завершите свой фильтр, это зависит от вас.Боюсь, вам нужен VBA, чтобы решить эту проблему простым способом. Не макрос как таковой, но вы можете создать UDF, который позволит вам легко очистить символы, которые вам не нужны.
Я разработал очень простой UDF, полностью настраиваемый:
Что делает эта UDF, так это просматривает код ASCII каждого символа. С помощью Select мы можем выбрать, какие символы ASCII мы разрешаем, а какие нет. На данный момент эта UDF поддерживает только цифры, буквы без диакритических знаков и букву ñ. Представьте, что вы хотите очистить текст, который у вас есть в A1, потому что в B1 мы бы написали
=LIMPIAR_TEXTO(A1)
Несколько примеров:
Вам нужно только изменить часть, которая говорит
Case 48 To 57, 65 To 90, 97 To 122, 164 To 165, 32
с кодами ASCII символов, которые вы хотите разрешить. Вы можете добавить, что он допускает разрывы строк, запятые, круглые скобки, буквы с ударениями и т. д.Адаптируйте его к вашим потребностям.