Как в Excel найти значение и заменить: полное руководство с примерами

Работа с большими таблицами в Microsoft Excel часто превращается в поиск иголки в стоге сена — особенно когда нужно оперативно исправить сотни одинаковых ошибок или стандартизировать данные. Функция "Найти и заменить" в Excel экономит часы рутинной работы, но многие пользователи используют лишь 10% её возможностей. Между тем, инструмент умеет не только заменять текст, но и работать с формулами, форматами ячеек, а также поддерживает регулярные выражения (в новых версиях) и даже VBA-скрипты для автоматизации.

Вы когда-нибудь сталкивались с ситуацией, когда после импорта данных из или CRM-системы все суммы отображаются как текст, а даты — в неверном формате? Или когда в таблице с 50 тысячами строк нужно заменить "ООО" на "Общество с ограниченной ответственностью" только в определённом столбце? В этой статье разберём 7 способов поиска и замены — от базовых до продвинутых, включая малоизвестные фишки, которые выходят за рамки стандартного диалогового окна Ctrl+H.

Особое внимание уделим проблемам, которые возникают при замене:

  • 🔹 Частичное совпадение — когда Excel находит лишние ячейки (например, заменяет "12" на "2026" в числе "3125").
  • 🔹 Формат данных — почему после замены даты превращаются в числа, а числа — в текст.
  • 🔹 Скрытые символы — невидимые пробелы, переносы строк и табуляции, которые портят результаты.
📊 Как часто вы используете "Найти и заменить" в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда не пользовался

1. Базовый поиск и замена через Ctrl+H

Самый простой способ — сочетание клавиш Ctrl+H (или Command+H на Mac). Этот метод подходит для одноразовых замен в небольших таблицах. Давайте разберём по шагам:

1. Откройте файл Excel и выделите диапазон ячеек (или оставьте без выделения, чтобы искать по всему листу).

2. Нажмите Ctrl+H — откроется окно "Найти и заменить".

3. В поле "Найти" введите искомое значение (например, НДС 20%).

4. В поле "Заменить на" укажите новое значение (например, НДС 18%).

5. Нажмите "Заменить все" или "Заменить" (для пошаговой проверки).

⚠️

Внимание: Если вы не выделили диапазон заранее, Excel заменит значения во всех листах книги. Чтобы ограничиться текущим листом, в окне поиска выберите "Лист" в выпадающем списке "Искать".

Пример из практики: вы импортировали прайс-лист, где цены указаны с символом доллара ($100), а нужно перевести в рубли (7500 ₽). Вместо ручного редактирования каждой ячейки:

  1. Нажмите Ctrl+H.
  2. В "Найти" введите $.
  3. В "Заменить на" введите 75 ₽ (если курс 1$=75₽).
  4. Нажмите "Заменить все".

Но что, если в таблице есть ячейки с текстом типа "Цена: $100"? В этом случае замена сработает некорректно — символ $ будет заменён и в середине текста. Решение — использовать подстановочные знаки (о них в следующем разделе).

2. Подстановочные знаки: *, ? и ~

Подстановочные знаки позволяют искать неточные совпадения или шаблоны. В Excel доступны три специальных символа:

  • 🌟 * — заменяет любое количество символов (включая ноль). Пример: поиск по НДС найдёт "НДС 20%", "Вычет НДС", "Без НДС".
  • 🔍 ? — заменяет один любой символ. Пример: поиск по к?т найдёт "кот", "кит", но не "крот".
  • 🚫 ~экранирует подстановочные знаки. Пример: чтобы найти именно , введите ~.

Практический кейс: в таблице есть номера телефонов в формате +7 (999) 123-45-67, а нужно привести их к виду 89991234567. Используем замену с подстановочными знаками:

  1. В "Найти" введите: +7 (*)
  2. В "Заменить на" введите: 8\1 (где \1 — это содержимое первых скобок).

⚠️

Внимание: Подстановочные знаки работают только при включённом режиме "Подстановочные знаки" в окне поиска. Если флажок не установлен, Excel будет искать буквальные символы * и ?.
Как заменить только часть текста в ячейке?

Допустим, в ячейках текст вида "Артикул: A12345", а нужно оставить только "A12345". В поле "Найти" введите Артикул: *, в поле "Заменить на" — \1 (если включены подстановочные знаки).

3. Поиск и замена с учётом регистра и формата

По умолчанию Excel игнорирует регистр символов: поиск по "ндс" найдёт и "НДС", и "Ндс", и "нДс". Чтобы сделать поиск чувствительным к регистру:

  1. Откройте окно замены (Ctrl+H).
  2. Нажмите "Параметры" (или "Больше >>" в старых версиях).
  3. Поставьте галочку "Учитывать регистр".

