Как заменить часть текста в ячейке в excel
Перейти к содержимому

Как заменить часть текста в ячейке в excel

  • автор:

Примеры работы с текстовой функцией ЗАМЕНИТЬ в Excel

Функция ЗАМЕНИТЬ, входит в состав текстовых функций MS Excel и предназначена для замены конкретной области текстовой строки, в которой находится исходный текст на указанную строку текста (новый текст).

Как работает функция ЗАМЕНИТЬ в Excel?

С целью детального изучения работы данной функции рассмотрим один из простейших примеров. Предположим у нас имеется несколько слов в разных столбцах, необходимо получить новые слова используя исходные. Для данного примера помимо основной нашей функции ЗАМЕНИТЬ используем также функцию ПРАВСИМВ – данная функция служит для возврата определенного числа знаков от конца строки текста. То есть, например, у нас есть два слова: молоко и каток, в результате мы должны получить слово молоток.

Функция заменить в Excel и примеры ее использования

  1. Создадим на листе рабочей книги табличного процессора Excel табличку со словами, как показано на рисунке: табличка со словами.
  2. Далее на листе рабочей книги подготовим область для размещения нашего результата – полученного слова «молоток», как показано ниже на рисунке. Установим курсор в ячейке А6 и вызовем функцию ЗАМЕНИТЬ: ЗАМЕНИТЬ.
  3. Заполняем функцию аргументами, которые изображены на рисунке: Заполняем аргументами.

Выбор данных параметров поясним так: в качестве старого текста выбрали ячейку А2, в качестве нач_поз установили число 5, так как именно с пятой позиции слова «Молоко» мы символы не берем для нашего итогового слова, число_знаков установили равным 2, так как именно это число не учитывается в новом слове, в качестве нового текста установили функцию ПРАВСИМВ с параметрами ячейки А3 и взятием последних двух символов «ок».

Далее нажимаем на кнопку «ОК» и получаем результат:

получаем результат.

Как заменить часть текста в ячейке Excel?

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

  1. Создадим на листе рабочей книги Excel табличку со фамилией и именем, как показано на рисунке: табличка со фамилией и именем.
  2. Далее на этом же листе рабочей книги подготовим область для размещения нашего результата – измененных фамилий и имен. Заполним ячейки двумя типами формул как показано на рисунке: 2 типа формул.

Обратите внимание! Во второй формуле мы используем оператор «&» для добавления символа «а» к мужской фамилии, чтобы преобразовать ее в женскую. Для решения данной задачи можно было бы использовать функцию =СЦЕПИТЬ(B3;»а») вместо формулы =B3&»а» – результат идентичный. Но сегодня настоятельно рекомендуется отказываться от данной функции так как она имеет свои ограничения и более требовательна к ресурсам в сравнении с простым и удобным оператором амперсанд.

  • Создать таблицу
  • Форматирование
  • Функции Excel
  • Формулы и диапазоны
  • Фильтр и сортировка
  • Диаграммы и графики
  • Сводные таблицы
  • Печать документов
  • Базы данных и XML
  • Возможности Excel
  • Настройки параметры
  • Уроки Excel
  • Макросы VBA
  • Скачать примеры

Поиск или замена текста и чисел на листе

Функции поиска и замены в Excel используются для поиска в книге необходимой информации, например определенного числа или текстовой строки. Вы можете либо найти элемент поиска для справки, либо заменить его на что-то другое. В условия поиска можно включить подстановочные знаки, такие как вопросительные знаки, тильды и звездочки, а также цифры. Искать можно по строкам и столбцам, в примечаниях или значениях, а также на листе или во всей книге.

Совет: Для замены текста можно также использовать формулы. Чтобы узнать больше, проверка функции REPLACE или REPLACE, REPLACEB.

Ваш браузер не поддерживает видео. Установите Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.

Поиск

Чтобы найти что-то, нажмите клавиши CTRL+F или перейдите в раздел Главная > Редактирование > найти & Выберите > Найти.

Примечание: В следующем примере мы выбрали Параметры >> , чтобы отобразить все диалоговое окно Поиск. По умолчанию отображается со скрытыми параметрами.

