Функция ПОДСТАВИТЬ() в EXCEL

history

Функция ПОДСТАВИТЬ( ) , английский вариант SUBSTITUTE(), заменяет определенный текст в текстовой строке на новое значение. Формула =ПОДСТАВИТЬ(A2; "январь";"февраль") исходную строку "Продажи (январь)" превратит в строку "Продажи (февраль)".


Синтаксис функции

ПОДСТАВИТЬ ( исходный_текст ; старый_текст ; новый_текст ;[номер_вхождения])

Исходный_текст — текст или ссылка на ячейку, содержащую текст, в котором заменяется часть строки. Старый_текст — заменяемый текст. Новый_текст — текст, на который заменяется старый_текст . Номер_вхождения — определяет, какое вхождение фрагмента Старый_текст нужно заменить фрагментом. Если этот аргумент определен, то заменяется только заданное вхождение фрагмента Старый_текст . В противном случае все вхождения фрагмента Старый_текст в текстовой строке заменяются фрагментом Новый_текст .

Примеры



Пусть в ячейке А6 введена строка Продажи (январь) , прибыль (январь) .

Чтобы заменить оба слова январь , на февраль , запишем формулу (см. файл примера внизу статьи ):

=ПОДСТАВИТЬ(A6; "январь";"февраль")

Функция ПОДСТАВИТЬ() может заменить только первое, только второе и т.д. вхождение слова "январь". Записав формулу =ПОДСТАВИТЬ(A2; "январь";"февраль";2) получим строку Продажи (январь), прибыль (февраль) .

Кроме того, функция ПОДСТАВИТЬ() чувствительна к РЕгиСТру . Записав =ПОДСТАВИТЬ(A2; "ЯНВАРЬ";"февраль") получим строку без изменений Продажи (январь), прибыль (январь) , т.к. для функции ПОДСТАВИТЬ() "ЯНВАРЬ" не тоже самое, что "январь".

Если строка содержит слова в разных регистрах, например, Продажи (январь), прибыль (ЯНВАРЬ) , то для замены слова январь на февраль можно порекомендовать формулу =ПОДСТАВИТЬ(СТРОЧН(A2); "январь";"февраль") В результате получим продажи ( февраль ), прибыль ( февраль ) .

Функция ПОДСТАВИТЬ() vs ЗАМЕНИТЬ()

Пусть в ячейке А2 введена строка Продажи (январь) . Чтобы заменить слово январь , на февраль , запишем формулы:

=ЗАМЕНИТЬ(A2;10;6;"февраль") =ПОДСТАВИТЬ(A2; "январь";"февраль")

т.е. для функции ЗАМЕНИТЬ() потребовалось вычислить начальную позицию слова январь (10) и его длину (6). Это не удобно, функция ПОДСТАВИТЬ() справляется с задачей гораздо проще.

Кроме того, функция ЗАМЕНИТЬ() заменяет по понятным причинам только одно вхождение строки, функция ПОДСТАВИТЬ() может заменить все вхождения или только первое, только второе и т.д. Поясним на примере. Пусть в ячейке А2 введена строка Продажи (январь), прибыль (январь) . Запишем формулы: =ЗАМЕНИТЬ(A2;10;6;"февраль") =ПОДСТАВИТЬ(A2; "январь";"февраль") получим в первом случае строку Продажи (февраль), прибыль (январь) , во втором - Продажи (февраль), прибыль (февраль) . Записав формулу =ПОДСТАВИТЬ(A2; "январь";"февраль";2) получим строку Продажи (январь), прибыль (февраль) .

Кроме того, функция ПОДСТАВИТЬ() может работает с учетом регистра, а ЗАМЕНИТЬ() по понятным причинам не может.


Комментарии

Только для авторизованных пользователей

Аноним, 3 июня 2017 г.
спасибо очень понятно и наглядно
Аноним, 23 декабря 2019 г.
У меня в таблице 2 листа, на 1м из листов, нужно прописать формулу.. =ЗНАЧЕН(ПОДСТАВИТЬ(Осн!AW22;"В";"0")) НО! на замену В может быть и РВ и буква Я и ОТ! Как прописать в формуле, что бы буквы РВ и НВ заменялись на 0. А остальные ОТ, Я, РВ заменялись на 1. в 1й формуле. Чтобы был предварительный поиск. Не могу сама сделать.
Михаил, 24 декабря 2019 г.
Задача интересная. Напишите пожалуйста в группу https://vk.com/excel2ru и приложите файл с примером, что хотите получить. Я не понял, что значит "буквы РВ и НВ". Это отдельные буквы Р, В, Н или текстовые строки из 2-х букв? РВ заменияется на 0 или на 1?
(только для авторизованных пользователей)

© Copyright 2013 - 2024 Excel2.ru. All Rights Reserved