Ещё одна полезная опция — поиск по формату. Например, вы хотите заменить все красные ячейки с текстом "Просрочено" на "Оплачено". Для этого:

  1. В окне замены нажмите "Формат" рядом с полем "Найти".
  2. Выберите вкладку "Шрифт" и установите цвет текста — красный.
  3. В поле "Найти" введите Просрочено.
  4. В поле "Заменить на" введите Оплачено.

Таблица с примерами поиска по формату:

Цель Формат для поиска Пример замены
Заменить все ячейки с жирным текстом Формат → Шрифт → Начертание: Полужирный Заменить "Срочно" на "Выполнено"
Исправить даты в формате ДД.ММ.ГГ на ДД-ММ-ГГГГ Формат → Число → Дата: 14.03.01 Заменить формат на пользовательский ДД-ММ-ГГГГ
Удалить все пустые ячейки с зелёной заливкой Формат → Заливка → Зелёный + поле "Найти" оставьте пустым Заменить на "" (пусто) или удалить

💡

4. Замена с использованием формул

Стандартная замена не всегда справится с сложными задачами. Например, если нужно:

  • 📊 Заменить значения только в ячейках с формулами (игнорируя статичный текст).
  • 🔢 Умножить все числа в столбце на коэффициент (например, пересчитать цены с учётом инфляции).
  • 🗓️ Преобразовать даты из текстового формата в числовой.

Для таких случаев подойдёт комбинация функций НАЙТИ, ЗАМЕНИТЬ и ЕСЛИ. Пример: заменить в столбце A все вхождения "USD" на "RUB", но только если ячейка содержит текст (а не формулу):

=ЕСЛИ(ЕТЕКСТ(A1); ЗАМЕНИТЬ(A1; "USD"; "RUB"); A1)

Для массовой замены:

  1. Вставьте формулу в соседний столбец (например, B1).
  2. Протяните её до конца диапазона.
  3. Скопируйте столбец B, затем вставьте его поверх столбца A через "Специальная вставка → Значения".

⚠️

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

5. Продвинутая замена через Power Query

Power Query (вкладка "Данные" → "Получить данные") — это инструмент ETL (извлечение, преобразование, загрузка), который позволяет очищать данные на профессиональном уровне. Например, вы можете:

  • 🔄 Заменить значения с учётом условной логики (если "Да" → "1", если "Нет" → "0").
  • 🧹 Удалить все непечатаемые символы (табуляции, неразрывные пробелы).
  • 🔗 Объединить замену с другими преобразованиями (разделение столбцов, транслитерация).

Инструкция по замене через Power Query:

  1. Выделите диапазон данных и нажмите "Данные" → "Из таблицы/диапазона"Excel 2016+).
  2. В открывшемся редакторе выберите столбец, где нужно сделать замену.
  3. Нажмите "Преобразовать" → "Заменить значения".
  4. Введите искомый текст и замену, нажмите OK.
  5. После всех преобразований нажмите "Закрыть и загрузить".

Преимущество Power Query перед стандартной заменой:

  • 📌 Неразрушающее редактирование — оригинальные данные остаются нетронутыми.
  • 🔄 Возможность отката — все шаги сохраняются в истории.
  • 🤖 Автоматизация — запрос можно обновить одним кликом при изменении исходных данных.

Удалить пустые строки|Проверить типы данных (текст/число/дата)|Разделить объединённые столбцы|Удалить дубликаты|Сохранить копию оригинальных данных-->

6. Автоматизация замены через VBA-макросы

Если вам приходится выполнять одну и ту же замену регулярно (например, ежемесячно очищать отчёты), имеет смысл записать VBA-макрос. Это сэкономит время и исключит человеческие ошибки.

Пример макроса для замены "ООО" на "Общество с ограниченной ответственностью" только в выделенном диапазоне:

Sub ReplaceOOO()

Dim rng As Range

Dim cell As Range

Set rng = Selection ' Работаем с выделенным диапазоном

For Each cell In rng

If InStr(1, cell.Value, "ООО", vbTextCompare) > 0 Then

cell.Value = Replace(cell.Value, "ООО", "Общество с ограниченной ответственностью", , , vbTextCompare)

End If

Next cell

End Sub

Как использовать этот макрос:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Вернитесь в Excel, выделите нужный диапазон.
  4. Нажмите Alt+F8, выберите макрос ReplaceOOO и нажмите "Выполнить".

⚠️

Внимание: Макросы с заменой необратимы. Перед запуском сохраните копию файла или используйте Application.Undo в коде для возможности отмены:
Application.Undo ' Отмена последнего действия (добавьте в конец макроса)

🔹

7. Регулярные выражения в Excel (для новых версий)

В Excel 365 и Excel 2021 появилась поддержка регулярных выражений (regex) в функциях ТЕКСТРАЗД, ТЕКСТДО и ТЕКСТПОСЛЕ. Это революционное обновление для работы с текстом! Теперь можно:

  • 🔤 Извлекать подстроки по шаблону (например, все email-адреса из текста).
  • 🧹 Удалять лишние символы (например, очищать номера телефонов от скобок и тире).
  • 🔄 Заменять текст с учётом сложных условий (например, приводить все даты к единому формату).