Нажмите клавиши CTRL+F, чтобы открыть диалоговое окно

    В поле Найти введите текст или цифры, которые вы хотите найти, или щелкните стрелку в поле Найти, а затем выберите последний элемент поиска из списка.

  • В критериях поиска можно использовать подстановочные знаки — вопросительный знак (?), звездочку (*), тильду (~).
  • Используйте вопросительный знак (?), чтобы найти любой один символ, например s?t находит «sat» и «set».
  • Используйте звездочку (*), чтобы найти любое количество символов, например s*d находит «sad» и «started».
  • Используйте тильду (~), за которой следует знак ?, *или ~, чтобы найти вопросительные знаки, звездочки или другие символы тильды, например fy91~? находит «fy91?».

Совет: При выборе параметра Найти все в списке отображается каждое вхождение условий, которые вы ищете, а при выборе определенного вхождения в списке выделяется его ячейка. Результаты поиска Найти все можно отсортировать, выбрав заголовок столбца.

  • В: Чтобы найти данные на листе или во всей книге, выберите Лист или Книга.
  • Поиск: Вы можете выполнить поиск по строкам (по умолчанию) или по столбцам.
  • Посмотрите в: Чтобы найти данные с определенными сведениями, в поле выберите Формулы, Значения, Заметки или Примечания.

Примечание: Формулы, значения, заметки и примечания доступны только на вкладке Найти . На вкладкеЗаменить доступны только формулы.

Совет: Чтобы найти ячейки, точно соответствующие определенному формату, можно удалить все условия в поле Найти, а затем выбрать ячейку с нужным форматированием в качестве примера. Щелкните стрелку рядом с элементом Формат, выберите Выбрать формат из ячейки, а затем выберите ячейку с форматированием, которое требуется найти.

Заменить

Чтобы заменить текст или цифры, нажмите клавиши CTRL+H или перейдите в раздел Главная > Редактирование > Найти & Выберите > Заменить.

Примечание: В следующем примере мы выбрали Параметры >>, чтобы отобразить все диалоговое окно Поиск. По умолчанию отображается со скрытыми параметрами.

Нажмите клавиши CTRL+H, чтобы открыть диалоговое окно Заменить.

    В поле Найти введите текст или цифры, которые вы хотите найти, или щелкните стрелку в поле Найти, а затем выберите последний элемент поиска из списка.

  • В критериях поиска можно использовать подстановочные знаки — вопросительный знак (?), звездочку (*), тильду (~).
  • Используйте вопросительный знак (?), чтобы найти любой один символ, например s?t находит «sat» и «set».
  • Используйте звездочку (*), чтобы найти любое количество символов, например s*d находит «sad» и «started».
  • Используйте тильду (~), за которой следует знак ?, *или ~, чтобы найти вопросительные знаки, звездочки или другие символы тильды, например fy91~? находит «fy91?».

Совет: При нажатии кнопки Заменить все каждое вхождение критерия, которое вы ищете, будет заменено, в то время как функция Replace обновляет одно вхождение за раз.

  • В: Чтобы найти данные на листе или во всей книге, выберите Лист или Книга.
  • Поиск: Вы можете выполнить поиск по строкам (по умолчанию) или по столбцам.
  • Посмотрите в: Чтобы найти данные с определенными сведениями, в поле выберите Формулы, Значения, Заметки или Примечания.

Примечание: Формулы, значения, заметки и примечания доступны только на вкладке Найти . На вкладкеЗаменить доступны только формулы.

Совет: Чтобы найти ячейки, точно соответствующие определенному формату, можно удалить все условия в поле Найти, а затем выбрать ячейку с нужным форматированием в качестве примера. Щелкните стрелку рядом с элементом Формат, выберите Выбрать формат из ячейки, а затем выберите ячейку с форматированием, которое требуется найти.

Существует два разных метода поиска или замены текста или чисел на компьютере Mac. Во-первых, используется диалоговое окно Найти & Заменить . Во-вторых, используется панель поиска на ленте.

Диалоговое окно «Поиск & замена «

Панель поиска и параметры

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

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

Давайте разберем пару примеров использования функции ПОДСТАВИТЬ для наглядности.

Замена или удаление неразрывных пробелов

При выгрузке данных из 1С, копировании информации с вебстраниц или из документов Word часто приходится иметь дело с неразрывным пробелом — спецсимволом, неотличимым от обычного пробела, но с другим внутренним кодом (160 вместо 32). Его не получается удалить стандартными средствами — заменой через диалоговое окно Ctrl + H или функцией удаления лишних пробелов СЖПРОБЕЛЫ (TRIM) . Поможет наша функция ПОДСТАВИТЬ, которой можно заменить неразрывный пробел на обычный или на пустую текстовую строку, т.е. удалить:

Удаление неразрывного пробела

