Функция
ПОДСТАВИТЬ(
)
, английский вариант SUBSTITUTE(),
заменяет определенный текст в текстовой строке на новое значение. Формула
=ПОДСТАВИТЬ(A2; «январь»;»февраль»)
исходную строку «Продажи (январь)» превратит в строку «Продажи (февраль)».
Синтаксис функции
ПОДСТАВИТЬ
(
исходный_текст
;
старый_текст
;
новый_текст
;[номер_вхождения])
Исходный_текст
— текст или ссылка на ячейку, содержащую текст, в котором заменяется часть строки.
Старый_текст
— заменяемый текст.
Новый_текст
— текст, на который заменяется
старый_текст
.
Номер_вхождения
— определяет, какое вхождение фрагмента
Старый_текст
нужно заменить фрагментом. Если этот аргумент определен, то заменяется только заданное вхождение фрагмента
Старый_текст
. В противном случае все вхождения фрагмента
Старый_текст
в текстовой строке заменяются фрагментом
Новый_текст
.
Примеры
Пусть в ячейке
А6
введена строка
Продажи (январь)
,
прибыль (январь)
.
Чтобы заменить оба слова
январь
, на
февраль
, запишем формулу (см.
файл примера внизу статьи
):
=ПОДСТАВИТЬ(A6; «январь»;»февраль»)
Функция
ПОДСТАВИТЬ()
может заменить только первое, только второе и т.д. вхождение слова «январь». Записав формулу
=ПОДСТАВИТЬ(A2; «январь»;»февраль»;2)
получим строку
Продажи (январь), прибыль (февраль)
.
Кроме того, функция
ПОДСТАВИТЬ()
чувствительна к РЕгиСТру
. Записав
=ПОДСТАВИТЬ(A2; «ЯНВАРЬ»;»февраль»)
получим строку без изменений
Продажи (январь), прибыль (январь)
, т.к. для функции
ПОДСТАВИТЬ()
«ЯНВАРЬ» не тоже самое, что «январь».
Если строка содержит слова в разных регистрах, например,
Продажи (январь), прибыль (ЯНВАРЬ)
, то для замены слова
январь
на
февраль
можно порекомендовать формулу
=ПОДСТАВИТЬ(СТРОЧН(A2); «январь»;»февраль»)
В результате получим
продажи (
февраль
), прибыль (
февраль
)
.
Функция
ПОДСТАВИТЬ()
vs
ЗАМЕНИТЬ()
Пусть в ячейке
А2
введена строка
Продажи (январь)
. Чтобы заменить слово
январь
, на
февраль
, запишем формулы:
=ЗАМЕНИТЬ(A2;10;6;»февраль») =ПОДСТАВИТЬ(A2; «январь»;»февраль»)
т.е. для функции
ЗАМЕНИТЬ()
потребовалось вычислить начальную позицию слова
январь
(10) и его длину (6). Это не удобно, функция
ПОДСТАВИТЬ()
справляется с задачей гораздо проще.
Кроме того, функция
ЗАМЕНИТЬ()
заменяет по понятным причинам только одно вхождение строки, функция
ПОДСТАВИТЬ()
может заменить все вхождения или только первое, только второе и т.д. Поясним на примере. Пусть в ячейке
А2
введена строка
Продажи (январь), прибыль (январь)
. Запишем формулы:
=ЗАМЕНИТЬ(A2;10;6;»февраль») =ПОДСТАВИТЬ(A2; «январь»;»февраль»)
получим в первом случае строку
Продажи (февраль), прибыль (январь)
, во втором —
Продажи (февраль), прибыль (февраль)
. Записав формулу
=ПОДСТАВИТЬ(A2; «январь»;»февраль»;2)
получим строку
Продажи (январь), прибыль (февраль)
.
Кроме того, функция
ПОДСТАВИТЬ()
может работает с учетом регистра, а
ЗАМЕНИТЬ()
по понятным причинам не может.
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще…Меньше
В этой статье описаны синтаксис формулы и использование ПОДСТАВИТЬ в Microsoft Excel.
Описание
Подставляет значение аргумента «нов_текст» вместо значения аргумента «стар_текст» в текстовой строке. Функция ПОДСТАВИТЬ используется, когда нужно заменить определенный текст в текстовой строке; функция ЗАМЕНИТЬ используется, когда нужно заменить любой текст начиная с определенной позиции.
Синтаксис
ПОДСТАВИТЬ(текст;стар_текст;нов_текст;[номер_вхождения])
Аргументы функции ПОДСТАВИТЬ описаны ниже.
-
Текст Обязательный. Текст или ссылка на ячейку, содержащую текст, в котором подставляются знаки.
-
Стар_текст Обязательный. Заменяемый текст.
-
Нов_текст Обязательный. Текст, на который заменяется «стар_текст».
-
Номер_вхождения Необязательный. Определяет, какое вхождение фрагмента «стар_текст» нужно заменить фрагментом «нов_текст». Если этот аргумент определен, то заменяется только заданное вхождение фрагмента «стар_текст». В противном случае все вхождения фрагмента «стар_текст» в тексте заменяются фрагментом «нов_текст».
Пример
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.
Данные |
||
---|---|---|
Сведения о продажах |
< |
|
Квартал 1, 2008 г. |
< |
|
Квартал 1, 2011 г. |
< |
|
Формула |
Описание (результат) |
Результат |
=ПОДСТАВИТЬ(A2; «продажах»; «ценах») |
Замена «ценах» на «продажах» («Сведения о ценах») |
Сведения о ценах |
=ПОДСТАВИТЬ(A3; «1»; «2»; 1) |
Замена первого экземпляра «1» на «2» («Квартал 2, 2008 г.») |
Квартал 2, 2008 г. |
=ПОДСТАВИТЬ(A4; «1»; «2»; 3) |
Замена третьего экземпляра «1» на «2» («Квартал 1, 2012 г.») |
Квартал 1, 2012 г. |
См. также
Функция ЗАМЕНИТЬ, ЗАМЕНИТЬБ
Функция СЖПРОБЕЛЫ
Нужна дополнительная помощь?
Поиск дубликатов в Excel — рутинная задача при работе с данными. Повторяющиеся значения могут быть проблемой при использовании различных функций, поэтому иногда их требуется только подсветить, а иногда — и удалить. В этой статье узнаем, как найти дубликаты в Excel.
Поиск дубликатов в excel можно сделать несколькими способами. В этой статье рассмотрим два самых распространенных способа подсветить дубликаты, а также прием для поиска номера вхождения элемента в список Excel.
Видео для тех, кто не любит читать
- Как подсветить дубликаты в Excel при помощи условного форматирования
- Как найти количество повторяющихся значений в списке Excel
- Номер вхождения элемента списка
- Как удалить дубликаты в Excel
В списке с ФИО сотрудников есть повторяющиеся значения.
Для того, чтобы найти дубликаты, в excel есть специальный инструмент условного форматирования.
Выделим список и перейдем во вкладку Главная — блок Стили — Условное форматирование — Правила выделения ячеек — Повторяющиеся значения.
В окне Повторяющиеся значения также можно выделить уникальные значения.
Есть возможность выбрать формат ячеек из заданных или настроить свой Пользовательский формат.
Дубликаты выделены цветом. Если ваша задача — просто найти и подсветить дубликаты в Excel, то этот способ идеально подходит.
Как найти количество повторяющихся значений в списке Excel
У предыдущего способа есть нюанс — он выделяет все дубликаты, вне зависимости от их количества. Обратите внимание на предыдущей картинке, что сотрудник Семенов Петр Геннадьевич встречается в списке 3 раза.
Если нужно определить количество повторяющихся значений в списке Excel, то есть формула для определения количества дубликатов.
В ячейке С2 напишем формулу:
=СЧЁТЕСЛИ($B$2:$B$16;B2)
Обязательно закрепим абсолютными ссылками (знак $) диапазон поиска, чтобы он не съезжал при копировании формулы.
Скопируем формулу до конца списка.
Синтаксис функции СЧЁТЕСЛИ:
=СЧЁТЕСЛИ(диапазон;критерий)
Функция СЧЁТЕСЛИ ищет критерий в заданном диапазоне ячеек и выводит количество совпадений.
Номер вхождения элемента списка
В предыдущих примерах мы определили, что Семенов Петр Геннадьевич встречается в списке 3 раза, а Лобков Иван Сергеевич — 2 раза.
Теперь найдем номер вхождения каждого элемента в список. Ну то есть, где Семенов П.Г. встретился первый раз, где второй и третий. На практике это достаточно частая задача, которая, например, используется для функции ВПР с несколькими условиями.
В первую ячейку рядом со списком напишем формулу:
=СЧЁТЕСЛИ($B$1:B2;B2
Обратите внимание, что абсолютной ссылкой ($) закреплено только начало диапазона. Конец диапазона же будет меняться вместе с ячейкой формулы.
Суть этой формулы в том, что в данном случае функция СЧЁТЕСЛИ ищет совпадения критерия не со всем диапазоном, а только с тем, что находится от данной строки и выше.
Как удалить дубликаты в Excel
Чтобы удалить повторяющиеся значения, выделим диапазон и перейдем во вкладку Данные — блок Работа с данными — Удалить дубликаты.
В окне Удалить дубликаты нажмем Ок.
Готово, теперь список не содержит повторяющихся значений.
В этой статье мы узнали, как найти и подсветить дубликаты в Excel, определить номер вхождения элемента в список. А также научились удалять повторяющиеся значения.
Сообщество Excel Analytics | обучение Excel
Канал на Яндекс.Дзен
Вам может быть интересно:
Функция ПОДСТАВИТЬ в Excel выполняет динамическую замену определенной части строки на указанное новое значение и возвращает новую строку, содержащую замененную часть текста. Благодаря этой функции можно подставлять значения из другой ячейки. Рассмотрим возможности функции на конкретных примерах в Excel.
Функция ПОДСТАВИТЬ при условии подставляет значение
Пример 1. В результате расчетов, произведенных в некотором приложении, были получены некоторые значения, записанные в таблицу Excel. Некоторые величины рассчитать не удалось, и вместо числового представления была сгенерирована ошибка “NaN”. Необходимо заменить все значения “NaN” на число 0 в соответствующих строках.
Таблица данных:
Для замены и подстановки используем рассматриваемую формулу в качестве массива. Вначале выделим диапазон ячеек C2:C9, затем введем формулу через комбинацию Ctrl+Shift+Enter:
Функция ЧЗНАЧ выполняет преобразование полученных текстовых строк к числовым значениям. Описание аргументов функции ПОДСТАВИТЬ:
- B2:B9 – диапазон ячеек, в которых требуется выполнить замену части строки;
- “NaN” – фрагмент текста, который будет заменен;
- 0 – фрагмент, который будет вставлен на место заменяемого фрагмента.
Для подстановки значений во всех ячейках необходимо нажать Ctrl+Shift+Enter, чтобы функция была выполнена в массиве. Результат вычислений:
Таким же образом функция подставляет значения и другой таблицы при определенном условии.
Автозамена значения в текстовых ячейках с помощью функции ПОДСТАВИТЬ
Пример 2. Провайдер домашнего интернета хранит данные о своих абонентах в таблице Excel. Предположим, улица Садовая была переименована в Никольскую. Необходимо быстро произвести замену названия улицы в строке данных об адресе проживания каждого клиента.
Таблица данных:
Для выполнения заданного условия используем формулу:
Примечание: в данном примере ПОДСТАВИТЬ также используется в массиве Ctrl+Shift+Enter.
В результате получим:
Формула с макросом регулярного выражения и функция ПОДСТАВИТЬ
Пример 3. При составлении таблицы из предыдущего примера была допущена ошибка: все номера домов на улице Никольская должны быть записаны как «№№-Н», где №№ — номер дома. Как быстро исправить ошибку?
В данном случае для поиска числовых значений номера дома воспользоваться встроенными функциями не удастся. Рациональнее всего использовать регулярные выражения. По умолчанию, в Excel отсутствует функция для работы с регулярными выражениями, однако ее можно добавить следующим способом:
- Открыть редактор макросов (Ctrl+F11).
- Вставить исходный код функции (приведен ниже).
- Выполнить данный макрос и закрыть редактор кода.
Код функции:
Public Function RegExpExtract(Text As String, Pattern As String, Optional Item As Integer = 1) As String
On Error GoTo ErrHandl
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = Pattern
regex.Global = True
If regex.Test(Text) Then
Set matches = regex.Execute(Text)
RegExpExtract = matches.Item(Item - 1)
Exit Function
End If
ErrHandl:
RegExpExtract = CVErr(xlErrValue)
End Function
Для того, чтобы воспользоваться этой формулой, в любой ячейке необходимо ввести следующее:
= RegExpExtract(текст;регулярное_выражение;[номер_вхождения])
Регулярные выражения могут быть различными. Например, для выделения любого символа из текстовой строки в качестве второго аргумента необходимо передать значение «w», а цифры – «d».
Для решения задачи данного Примера 3 используем следующую запись:
Логика вычислений:
- Функция ЕСЛИОШИБКА используется для возврата исходной строки текста (B2), поскольку результатом выполнения функции RegExpExtract(B2;»Никольская») будет код ошибки #ЗНАЧ!, если ей не удалось найти хотя бы одно вхождение подстроки «Никольская» в строке B2.
- Если результат выполнения сравнения значений RegExpExtract(B2;»Никольская»)=»Никольская» является ИСТИНА, будет выполнена функция ПОДСТАВИТЬ(B2;RegExpExtract(B2;»d+»);RegExpExtract(B2;»d+»)&»-Н»), где:
- a. B2 – исходный текст, содержащий полный адрес;
- b. RegExpExtract(B2;»d+») – формула, выделяющая номер дома из строки с полным адресом;
- c. RegExpExtract(B2;»d+»)&»-Н» – новый номер, содержащий исходное значение и символы «-Н».
Результат вычислений:
Данный способ может показаться громоздким, однако он весьма удобен для работы с таблицами, содержащими большое количество данных.
Особенности использования функции ПОДСТАВИТЬ в Excel
Функция ПОДСТАВИТЬ имеет следующую синтаксическую запись:
= ПОДСТАВИТЬ(текст;стар_текст;нов_текст;[номер_вхождения])
Описание аргументов:
- текст – обязательный аргумент, характеризующий текстовую строку, в которой необходимо выполнить замену части текста. Может быть задан как текстовая строка («некоторый текст») или ссылка на ячейку, которая содержит текстовые данные.
- стар_текст – часть текстовой строки, принимаемой в качестве первого аргумента данной функции, которую требуется заменить. Аргумент обязателен для заполнения.
- нов_текст – обязательный для заполнения аргумент, содержащий текстовые данные, которые будут вставлены на место заменяемой части строки.
- [номер_вхождения] – числовое значение, характеризующее номер вхождения старого текста, который требуется заменить на фрагмент нового текста. Возможные варианты записи:
- Аргумент явно не указан. Функция ПОДСТАВИТЬ определит все части текстовой строки, соответствующие фрагменту текста стар_текст, и выполнит их замену на нов_текст;
- В качестве аргумента передано числовое значение. Функция ПОДСТАВИТЬ заменит только указанное вхождение. Отсчет начинается слева направо, число 1 соответствует первому вхождению. Например, функция =ПОДСТАВИТЬ(«текст №1, №2, №3»;«текст»;«новый»;1) вернет значение «новый_текст №1, №2, №3».
Примечания:
- Аргумент [номер_вхождения] должен быть задан из диапазон целых положительных чисел от 1 до n, где n определяется максимально допустимой длиной строки, содержащейся в объекте данных (например, в ячейке).
- Если в текстовой строке, представленной в качестве аргумента текст не содержится фрагмент, переданный в качестве аргумента стар_текст, функция ПОДСТАВИТЬ вернет строку текст без изменений.
- Если число вхождений заменяемого фрагмента в обрабатываемой строке меньше, чем числовое значение, переданное в качестве аргумент [номер_вхождения], функция ПОДСТАВИТЬ вернет текстовую строку в исходном виде. Например, аргументы функции («а 1 а 2 а 3»;«а»;«б»;4) вернут строку «а 1 а 2 а 3».
- Рассматриваемая функция чувствительная к регистру, то есть строки «Слово» и «слово» не являются тождественными.
- Для решения аналогичных задач по замене части символов текстовой строки можно использовать функцию ЗАМЕНИТЬ. Однако, в отличие от функции ПОДСТАВИТЬ, для ее использования необходимо явно указывать позицию начального символа для замены, а также количество символов, которые необходимо заменить. Функция автоматически выполняет поиск указанной части строки и производит ее замену, поэтому в большинстве случаев предлагает более удобный функционал для работы с текстовыми строками.
Замена одного текста на другой внутри заданной текстовой строки — весьма частая ситуация при работе с данными в Excel. Реализовать подобное можно двумя функциями: ПОДСТАВИТЬ (SUBSTITUTE) и ЗАМЕНИТЬ (REPLACE). Эти функции во многом похожи, но имеют и несколько принципиальных отличий и плюсов-минусов в разных ситуациях. Давайте подробно и на примерах разберем сначала первую из них.
Её синтаксис таков:
=ПОДСТАВИТЬ(Ячейка; Старый_текст; Новый_текст; Номер_вхождения)
где
- Ячейка — ячейка с текстом, где производится замена
- Старый_текст — текст, который надо найти и заменить
- Новый_текст — текст, на который заменяем
- Номер_вхождения — необязательный аргумент, задающий номер вхождения старого текста на замену
Обратите внимание, что:
- Если не указывать последний аргумент Номер_вхождения, то будут заменены все вхождения старого текста (в ячейке С1 — обе «Маши» заменены на «Олю»).
- Если нужно заменить только определенное вхождение, то его номер задается в последнем аргументе (в ячейке С2 только вторая «Маша» заменена на «Олю»).
- Эта функция различает строчные и прописные буквы (в ячейке С3 замена не сработала, т.к. «маша» написана с маленькой буквы)
Давайте разберем пару примеров использования функции ПОДСТАВИТЬ для наглядности.
Замена или удаление неразрывных пробелов
При выгрузке данных из 1С, копировании информации с вебстраниц или из документов Word часто приходится иметь дело с неразрывным пробелом — спецсимволом, неотличимым от обычного пробела, но с другим внутренним кодом (160 вместо 32). Его не получается удалить стандартными средствами — заменой через диалоговое окно Ctrl+H или функцией удаления лишних пробелов СЖПРОБЕЛЫ (TRIM). Поможет наша функция ПОДСТАВИТЬ, которой можно заменить неразрывный пробел на обычный или на пустую текстовую строку, т.е. удалить:
Подсчет количества слов в ячейке
Если нужно подсчитать количество слов в ячейке, то можно применить простую идею: слов на единицу больше, чем пробелов (при условии, что нет лишних пробелов). Соответственно, формула для расчета будет простой:
Если предполагается, что в ячейке могут находиться и лишние пробелы, то формула будет чуть посложнее, но идея — та же.
Извлечение первых двух слов
Если нужно вытащить из ячейки только первые два слова (например ФИ из ФИО), то можно применить формулу:
У нее простая логика:
- заменяем второй пробел на какой-нибудь необычный символ (например #) функцией ПОДСТАВИТЬ (SUBSTITUTE)
- ищем позицию символа # функцией НАЙТИ (FIND)
- вырезаем все символы от начала строки до позиции # функцией ЛЕВСИМВ (LEFT)
Ссылки по теме
- Зачистка текста от лишних пробелов, непечатаемых символов и т.д.
- Как подсчитать количество слов в ячейке
- Преобразование чисел-как-текст в полноценные числа