Пример: заменить все даты в формате DD/MM/YYYY на DD.MM.YYYY (даже если они записаны как текст):

=ТЕКСТЗАМ(А1; "[0-9]{2}/[0-9]{2}/[0-9]{4}"; ТЕКСТРАЗД(А1; "[0-9]{2}/[0-9]{2}/[0-9]{4}"; 1) & "." & ТЕКСТРАЗД(А1; "[0-9]{2}/[0-9]{2}/[0-9]{4}"; 2) & "." & ТЕКСТРАЗД(А1; "[0-9]{2}/[0-9]{2}/[0-9]{4}"; 3))

Расшифровка формулы:

  • [0-9]{2} — ищет ровно 2 цифры (день, месяц или год).
  • ТЕКСТРАЗД — извлекает части даты по шаблону.
  • ТЕКСТЗАМ — заменяет оригинальный текст на новый формат.

⚠️

Внимание: Регулярные выражения в Excel поддерживаются только в англоязычной версии функций (например, TEXTBEFORE вместо ТЕКСТДО). Если у вас русскоязычный Excel, используйте английские названия или настройте язык формул в параметрах.

Частые ошибки и как их избежать

Даже опытные пользователи сталкиваются с проблемами при замене данных. Вот TOP-5 ошибок и их решения:

  1. Excel не находит текст, который есть в ячейке.

    Причина: лишние пробелы или непечатаемые символы. Решение: используйте функцию =ПЕЧСИМВ(A1), чтобы удалить невидимые символы.

  2. После замены числа превратились в даты.

    Причина: Excel автоматически преобразует форматы. Решение: перед заменой установите для столбца формат "Текстовый".

  3. Замена сработала не во всех ячейках.

    Причина: ячейки содержат формулы, а не значения. Решение: скопируйте столбец и вставьте как "Значения" (Ctrl+Shift+V → T).

  4. Excel заменяет часть чисел (например, "12" на "2026" в "3125").

    Причина: поиск по частичному совпадению. Решение: используйте =НАЙТИ("12";A1)=1 для проверки точного совпадения.

  5. После замены пропали ведущие нули (например, "00123" → "123").

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

📌

FAQ: Ответы на частые вопросы

Можно ли заменить значения в нескольких файлах Excel одновременно?

Да, но стандартными средствами Excel — нет. Варианты решения:

  • Использовать VBA-макрос для пакетной обработки файлов в папке.
  • Воспользоваться Power Query (объединить данные из нескольких файлов в одну таблицу и применить замену).
  • Использовать сторонние утилиты типа ASAP Utilities или Kutools for Excel.
Как заменить текст с учётом формул? Например, заменить "=СУММ" на "=SUM" во всех формулах.

Стандартная замена (Ctrl+H) не работает внутри формул. Решения:

  • Скопируйте все формулы как текст (Ctrl+` для переключения в режим отображения формул, затем Ctrl+C), замените текст в Блокноте, а потом вставьте обратно.
  • Используйте VBA-макрос для поиска и замены в формулах:
    Sub ReplaceInFormulas()
    

    Dim cell As Range

    For Each cell In ActiveSheet.UsedRange

    If cell.HasFormula Then

    cell.Formula = Replace(cell.Formula, "СУММ", "SUM")

    End If

    Next cell

    End Sub

Почему после замены некоторые ячейки стали отображаться как ####?

Это означает, что ширина столбца недостаточна для отображения данных или формат ячейки несовместим с содержимым. Решения:

  • Увеличьте ширину столбца (двойной клик по правой границе заголовка столбца).
  • Проверьте формат ячейки: если вы заменили текст на дату, установите формат "Дата".
  • Если в ячейке отрицательное время (например, -2:30), Excel не может его отобразить — используйте пользовательский формат [h]:mm.
Как заменить текст в защищённых ячейках?

Если лист или ячейки защищены паролем, стандартная замена не сработает. Варианты:

  • Снимите защиту листа (Рецензирование → Снять защиту листа).
  • Используйте VBA-макрос с временным снятием защиты:
    Sub ReplaceInProtected()
    

    ActiveSheet.Unprotect "пароль" ' Укажите ваш пароль

    ' Ваш код замены здесь

    ActiveSheet.Protect "пароль"

    End Sub

Можно ли отменить замену, если я уже закрыл файл?

К сожалению, нет — после закрытия файла история отмен (Ctrl+Z) сбрасывается. Чтобы избежать потерь данных:

  • Настройте автосохранение (Файл → Параметры → Сохранение).
  • Используйте версии файловOneDrive или SharePoint).
  • Перед массовыми заменами сохраняйте копию файла с пометкой "_backup".