Замена текста функцией ПОДСТАВИТЬ (SUBSTITUTE)

Давайте разберем пару примеров использования функции ПОДСТАВИТЬ для наглядности.
Замена или удаление неразрывных пробелов
При выгрузке данных из 1С, копировании информации с вебстраниц или из документов Word часто приходится иметь дело с неразрывным пробелом — спецсимволом, неотличимым от обычного пробела, но с другим внутренним кодом (160 вместо 32). Его не получается удалить стандартными средствами — заменой через диалоговое окно Ctrl + H или функцией удаления лишних пробелов СЖПРОБЕЛЫ (TRIM) . Поможет наша функция ПОДСТАВИТЬ, которой можно заменить неразрывный пробел на обычный или на пустую текстовую строку, т.е. удалить:
Подсчет количества слов в ячейке
Если нужно подсчитать количество слов в ячейке, то можно применить простую идею: слов на единицу больше, чем пробелов (при условии, что нет лишних пробелов). Соответственно, формула для расчета будет простой:
Если предполагается, что в ячейке могут находиться и лишние пробелы, то формула будет чуть посложнее, но идея — та же.
Извлечение первых двух слов
Если нужно вытащить из ячейки только первые два слова (например ФИ из ФИО), то можно применить формулу:
У нее простая логика:
- заменяем второй пробел на какой-нибудь необычный символ (например #) функцией ПОДСТАВИТЬ (SUBSTITUTE)
- ищем позицию символа # функцией НАЙТИ (FIND)
- вырезаем все символы от начала строки до позиции # функцией ЛЕВСИМВ (LEFT)
Ссылки по теме
- Зачистка текста от лишних пробелов, непечатаемых символов и т.д.
- Как подсчитать количество слов в ячейке
- Преобразование чисел-как-текст в полноценные числа
Word 2010: заменим точки запятыми
Приветствую всех сотрудников «Б & K»! Помогите мне решить такую проблему. Есть документ, набранный в программе Word. В тексте документа все числа напечатаны с разделителем «,» (запятая). Можно ли этот разделитель заменить на «.» (точку)? Разумеется, что замену нужно сделать только в числах. Запятые в самом тексте нужно оставить, как они есть. Заранее благодарю.
Сергей Фурунджиев, главный бухгалтер, г. Харьков
Отвечает Николай КАРПЕНКО , канд. техн. наук, доцент кафедры прикладной математики и информационных технологий Харьковской национальной академии городского хозяйства
Для решения вашей задачи нужно воспользоваться инструментом «Найти и заменить» программы MS Word. Но есть одна тонкость: при замене нужно работать не в обычном режиме, а использовать так называемые подстановочные знаки. Для этого в окне настройки параметров поиска есть специальный флажок, который так и называется «Подстановочные знаки» (рисунок).
Если включить этот флажок, Word организует поиск в тексте не по точному совпадению, а по некоторому шаблону. Например, звездочка в тексте шаблона заменяет собой произвольную строку символов. Если при поиске в строке «Найти» указать «Б*К» и включить параметр «Подстановочные знаки», в результат поиска попадут слова «Б&К», «Б+К», «Б-К» и т. п.
Для создания шаблона в программе Word применяют специальные символы. Наиболее распространенные из них представлены в таблице.
Символы подстановочных знаков в шаблонах Word
Символ в шаблоне
Например, шаблону «б?р» удовлетворяют слова «бар», «бур», «бор» и т. д.
Любая последовательность символов
Например, под шаблон «б*р» попадут вышеуказанные слова, а также «бухгалтер», «барометр» и пр.
Шаблон «бух>» отыщет слова «главбух», «гроссбух»
Заменяет один из указанных знаков
По шаблону «у[пкз]ор» будут найдены слова «укор», «узор», «упор» и т. д.
Заменяет любой знак из указанного диапазона
Шаблон «[б-н]оль» отберет слова «боль», «моль», «ноль» и т. п. Символы в диапазоне нужно ставить по возрастанию. Запись «[б-н]оль» НЕПРАВИЛЬНАЯ
Заменяет любой знак, кроме указанных в диапазоне
Шаблону «[!б-н]оль» удовлетворяют слова «соль», «роль» и не удовлетворяют «боль», «моль», «ноль»
От n до m раз повторенный предыдущий знак или выражение
Например, если ввести «10», то будут найдены «10», «100» и «1000»
Заменяет одно или несколько повторений предыдущего символа
Шаблон «в@ести» найдет в тексте слова «вести» и «ввести»
Кроме того, подстановочные знаки в шаблоне можно группировать. Для этого нужно использовать круглые скобки. Например, шаблон «(за)*(ка)» найдет в тексте слова «замазка», «закваска» и «завивка».
Важно! Чтобы найти в тексте символ, являющийся одним из подстановочных знаков, в шаблоне нужно поставить перед ним обратную косую черту («\»). Например, комбинация «\?» находит в тексте символ «?» (вопросительный знак).
Ну а теперь, когда с теорией вопроса все ясно, пора приступить к решению нашей задачи. Итак, мы хотим в документе Word найти числа и заменить в них разделитель «,» (запятая) на «.» (точка). Делаем так.
1. Отрываем документ, нажимаем комбинацию «Ctrl+H». Откроется окно «Найти и заменить», изображенное на рисунке.
2. В поле «Найти:» вводим выражение «([0-9]),» (рисунок).
3. В поле «Заменить на:» печатаем текст «\1.».
4. Нажимаем кнопку «Больше».
5. Включаем флажок «Подстановочные знаки».
6. В окне «Найти и заменить» нажимаем кнопку «Заменить все».
Пару слов о работе шаблона. Выражение в поле «Найти:» ограничивает область текста, в пределах которой Word будет делать замены. Фрагмент «[0-9]» в этом выражении означает, что поиск Word будет просматривать только символы от «0» до «9». Иными словами: все числа в документе. Знак «,» в конце выражения – это искомый символ (запятая). Фрагмент выражения «» указывает, что Word должен найти не менее одного символа «,» в пределах числа. Переходим к полю «Заменить на:». Здесь стоит выражение «\1.». В нем обратная косая черта («\») в сочетании с числами играет роль заполнителя. В нашем примере такая запись означает: взять первый фрагмент из числа (начиная с крайнего левого символа и до десятичного разделителя), затем поставить символ «точка». Десятичная часть числа при этом останется без изменений.
Тем же способом можно выполнить и обратную замену. Чтобы заменить в числах разделитель «.» на символ «,», можно воспользоваться такими выражениями: для поля «Найти:» указать «([0-9]).», в поле «Заменить на:» ввести «\1,». Но есть одна особенность. При использовании указанных выражений будут неправильно обработаны числа, которые находятся в конце предложения. В этом случае символ «.» (конец предложения) будет стоять сразу за числом. Поэтому Word воспримет его как разделитель. Чтобы исправить ситуацию, я предлагаю немного усложнить шаблон для поиска изменения, а именно: в поле «Найти:» указать выражение «([0-9]).([0-9])», а в поле «Заменить на:» написать выражение «\1,\2».
Постановочные знаки – один из самых мощных и доступных инструментов для автоматической корректировки документа. С их помощью, например, можно поменять местами фамилии и инициалы, или исправить нумерацию рисунков. Кстати, это вполне реальный пример. Буквально месяц назад мне понадобилось заменить нумерацию рисунков, поставив в номере вместо точки дефис. То есть текст «рис. 1.2» нужно было заменить на «рис. 1-2» и так по всем номерам в тексте. А текст этот был порядка 250 страниц. Комбинация подстановочных знаков «(рис. [0-9]).([0-9])» (для поля «Найти:») и «\1^~\2» (для поля «Заменить на:») решила проблему в считанные секунды. На сегодня все.
Успешной работы! Жду ваших писем, предложений и замечаний на bk@id.factor.ua , nictomkar@rambler.ru или на форуме редакции.
SYMBL

Все изображения Emoji и символов на сайте предназначены исключительно для информационных целей, права принадлежат их авторам и не могут быть использованы для коммерческих целей без их согласия.
Все названия символов являются официальными названиями Юникод®. Указанные номера символов являются частью стандарта Юникод.
© SYMBL 2012—2024
Ex: Таблица символов Юникода
Как найти символ в ворде по номеру
Вопросы по покупке sales@onlyoffice.com
Запросы на партнерство partners@onlyoffice.com
Запросы от прессы press@onlyoffice.com
Следите за нашими новостями:
© Ascensio System SIA 2024. Все права защищены
© Ascensio System SIA 2024. Все права защищены
Не пропустите обновление!
Получайте последние новости ONLYOFFICE на ваш email
Имя не указано.
Email не указан.
На ваш адрес электронной почты отправлено сообщение с подтверждением.
В Справочном центре ONLYOFFICE используются файлы cookie для обеспечения максимального удобства работы пользователей. Продолжая использовать этот сайт, вы соглашаетесь с тем, что мы можем сохранять файлы cookie в вашем браузере.