Подсчет количества слов в ячейке

Если нужно подсчитать количество слов в ячейке, то можно применить простую идею: слов на единицу больше, чем пробелов (при условии, что нет лишних пробелов). Соответственно, формула для расчета будет простой:

Количество слов

Если предполагается, что в ячейке могут находиться и лишние пробелы, то формула будет чуть посложнее, но идея — та же.

Извлечение первых двух слов

Если нужно вытащить из ячейки только первые два слова (например ФИ из ФИО), то можно применить формулу:

Извлечение первых двух слов

У нее простая логика:

  1. заменяем второй пробел на какой-нибудь необычный символ (например #) функцией ПОДСТАВИТЬ (SUBSTITUTE)
  2. ищем позицию символа # функцией НАЙТИ (FIND)
  3. вырезаем все символы от начала строки до позиции # функцией ЛЕВСИМВ (LEFT)

Ссылки по теме

  • Зачистка текста от лишних пробелов, непечатаемых символов и т.д.
  • Как подсчитать количество слов в ячейке
  • Преобразование чисел-как-текст в полноценные числа

Массовая замена текста формулами

Справочник подстановки

Хорошо видно, что один и тот же город или компания тут присутствуют в разношёрстных вариантах, что, очевидно, будет создавать массу проблем при работе с этими таблицами в будущем. И если чуть подумать, то можно найти массу примеров похожих задач из других областей. А теперь представьте, что к вам такие кривые данные попадают регулярно, т.е. это не единичная история из серии «исправил вручную, забыл», а проблема на регулярной основе и в большом количестве ячеек. Что же делать? Не заменять же вручную 100500 раз кривой текст на правильный через окошко «Найти и заменить» или нажимая Ctrl + H ?
Первое, что приходит в голову в подобной ситуации — произвести массовую замену по составленному заранее справочнику соответствия неправильных и правильных вариантов — вроде такого:
К сожалению, при очевидной распространенности подобной задачи, в Microsoft Excel не существует простых встроенных способов для её решения. Для начала, давайте разберёмся, как это делать формулами, без привлечения «тяжелой артиллерии» в виде макросов на VBA или Power Query.

Случай 1. Массовая полная замена

Данные и замены по компаниям

Начнём с относительно простого случая — ситуации, когда нужно заменить старый кривой текст на новый полностью. Предположим, что у нас есть две таблицы: В первой — исходные разномастные названия компаний. Во второй — справочник соответствия. Если находим в названии компании в первой таблице любое слово из столбца Найти, то нужно полностью заменить это кривое название на правильное — из столбца Заменить второй таблицы-справочника. Для удобства:

  • Обе таблицы преобразованы в динамические («умные») с помощью сочетания клавиш Ctrl + T или командой Вставка — Таблица (Insert — Table) .
  • На появившейся вкладке Конструктор (Design) первой таблице присвоено имя Данные , а второй таблице-справочнику — Замены .

Чтобы объяснить логику формулы зайдём чуть издалека.

Взяв в качестве примера первую компанию из ячейки A2 и забыв временно про остальные компании, попробуем определить какой именно вариант из столбца Найти там встречается. Для этого выделим любую пустую ячейку в свободной части листа и введём туда функцию НАЙТИ (FIND) :

Ищем вхождения

Эта функция определяет входит ли заданная подстрока (первый аргумент — все значения из столбца Найти) в исходный текст (первая компания из таблицы данных) и должна вывести на выходе либо порядковый номер символа, начиная с которого текст был найден, либо ошибку если подстрока не обнаружена.

Хитрость тут в том, что поскольку первым аргументом мы указали не одно, а несколько значений — эта функция будет возвращать в качестве результата тоже не одно значение, а массив из 3 элементов. Если у вас не последняя версия Office 365 с поддержкой динамических массивов, то после ввода этой формулы и нажатия на Enter вы этот массив увидите прямо на листе:

Динамический массив результатов в Office 365

Если же у вас предыдущие версии Excel, то после нажатия на Enter мы увидим только первое значение из массива результатов, т.е. ошибку #ЗНАЧ! (#VALUE!) .

Пугаться не стоит 🙂 На самом деле наша формула работает и увидеть весь массив результатов всё равно можно, если выделить введённую функцию в строке формул и нажать клавишу F9 (только не забудьте потом нажать Esc , чтобы вернуться обратно к формуле):

Массив результатов в строке формул Excel

Полученный массив результатов означает, что в исходном кривом названии компании (ГК Морозко ОАО) из всех значений в столбце Найти нашлось только второе (Морозко) , причём начиная с 4-го по счёту символа.

Теперь добавим к нашей формуле функцию ПРОСМОТР (LOOKUP) :

Добавляем функцию ПРОСМОТР

У этой функции три аргумента:

  1. Искомое значение — можно использовать любое достаточно большое число (главное, чтобы оно превышало длину любого текста в исходных данных)
  2. Просматриваемый_вектор — тот диапазон или массив, где мы ищем искомое значение. Здесь это введённая ранее функция НАЙТИ, возвращающая массив
  3. Вектор_результатов — диапазон, откуда мы хотим вернуть значение, если искомое значение найдено в соответствующей ячейке. Здесь это правильные названия из столбца Заменить нашей таблицы-справочника.

Главная и неочевидная фишка тут в том, что функция ПРОСМОТР при отсутствии точного совпадения всегда ищет ближайшее наименьшее (предыдущее) значение. Поэтому, указав в качестве искомого значения любое здоровенное число (например 9999), мы заставим ПРОСМОТР находить ячейку с ближайшим наименьшим числом (4) в массиве и выдавать соответствующее ей значение из вектора результатов, т.е. правильное название компании из столбца Заменить.

Второй нюанс заключается в том, что, технически, наша формула является формулой массива, т.к. функция НАЙТИ возвращает в качестве результатов не одно, а массив из трёх значений. Но поскольку функция ПРОСМОТР поддерживает массивы «из коробки», то нам не придётся вводить эту формулу как классическую формулу массива — с помощью сочетания клавиш Ctrl + Shift + Enter . Достаточно будет простого Enter .

Вот и всё. Надеюсь вы ухватили логику.

Осталось перенести готовую формулу первую ячейку B2 столбца Исправлено — и наша задача решена!

Готовая формула

Само-собой, с обычными (не умными) таблицами эта формула тоже замечательно работает (только не забудьте про клавишу F4 и закрепление соответствующих ссылок):

На обычных таблицах

Случай 2. Массовая частичная замена

Этот случай чуть похитрее. Снова имеем две «умных» таблицы:

Исходные данные для частичной замены

Первая таблица с криво записанными адресами, которые нужно исправить (я назвал её Данные2 ). Вторая таблица — справочник, по которому нужно произвести частичную замену подстроки внутри адреса (я назвал эту таблицу Замены2 ).

Принципиальное отличие тут в том, что нужно заменять только фрагмент исходных данных — например, в первом адресе неправильный «С-Петербург» на правильный «Санкт-Петербург» , оставив остальную часть адреса (индекс, улицу, дом) в исходном виде.

Готовая формула будет выглядеть так (для удобства восприятия я разделил её на насколько строк с помощью Alt + Enter ):

Частичная массовая замена

Основную работу здесь выполняет стандартная Excel’евская текстовая функция ПОДСТАВИТЬ (SUBSTITUTE) , у которой 3 аргумента:

  1. Исходный текст — первый кривой адрес из столбца Адрес
  2. Что ищем — тут мы используем трюк с функцией ПРОСМОТР(LOOKUP) из предыдущего способа, чтобы вытащить значение из столбца Найти, которое входит как фрагмент в кривой адрес.
  3. На что заменить — аналогичным образом находим соответствующее ему правильное значение из столбца Заменить.

Вводить эту формулу с Ctrl + Shift + Enter здесь тоже не нужно, хотя она и является, по-сути, формулой массива.

И хорошо видно (см. ошибки #Н/Д на предыдущей картинке), что такая формула, при всей её элегантности, обладает и парой недостатков:

    Функция ПОДСТАВИТЬ является регистрочувствительной, поэтому «Спб» в предпоследней строке так и не нашлось в таблице замен. Для решения этой проблемы можно либо использовать функцию ЗАМЕНИТЬ (REPLACE) , либо предварительно привести обе таблицы к одному регистру.

Перехват ошибок

Повторный прогон

Не идеально и, местами, громоздко, но гораздо лучше, чем однообразная замена вручную, правда? 🙂

P.S.

В следующей статье разберёмся, как реализовать подобную массовую подстановку с помощью макросов и Power Query.

Ссылки по теме

  • Как работает функция ПОДСТАВИТЬ (SUBSTITUTE) для замены текста
  • Поиск точного совпадения текста с помощью функции СОВПАД (EXACT)
  • Поиск и подстановка с учётом регистра (регистрочувствительный ВПР)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *