Использование функций Excel REPLACE и SUBSTITUTE - примеры формул

  • Поделись Этим
Michael Brown

В учебном пособии объясняются функции Excel REPLACE и SUBSTITUTE с примерами использования. Узнайте, как использовать функцию REPLACE с текстовыми строками, числами и датами, а также как вложить несколько функций REPLACE или SUBSTITUTE в одну формулу.

На прошлой неделе мы обсудили различные способы использования функций FIND и SEARCH в рабочих листах Excel. Сегодня мы более подробно рассмотрим две другие функции для замены текста в ячейке на основе его расположения или замены одной текстовой строки другой на основе содержимого. Как вы уже догадались, я говорю о функциях Excel REPLACE и SUBSTITUTE.

    Функция Excel REPLACE

    Функция REPLACE в Excel позволяет заменить один или несколько символов в текстовой строке на другой символ или набор символов.

    REPLACE(old_text, start_num, num_chars, new_text)

    Как вы видите, функция Excel REPLACE имеет 4 аргумента, все из которых являются обязательными.

    • Старый_текст - исходный текст (или ссылка на ячейку с исходным текстом), в котором нужно заменить некоторые символы.
    • начальное_число - позиция первого символа в старом_тексте, который вы хотите заменить.
    • Num_chars - количество символов, которые вы хотите заменить.
    • Новый_текст - заменяющий текст.

    Например, чтобы изменить слово " солнце " до " сын ", вы можете использовать следующую формулу:

    =REPLACE("sun", 2, 1, "o")

    А если вы поместите исходное слово в какую-то ячейку, скажем, A2, вы можете указать ссылку на соответствующую ячейку в аргументе old_text:

    =REPLACE(A2, 2, 1, "o")

    Примечание. Если аргумент start_num или num_chars является отрицательным или нечисловым, формула Excel Replace возвращает ошибку #VALUE!

    Использование функции Excel REPLACE с числовыми значениями

    Функция REPLACE в Excel предназначена для работы с текстовыми строками. Конечно, вы можете использовать ее, например, для замены числовых символов, которые являются частью текстовой строки:

    =REPLACE(A2, 7, 4, "2016")

    Обратите внимание, что мы заключили "2016" в двойные кавычки, как это обычно делается с текстовыми значениями.

    Аналогичным образом можно заменить одну или несколько цифр в числе. Например:

    =REPLACE(A4, 4, 4, "6")

    И снова необходимо заключить значение замены в двойные кавычки ("6").

    Примечание. Формула Excel REPLACE всегда возвращает значение текстовая строка И поскольку это текстовое значение, вы не сможете использовать его в других вычислениях, пока не преобразуете его обратно в число, например, умножив на 1 или используя любой другой метод, описанный в разделе Как преобразовать текст в число.

    Использование функции Excel REPLACE с датами

    Как вы только что увидели, функция REPLACE прекрасно работает с числами, за исключением того, что она возвращает текстовую строку :) Помня, что во внутренней системе Excel даты хранятся как числа, вы можете попытаться использовать некоторые формулы Replace на датах. Результат будет весьма неловким.

    Например, у вас есть дата в A2, скажем, 1-Oct-14, и вы хотите изменить " Октябрь " до " Ноябрь ". Итак, вы написали формулу REPLACE(A2, 4, 3, "Nov"), которая говорит Excel заменить 3 символа в ячейках A2, начиная с 4-го символа... и получили следующий результат:

    Почему? Потому что "01-Oct-14" - это только визуальное представление основного серийного номера (41913), который представляет собой дату. Итак, наша формула Replace изменяет последние 3 цифры в вышеуказанном серийном номере на " Ноябрь " и возвращает текстовую строку "419Nov".

    Чтобы заставить функцию Excel REPLACE корректно работать с датами, вы можете сначала преобразовать даты в текстовые строки с помощью функции TEXT или любой другой техники, продемонстрированной в статье Как преобразовать дату в текст в Excel. В качестве альтернативы вы можете встроить функцию TEXT непосредственно в аргумент old_text функции REPLACE:

    =REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")

    Пожалуйста, помните, что результатом вышеприведенной формулы является текстовая строка Если вам нужны даты, а не текстовые строки, используйте функцию DATEVALUE для преобразования значений, возвращаемых функцией Excel REPLACE, в даты:

    =DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov"))

    Вложенные функции REPLACE для выполнения нескольких замен в ячейке

    Довольно часто вам может понадобиться выполнить более одной замены в одной и той же ячейке. Конечно, вы можете выполнить одну замену, вывести промежуточный результат в дополнительный столбец, а затем снова использовать функцию REPLACE. Однако лучшим и более профессиональным способом является использование функции вложенные функции REPLACE которые позволяют выполнять несколько замен с помощью одной формулы. В данном контексте "вложенность" означает размещение одной функции внутри другой.

    Предположим, у вас есть список телефонных номеров в столбце A, отформатированный как "123456789", и вы хотите сделать их более похожими на телефонные номера, добавив дефисы. Другими словами, ваша цель - превратить "123456789" в "123-456-789".

    Вставить первый дефис очень просто. Вы пишете обычную формулу Excel Replace, которая заменяет нулевые символы с дефисом, т.е. добавляет дефис в 4-ю позицию в ячейке:

    =REPLACE(A2,4,0,"-")

    Результат вышеприведенной формулы Замена выглядит следующим образом:

    Хорошо, а теперь нам нужно вставить еще один дефис в 8-ю позицию. Чтобы сделать это, вы помещаете приведенную выше формулу в другую функцию Excel REPLACE. Точнее, вы вставляете ее в функцию старый_текст аргумент другой функции, чтобы вторая функция REPLACE обрабатывала значение, возвращаемое первой REPLACE, а не значение в ячейке A2:

    =REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")

    В результате вы получите телефонные номера в нужном форматировании:

    Аналогичным образом вы можете использовать вложенные функции REPLACE, чтобы сделать текстовые строки похожими на даты, добавляя прямую косую черту (/) там, где это необходимо:

    =(REPLACE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/")))

    Более того, вы можете преобразовать текстовые строки в реальные даты, обернув приведенную выше формулу REPLACE функцией DATEVALUE:

    =DATEVALUE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))

    И, естественно, вы не ограничены в количестве функций, которые можно вложить в одну формулу (современные версии Excel 2010, 2013 и 2016 допускают до 8192 символов и до 64 вложенных функций в формуле).

    Например, вы можете использовать 3 вложенные функции REPLACE, чтобы число в A2 отображалось как дата и время:

    =REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(A2,3,0,"/") ,6,0,"/"), 9,0, " "), 12,0, ":"))

    Замена строки, которая появляется в разных позициях в каждой ячейке

    До сих пор во всех примерах мы имели дело со значениями одинакового характера и производили замену в одной и той же позиции в каждой ячейке. Но в реальной жизни задачи часто оказываются сложнее. В ваших рабочих листах заменяемые символы могут не всегда находиться в одном и том же месте в каждой ячейке, и поэтому вам придется найти позицию первого символа который следует заменить. Следующий пример продемонстрирует, о чем я говорю.

    Предположим, у вас есть список адресов электронной почты в столбце А. И название одной компании изменилось с "ABC" на, скажем, "BCA". Таким образом, вам нужно соответствующим образом обновить адреса электронной почты всех клиентов.

    Но проблема в том, что имена клиентов имеют разную длину, и поэтому вы не можете точно указать, где начинается имя компании. Другими словами, вы не знаете, какое значение нужно указать в аргументе start_num функции Excel REPLACE. Чтобы выяснить это, используйте функцию Excel FIND, чтобы определить позицию первого символа в строке "@abc":

    =FIND("@abc",A2)

    А затем введите приведенную выше функцию FIND в аргумент start_num вашей формулы REPLACE:

    =REPLACE(A2, FIND("@abc",A2), 4, "@bca")

    Совет. Мы включаем "@" в формулу поиска и замены Excel, чтобы избежать случайных замен в именной части адресов электронной почты. Конечно, вероятность таких совпадений очень мала, но все же вы можете захотеть подстраховаться.

    Как видно на следующем снимке экрана, формула без проблем находит и заменяет старый текст на новый. Однако если заменяемая текстовая строка не найдена, формула возвращает ошибку #VALUE!

    И мы хотим, чтобы формула возвращала исходный адрес электронной почты вместо ошибки. Итак, давайте заключим нашу формулу FIND & REPLACE в функцию IFERROR:

    =IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)

    И эта усовершенствованная формула прекрасно работает, не так ли?

    Еще одно практическое применение функции REPLACE - выделение первой буквы в ячейке заглавной. Если вы имеете дело со списком имен, продуктов и т.п., вы можете использовать приведенную выше формулу для изменения первой буквы на UPPERCASE.

    Совет. Если вы хотите сделать замену в исходных данных, более простым способом будет использование диалога Excel FIND и REPLACE.

    Функция Excel SUBSTITUTE

    Функция SUBSTITUTE в Excel заменяет один или несколько экземпляров заданного символа или текстовой строки на указанный символ(ы).

    Синтаксис функции Excel SUBSTITUTE следующий:

    SUBSTITUTE(text, old_text, new_text, [instance_num])

    Первые три аргумента являются обязательными, а последний - необязательным.

    • Текст - исходный текст, в который нужно заменить символы. Может быть предоставлен как тестовая строка, ссылка на ячейку или результат другой формулы.
    • Старый_текст - символ(ы), который(ые) вы хотите заменить.
    • Новый_текст - новый(ые) символ(ы) для замены старого_текста.
    • Номер_экземпляра - вхождение old_text, которое вы хотите заменить. Если не указано, каждое вхождение старого текста будет заменено на новый текст.

    Например, все приведенные ниже формулы заменяют "1" на "2" в ячейке A2, но возвращают разные результаты в зависимости от того, какое число вы указали в последнем аргументе:

    =SUBSTITUTE(A2, "1", "2", 1) - Заменяет первое вхождение "1" на "2".

    =SUBSTITUTE(A2, "1", "2", 2) - Заменяет второе вхождение "1" на "2".

    =SUBSTITUTE(A2, "1", "2") - Заменяет все вхождения "1" на "2".

    На практике функция SUBSTITUTE также используется для удаления нежелательных символов из ячеек. Примеры из реальной жизни смотрите в разделе:

    • Как удалить символы или слова из строки
    • Как удалить ненужные символы из ячеек

    Примечание. Функция SUBSTITUTE в Excel - это с учетом регистра Например, следующая формула заменяет все экземпляры прописной буквы "X" на "Y" в ячейке A2, но не заменяет ни одного экземпляра строчной буквы "x".

    Замена нескольких значений одной формулой (вложенный SUBSTITUTE)

    Как и в случае с функцией Excel REPLACE, вы можете вложить несколько функций SUBSTITUTE в одну формулу, чтобы выполнить несколько замен одновременно, т.е. заменить несколько символов или подстрок одной формулой.

    Предположим, у вас есть текстовая строка типа " PR1, ML1, T1 " в ячейке A2, где "PR" означает "Проект", "ML" означает "Веха", а "T" означает "Задача". Вы хотите заменить эти три кода на полные имена. Чтобы достичь этого, вы можете написать 3 различные формулы SUBSTITUTE:

    =SUBSTITUTE(A2, "PR", "Project ")

    =SUBSTITUTE(A2, "ML", "Milestone ")

    =SUBSTITUTE(A2, "T", "Task ")

    А затем вложить их друг в друга:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "PR", "Project "), "ML", "Milestone "), "T", "Task ")

    Обратите внимание, что мы добавили пробел в конце каждого аргумента new_text для лучшей читабельности.

    Чтобы узнать о других способах замены нескольких значений за один раз, см. раздел Как выполнить массовый поиск и замену в Excel.

    Excel REPLACE против Excel SUBSTITUTE

    Функции Excel REPLACE и SUBSTITUTE очень похожи друг на друга тем, что обе предназначены для замены текстовых строк. Различия между этими двумя функциями заключаются в следующем:

    • SUBSTITUTE заменяет один или несколько экземпляры заданного символа или текстовой строки. Поэтому, если вы знаете текст, который нужно заменить, используйте функцию Excel SUBSTITUTE.
    • REPLACE изменяет символы в указанном позиция Таким образом, если вы знаете позицию символа (символов), который нужно заменить, используйте функцию Excel REPLACE.
    • Функция SUBSTITUTE в Excel позволяет добавить необязательный параметр (instance_num), который указывает, какие возникновение старый_текст должен быть заменен на новый_текст.

    Вот так можно использовать функции SUBSTITUTE и REPLACE в Excel. Надеюсь, эти примеры окажутся полезными при решении ваших задач. Благодарю вас за чтение и надеюсь увидеть в нашем блоге на следующей неделе!

    Скачать рабочую тетрадь для практических занятий

    Примеры формул REPLACE и SUBSTITUTE (файл.xlsx)

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.