Массовая замена ячеек в excel

Возможно, вас интересует: функция ЗАМЕНИТЬ в Excel.

  • «Найти и заменить» в Excel
    • Горячие клавиши
    • Процедура «Найти и заменить» не работает
    • Подстановочные знаки, или как найти “звёздочку”
  • Замена нескольких значений на несколько
    • Массовая замена с помощью функции “ПОДСТАВИТЬ”
    • Файл-шаблон с формулой множественной замены
  • Заменить несколько значений на одно
    • С помощью функции «ПОДСТАВИТЬ»
    • С помощью регулярных выражений
  • Массовая замена в !SEMTools
    • Пример: замена символов по вхождению
    • Пример: замена списка слов на другой список слов

Процедура поиска и замены данных — одна из самых востребованных в Excel. Базовая процедура позволяет заменить за один заход только одно значение, но зато множеством способов. Рассмотрим, как эффективно работать с ней.

Горячие клавиши

Сочетания клавиш ниже заметно ускорят работу с инструментом:

  • Для запуска диалогового окна поиска — Ctrl + F.
  • Для запуска окна поиска и замены — Ctrl + H.
  • Для выделения всех найденных ячеек (после нажатия кнопки «найти всё») — Ctrl + A.
  • Для очистки всех найденных ячеек — Ctrl + Delete.
  • Для ввода одних и тех же данных во все найденные ячейки — Ввод текста, Ctrl + Enter.

Смотрите gif-пример: здесь я произвожу поиск ячеек с дальнейшим их редактированием. В отличие от замены, редактирование найденных ячеек позволяет быстро менять их содержимое целиком.

Находим все пустые ячейки в диапазоне и заполняем их нулями или одним значением с помощью горячих клавиш

Процедура «Найти и заменить» не работает

Я сам когда-то неоднократно впадал в ступор в этой ситуации. Уверен и видишь своими глазами, что искомый паттерн в данных есть, но Excel при выполнении процедуры поиска сообщает:

Не удалось ничего найти по вашему запросу

или при замене:

Мы не нашли ничего, что нужно было заменить

Так вот, совет нажать кнопку “Параметры” в обоих этих сообщениях действительно полезен — там наверняка активен чекбокс “Учитывать регистр” или “Ячейка целиком”, которые мешают Excel найти искомое. Excel, в свою очередь, сохраняет конфигурацию последнего поиска.

Статус опций “Учитывать регистр” и “Ячейка целиком” виден после нажатия кнопки “Параметры”.

Подстановочные знаки, или как найти “звёздочку”

Сухая официальная справка по Excel сообщает:

— что можно использовать подстановочные символы “*” и “?”;
— что “*” и “?” означают несколько символов, включая их отсутствие, и один любой символ;
— что их можно использовать для соответствующих процедур поиска.

Чего не говорит справка, так это того, что в комбинации с опцией “ячейка целиком” эти символы позволяют, не прибегая к помощи расширенного фильтра и процедуры поиска группы ячеек:

  • находить ячейки, заканчивающиеся на определенный символ, слово или текст,
  • находить ячейки, начинающиеся с определенного символа, слова или текста,
  • находить непустые ячейки.

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

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

Так а как найти звёздочку?

Действительно, забыл. Чтобы найти «звёздочку», нужно в окошке поиска ставить перед ней знак ~ (тильда), он находится обычно под клавишей Esc. Это позволяет экранировать “звездочку”, как и вопросительный знак, и не воспринимать их как служебные символы.

Замена нескольких значений на несколько

Массовая замена в Excel — довольно частая потребность. Очень часто нужно массово и при этом быстро заменить несколько символов, слов и т.д. на другие. При этом на текущий момент простого инструмента в стандартном функционале Excel нет.

Тем не менее, если очень нужно, любую задачу можно решить. В зависимости от того, на что вы хотите заменить, могут помочь комбинации функций, регулярные выражения, а в самых сложных случаях — надстройка !SEMTools.

Эта задача более сложная, чем замена на одно значение. Как ни странно, функция «ЗАМЕНИТЬ» здесь не подходит — она требует явного указания позиции заменяемого текста. Зато может помочь функция «ПОДСТАВИТЬ».

Массовая замена с помощью функции “ПОДСТАВИТЬ”

Используя несколько условий в сложной формуле, можно производить одновременную замену нескольких значений. Excel позволяет использовать до 64 уровней вложенности — свобода действий высока. Например, вот так можно перевести кириллицу в латиницу:

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

Но у решения есть и свои недостатки:

  • Функция ПОДСТАВИТЬ регистрозависимая, что заставляет при замене одного символа использовать два его варианта — в верхнем и нижнем регистрах. Хотя в некоторых случаях, как, например, на картинке выше, это и преимущество.
  • Максимум 64 замены — хоть и много, но все же ограничение.
  • Формально процедура замены таким способом будет происходить массово и моментально, однако длительность написания таких формул сводит на нет это преимущество. За исключением случаев, когда они будут использоваться многократно.

Файл-шаблон с формулой множественной замены

Вместо явного прописывания заменяемых паттернов в формуле существует вариант использовать внутри нее ссылки на ячейки, значения в которых можно прописывать на свое усмотрение. Это сократит время, так как не требует редактирования сложной формулы.

Файл доступен по ссылке, но можно и не скачивать его, а просто скопировать текст формулы ниже и вставить ее в любую ячейку, кроме диапазона A1:B64. Формула заменяет в ячейке C1 значения в столбце A стоящими напротив в столбце B.

функция для замены нескольких букв
Формула в файле-шаблоне для множественной замены на примере транслитерации

А вот и она сама (тройной клик по любой части текста = выделить всю формулу): обращается к ячейке D1, делая 64 замены по правилам, указанным в ячейках A1-B64. При этом в столбцах можно удалять значения — это не нарушит её работу.

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(D1;$A$1;$B$1);$A$2;$B$2);$A$3;$B$3);$A$4;$B$4);$A$5;$B$5);$A$6;$B$6);$A$7;$B$7);$A$8;$B$8);$A$9;$B$9);$A$10;$B$10);$A$11;$B$11);$A$12;$B$12);$A$13;$B$13);$A$14;$B$14);$A$15;$B$15);$A$16;$B$16);$A$17;$B$17);$A$18;$B$18);$A$19;$B$19);$A$20;$B$20);$A$21;$B$21);$A$22;$B$22);$A$23;$B$23);$A$24;$B$24);$A$25;$B$25);$A$26;$B$26);$A$27;$B$27);$A$28;$B$28);$A$29;$B$29);$A$30;$B$30);$A$31;$B$31);$A$32;$B$32);$A$33;$B$33);$A$34;$B$34);$A$35;$B$35);$A$36;$B$36);$A$37;$B$37);$A$38;$B$38);$A$39;$B$39);$A$40;$B$40);$A$41;$B$41);$A$42;$B$42);$A$43;$B$43);$A$44;$B$44);$A$45;$B$45);$A$46;$B$46);$A$47;$B$47);$A$48;$B$48);$A$49;$B$49);$A$50;$B$50);$A$51;$B$51);$A$52;$B$52);$A$53;$B$53);$A$54;$B$54);$A$55;$B$55);$A$56;$B$56);$A$57;$B$57);$A$58;$B$58);$A$59;$B$59);$A$60;$B$60);$A$61;$B$61);$A$62;$B$62);$A$63;$B$63);$A$64;$B$64)

Заменить несколько значений на одно

С помощью функции «ПОДСТАВИТЬ»

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

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"1";"");"2";"");"3";"");"4";"");"5";"");"6";"");"7";"");"8";"");"9";"");"0";"")

С помощью регулярных выражений

Важно: регулярные выражения не поставляются в Excel “из коробки”, но формулы ниже доступны бесплатно, если установить надстройку !SEMTools.

Регулярные выражения (RegEx, регулярки) — наиболее удобное решение, когда нужно заменить несколько символов на один. Все эти несколько символов обычным способом безо всяких разделителей нужно перечислить внутри квадратных скобок. Примеры формул:

=regexreplace(A1;"d";"#")
=regexreplace(A1;"w";"#")
=regexreplace(A1;"а-яА-Я";"#")
=regexreplace(A1;"s";"_")

Первая заменяет на символ “#” все цифры, вторая — все английские буквы, а третья — все кириллические символы в верхнем и нижнем регистре. Четвёртая заменяет любые пробелы, в том числе табуляцию и переносы строк, на нижнее подчеркивание.

замена регулярными выражениями
Массовая замена символов регулярными выражениями при установленной надстройке !SEMTools

Если же нужно заменять не символы, а несколько значений, состоящих в свою очередь из нескольких букв, цифр или знаков, синтаксис предполагает уже использование круглых скобок и вертикальной черты “|” в качестве разделителя.

Массовая замена в !SEMTools

Надстройка для Excel !SEMTools позволяет в пару кликов производить замены на всех уровнях:

  • символов и их сочетаний,
  • паттернов регулярных выражений,
  • слов,
  • целых ячеек (в некоторой степени аналог ВПР).
Массовая замена в Excel с !SEMTools
Меню инструментов массовой замены в !SEMTools

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

Пример: замена символов по вхождению

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

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

Массовая замена символов по вхождению на примере Leet Language (некоторые английские буквы заменяются на похожие цифры)

Пример: замена списка слов на другой список слов

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

замена списка слов на одно и то же слово
Замена списка слов на другой список в !SEMTools

С версии !SEMTools 9.18.18 появилась опция: при замене списка слов не учитывать пунктуацию в исходных предложениях, а регистр слов теперь сохраняется.

замена списка слов на другой список в Excel

Инструменты находятся в группе макросов «ИЗМЕНИТЬ» в отдельном меню и для удобства продублированы в меню «Изменить символы», «Изменить слова» и «Изменить ячейки».

Скачивайте надстройку !SEMTools и делайте массовую замену символов, слов или целых списков в Excel!


Смотрите также по теме поиска и замены данных в Excel:

  • Найти заглавные/строчные буквы в ячейке;
  • Найти латиницу или кириллицу в тексте;
  • Найти числа в текстовых ячейках;
  • Обнаружить текстовые символы;
  • Функция НАЙТИ в Excel;
  • Функция ПОИСК в Excel;
  • Функция ЗАМЕНИТЬ в Excel;
  • Найти определенные символы в ячейках Excel.

Хитрости »

12 Август 2015              83707 просмотров


Массовая замена слов

Предположим, что нам необходимо заменить все «ул.» на листе на «улица «. Или русское слово «дом» на английское «house». Или еще интереснее: все английские буквы на русские. Например, английская «а» должна быть заменена на русскую «a», английская «c» на русскую «с», английская «H» на русскую «Н» и т.д. А такое тоже нередко бывает и доставляет проблемы. Ведь если в одной таблице будут русские буквы, а в другой английские — то применение большинства встроенных функций поиска(та же ВПР) просто не найдут соответствия.
Если подобную замену надо сделать для одного сочетания, то все просто: жмем Ctrl+H и указываем что заменить и на что. Но если таких замен надо сделать 20? Или 120? Это надо будет 120 раз нажать и ввести что заменять и на что. А если это надо сделать еще и не в одном документе — то…Думаю сами справитесь с умножением количества замен на количество файлов, в которых это надо сделать. И вроде бы простая операция превращается в ваш личный ад на работе.
Недавно на форуме участнику потребовалось автоматизировать именно такую штуку. Т.к. код несложный — решил написать и чуть дополнив выложить для всех кому код может потребоваться:

Option Explicit
Sub Replace_Mass()
    Dim s As String
    Dim lCol As Long
    Dim avArr, lr As Long
    Dim lLastR As Long
    Dim lToFindCol As Long, lToReplaceCol As Long, lLookAt As Long
 
    'запрашиваем направление перевода - с русского на англ. или наоборот
    lCol = Val(InputBox("Укажите направление перевода:" & vbNewLine & _
                    "   1 - ru-en" & vbNewLine & _
                    "   2 - en-ru", "Запрос", 1))
    If lCol = 0 Then Exit Sub
    'запрашиваем по части ячейки искать или по всему тексту
    'по умолчанию - по части
    lLookAt = Val(InputBox("Искать соответствие по части ячейки или по всему тексту:" & vbNewLine & _
                    "   1 - по всему тексту" & vbNewLine & _
                    "   2 - по части ячейки", "Запрос", 2))
    If lLookAt = 0 Then Exit Sub
 
    Select Case lCol
    Case 1
        lToFindCol = 1
        lToReplaceCol = 2
    Case 2
        lToFindCol = 2
        lToReplaceCol = 1
    End Select
 
    Application.ScreenUpdating = 0
    'Получаем с листа Соответствия значения, которые надо заменить в выделенном диапазоне
    With ThisWorkbook.Sheets("Соответствия")
        lLastR = .Cells(.Rows.Count, 1).End(xlUp).Row
        avArr = .Cells(1, 1).Resize(lLastR, 2)
    End With
    'заменяем
    For lr = 1 To UBound(avArr, 1)
        s = avArr(lr, lToFindCol)
        If Len(s) Then 'если значение для замены не пустое
            Selection.Replace s, avArr(lr, lToReplaceCol), lLookAt
        End If
    Next lr
    Application.ScreenUpdating = 1
End Sub

Как это работает. В книге есть специальный лист с именем «Соответствия». На нем в столбце А записаны слова, которые необходимо заменить, а в столбце В — на что эти слова заменить. Если в столбце А пусто — то замена не будет произведена. Если в столбце В пусто — то значение из столбца А будет просто удалено.
Замены производятся исключительно в выделенных на листе ячейках. Ячейки могут быть несмежными.

Итак, необходимо сделать много замен. Скачиваете файл:

  Массовая замена слов (54,5 KiB, 9 783 скачиваний)

Примечание: Я сделал файл как переводчик. Т.е. в первом столбце русские слова, во втором английские. Но в столбцах может быть что угодно — хоть слова, хоть символы, хоть числа.

На лист «Соответствия» записываете в столбец А — что заменять, в столбец В — на что заменять. Переходите на лист книги, в котором необходимо произвести замену. Выделяете ячейки, значения в которых надо найти и заменить. После чего жмете Alt+F8 и выбираете макрос «Tips_Macro_ReplaceMASS.xls!Replace_Mass»(или просто «Replace_Mass», если код в той же книге, что и ячейки для поиска и замены).

Первым появится

окно с запросом направления перевода. По умолчанию 1(ru-en). Т.е. будет браться слово из столбца А и заменяться словом из столбца В. Но если указать 2 — то будет браться слово из столбца В и заменяться словом из столбца А. Т.е. аналог переводчика — с рус. на англ. и наоборот. Либо из А в В, либо из В в А.

Вторым появится

запрос на метод просмотра данных:

  • если указать «1 — по всему тексту» — данные из столбца А будут заменять только в том случае, если ячейка в выделенном для замены диапазоне полностью совпадает со значением из столбца А листа «Соответствия». Например, в любой из выделенных ячеек записано «На столе книга», а на листе «Соответствия» в столбце А есть только слово «книга». Замена не будет произведена, т.к. необходимо, чтобы в столбце А было так же «На столе книга».
  • если указать «2 — по части ячейки» — данные из столбца А будут заменять в случае, если ячейка в выделенном для замены диапазоне содержит любое слово из столбца А листа «Соответствия». На том же примере — «На столе книга». Если выбрать 2, то в тексте «На столе книга» слово книга будет заменено на слово из столбца В — «book».

И еще один практический пример чуть модифицированного кода. Предположим, имеется таблица выручки по реализации продукции:
Таблица выручки
Как видно, здесь присутствую только номера статей, но нет их расшифровки. Зато расшифровка есть в отдельном листе «Справочник»:
Справочник
Как видно, в справочнике присутствуют нужные номера статей и можно было бы применить ту же ВПР(VLOOKUP) для замен. Если бы не одно но: в таблице по реализации помимо номеров статьей есть еще лишний текст «Статья затрат:». Конечно, можно сначала заменить этот текст, потом в отдельном столбце применить ВПР, заменить формулу значениями и вернуть в исходный столбец. Если при этом надо еще оставить текст «Статья затрат:», то надо будет сделать еще доп.манипуляции либо при составлении формулы, либо после. В любом случае — слишком много лишних телодвижений. А значит бОльшие времязатраты.
Приложенный ниже файл поможет сделать это в разы быстрее:

Скачать файл с примером и кодом:

  Массовая замена слов — статьи.xls (91,5 KiB, 2 648 скачиваний)

и в итоге за пару секунд получим следующий результат:
Результат замены
Достаточно выделить столбец со статьями на листе с реализацией и запустить код(либо нажатием кнопки заменить значения, либо нажав Alt+F8 и выбрав из списка макросов макрос

Replace_Mass

).
После нажатия на кнопку будут запрошены следующие параметры:

  1. указать номер столбца значений в листе «Справочник», в котором искать соответствия номерам статей(в нашем случае это столбец 1(А))
  2. указать номер столбца, значениями которого заменять найденные в таблице реализации значения(это может быть один из трех столбцов справочника: Группа затрат, Статья затрат, Подстатьи затрат). Логичнее всего указать столбец 4, т.к. он наиболее детализирован и конкретнее указывает расшифровку статьи
  3. далее будет предложено указать точность поиска:
    • если указать «1 — по всему тексту» — данные будут заменены только в том случае, если значение ячейки в выделенном для замены диапазоне полностью совпадает со значением из столбца А листа «Справочник». Т.е. если бы у нас в таблице реализации был бы записан только номер статьи(1.01), тогда можно было бы указать именно 1
    • если указать «2 — по части ячейки» — данные будут заменены только в том случае, если значение ячейки в выделенном для замены диапазоне содержит любое значение из столбца А листа «Справочник». Это больше подходит к описанному случаю, т.к. нам необходимо заменить исключительно номер статьей на их расшифровку, оставив при этом текст «Статья затрат: «

Если все указано корректно, то на листе будут произведены все необходимые замены.
Возможные ошибки, которые предусмотрены кодом и о которых будет сообщено соответствующим сообщением(код прервется, замены не будут произведены):

  • на листе Справочник нет значений
  • в качестве столбца для поиска значений и для замены значений на листе Справочник указано одно и то же число
  • в качестве столбца значений для замены указано число, превышающее общее количество столбцов на листе Справочник

Особое внимание хочу уделить случаю, когда выбирается замена по части ячейки. В этом случае лучше список на листе Справочник отсортировать по длине текста по тому столбцу, в котором будут значения для поиска. Зачем это надо: т.к. значение по части ячейки будет заменять не полное соответствие, то есть вероятность неверных замен. Например, есть текст «Статья затрат: 1.011». В то же время на листе Справочник есть статьи «1.01» и «1.011». Т.к. «1.01» идет раньше в большинстве случаев, то текст будет заменен некорректно: «Статья затрат: ТВ1«.
Чтобы получить длину строки текста можно использовать функцию ДЛСТР(LEN):
=ДЛСТР(A2)
=LEN(A2)

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

Так же см.:
Замена значений по списку в PowerQuery
Найти в ячейке любое слово из списка
Замена ссылок в формулах на их значения
Как удалить строки по условию?


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Группа: Пользователи

Ранг: Прохожий

Сообщений: 7


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Смотрю, тема для меня как раз, хоть и с бородой.

Требуется распечатать файл с картинками (письмо А4), в котором на каждой новой странице в столбце будет меняться текст согласно прилагаемого списка. То есть в первом «Здравствуйте, Иван Иванович!», в последующих «Здравствуйте, Сергей Сергеич!», «…. Петр Петрович!» и тд. И таких страниц под 500 штук будет

Сам файл еще не перенесен из фотошопа в ексель, поэтому примера пока нет. Прошу, кому не трудно — объясните алгоритм. Список имен будет на соседнем листе.

И еще вопрос — как сильно подвиснет ексель если все 500 страниц с картинкой выложить в один лист? Может быть разделить? А если разделить, то по сколько штук, если одна картинка 2 Мб? Комп средненький, ХР

документ несколько найти заменить 1

Как все мы знаем, мы можем использовать функцию «Найти и заменить», чтобы найти несколько одинаковых ячеек и заменить их нужным вам значением. Но иногда вам нужно применить замену «многие ко многим» одновременно. Например, у меня есть ряд данных, и теперь я хочу заменить все яблоки на красные яблоки, апельсины на зеленые апельсины, бананы на желтые бананы и так далее, как показано на следующих снимках экрана. Есть ли у вас какие-нибудь хорошие идеи для решения этой задачи? Excel?

Найти и заменить сразу несколько значений кодом VBA


стрелка синий правый пузырь Найти и заменить сразу несколько значений кодом VBA

Если вы устали снова и снова находить и заменять значения, следующий код VBA может помочь вам заменить сразу несколько значений необходимыми текстами.

1. Создайте условия, которые вы хотите использовать, которые содержат исходные значения и новые значения. Смотрите скриншот:

документ несколько найти заменить 2

2. Затем удерживайте ALT + F11 , чтобы открыть Окно Microsoft Visual Basic для приложений.

3. Нажмите Вставить > Модулии вставьте следующий код в окно модуля.

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

Sub MultiFindNReplace()
'Updateby Extendoffice
Dim Rng As Range
Dim InputRng As Range, ReplaceRng As Range
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Original Range ", xTitleId, InputRng.Address, Type:=8)
Set ReplaceRng = Application.InputBox("Replace Range :", xTitleId, Type:=8)
Application.ScreenUpdating = False
For Each Rng In ReplaceRng.Columns(1).Cells
    InputRng.Replace what:=Rng.Value, replacement:=Rng.Offset(0, 1).Value
Next
Application.ScreenUpdating = True
End Sub

4, Затем нажмите F5 Чтобы запустить этот код, во всплывающем окне подсказки укажите диапазон данных, в котором вы хотите заменить значения новыми значениями.

документ несколько найти заменить 3

5. Нажмите OK, и отображается другое окно подсказки, напоминающее вам о выборе критериев, созданных на шаге 1. См. снимок экрана:

документ несколько найти заменить 4

6. Затем нажмите OK, все конкретные значения были заменены новыми значениями по мере необходимости.

документ несколько найти заменить 5


Статьи по теме:

Как найти и заменить определенный текст в текстовых полях?

Как найти и заменить текст в заголовках диаграмм в Excel?

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

Как изменить сразу несколько путей гиперссылок в Excel?


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (136)


Оценок пока нет. Оцените первым!

Допустим у нас есть некий список, например, список товаров выгруженный из учетной системы. Нам этот список не нравится тем что в некоторых названиях товаров единица измерения, например, (кг.) написаны как попало, где-то «кг.», где-то «килограммы», где-то «КГ», а где-то и с ошибкой «килограмы». В общем некая солянка. Для редактирования «руками» список слишком велик, например, 1 000 позиций. Что же делать?

Все очень просто. Выделяем этот список, нажимаем сочетание клавиш «Ctrl+H«. Должно будет открыться диалоговое окно замены:

Как изменить текст во множестве ячеек?

В поле «Найти:» вводим «(*)«, в поле «Заменить на:» вводим, например, «(кг.)« и нажимаем кнопку «Заменить Все«:

kak-izmenit-tekst-vo-mnozhestve-yacheek_2.png

Получаем отредактированный список:

kak-izmenit-tekst-vo-mnozhestve-yacheek_3.png

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

Найти и заменить в открытых книгах или нескольких листах:

Kutools for ExcelАвтора Найти и заменить функция может помочь вам найти и заменить значения из открытых книг или конкретных рабочих листов, которые вам нужны.

док-множественный найти и заменить-6

arrow синий правый пузырь Найти И Заменить Сразу Несколько Значений Кодом VBA


Если вы устали от поиска и замены значений снова и снова, следующий код VBA может помочь вам сразу заменить несколько значений вашими необходимыми текстами.

2, Затем нажмите и удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений.

3. Щелчок Вставить > модуль, и вставьте следующий код в окно модуля.

Код VBA: поиск и замена сразу нескольких значений

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Sub MultiFindNReplace()

Dim Rng As Range

Dim InputRng As Range, ReplaceRng As Range

xTitleId = "KutoolsforExcel"

Set InputRng = Application.Selection

Set InputRng = Application.InputBox("Original Range ", xTitleId, InputRng.Address, Type:=8)

Set ReplaceRng = Application.InputBox("Replace Range :", xTitleId, Type:=8)

Application.ScreenUpdating = False

For Each Rng In ReplaceRng.Columns(1).Cells

    InputRng.Replace what:=Rng.Value, replacement:=Rng.Offset(0, 1).Value

Next

Application.ScreenUpdating = True

End Sub

4, Затем нажмите F5 для запуска этого кода, в раскрывающемся окне подсказки укажите диапазон данных, который вы хотите заменить значениями новыми значениями.

5. Щелчок OK, и появится другое окно подсказки, чтобы напомнить вам, выберите критерии, которые вы создали на шаге 1. Смотрите скриншот:

6, Затем нажмите OK, все конкретные значения были заменены новыми значениями по мере необходимости.

doc multiple find заменить 5


Статья: https://www.extendoffice.com/ru/documents/excel/1873-excel-find-and-replace-multiple-values-at-once.html

Подключитесь к эксперту. Учитесь у живых инструкторов.

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

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

Поиск

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

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

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

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

    Советы: В критериях поиска можно использовать подстановочные знаки — вопросительный знак (?), звездочку (*), тильду (~).

    • Используйте вопросительный знак (?) для поиска одного символа, например s?t находит «sat» и «set».

    • Используйте звездочку (*), чтобы найти любое количество символов. Например, s*d находит слова «sad» и «started».

    • Используйте тильду (~), за которой следует знак ?, *или ~, чтобы найти вопросительные знаки, звездочки или другие символы тильды, например fy91~? находит «fy91?».

  2. Нажмите кнопку Найти все или Найти далее , чтобы выполнить поиск.

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

  3. Щелкните Параметры>> , чтобы при необходимости определить поиск:

    • В: Чтобы найти данные на листе или во всей книге, выберите Лист или Книга.

    • Поиск: Вы можете выполнить поиск по строкам (по умолчанию) или по столбцам.

    • Посмотрите в: Чтобы найти данные с определенными сведениями, в поле щелкните Формулы, Значения, Заметки или Примечания.

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

    • Вариант соответствия . Проверьте это, если вы хотите искать данные с учетом регистра.

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

  4. Если вы хотите найти текст или цифры с определенным форматированием, нажмите кнопку Формат, а затем выберите нужные значения в диалоговом окне Поиск формата .

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

Заменить

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

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

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

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

    Советы: В критериях поиска можно использовать подстановочные знаки — вопросительный знак (?), звездочку (*), тильду (~).

    • Используйте вопросительный знак (?) для поиска одного символа, например s?t находит «sat» и «set».

    • Используйте звездочку (*), чтобы найти любое количество символов. Например, s*d находит слова «sad» и «started».

    • Используйте тильду (~), за которой следует знак ?, *или ~, чтобы найти вопросительные знаки, звездочки или другие символы тильды, например fy91~? находит «fy91?».

  2. В поле Заменить на введите текст или числа, которые нужно использовать для замены текста поиска.

  3. Нажмите Заменить все или Заменить.

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

  4. Щелкните Параметры>> , чтобы при необходимости определить поиск:

    • В: Чтобы найти данные на листе или во всей книге, выберите Лист или Книга.

    • Поиск: Вы можете выполнить поиск по строкам (по умолчанию) или по столбцам.

    • Посмотрите в: Чтобы найти данные с определенными сведениями, в поле щелкните Формулы, Значения, Заметки или Примечания.

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

    • Вариант соответствия . Проверьте это, если вы хотите искать данные с учетом регистра.

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

  5. Если вы хотите найти текст или цифры с определенным форматированием, нажмите кнопку Формат, а затем выберите нужные значения в диалоговом окне Поиск формата .

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

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

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

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

Окно поиска

  1. Нажмите клавиши CTRL+F или выберите Главная > Найти & Выберите > Найти.

  2. В поле Найти: введите текст или цифры, которые нужно найти.

  3. Нажмите кнопку Найти далее , чтобы выполнить поиск.

  4. Вы можете дополнительно определить поиск:

    • В: Чтобы найти данные на листе или во всей книге, выберите Лист или Книга.

    • Поиск: Вы можете выполнить поиск по строкам (по умолчанию) или по столбцам.

    • Посмотрите в: Чтобы найти данные с определенными сведениями, в поле щелкните Формулы, Значения, Заметки или Примечания.

    • Вариант соответствия . Проверьте это, если вы хотите искать данные с учетом регистра.

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

Советы: В критериях поиска можно использовать подстановочные знаки — вопросительный знак (?), звездочку (*), тильду (~).

  • Используйте вопросительный знак (?) для поиска одного символа, например s?t находит «sat» и «set».

  • Используйте звездочку (*), чтобы найти любое количество символов. Например, s*d находит слова «sad» и «started».

  • Используйте тильду (~), за которой следует знак ?, *или ~, чтобы найти вопросительные знаки, звездочки или другие символы тильды, например fy91~? находит «fy91?».

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

  1. Нажмите клавиши CTRL+F или выберите Главная > Найти & Выберите > Найти.

  2. В поле Найти: введите текст или цифры, которые нужно найти.

  3. Выберите Найти все , чтобы выполнить поиск всех вхождений.

    Поиск всех раскрывающихся дисплеев

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

  4. Выберите любой элемент в списке, чтобы выделить соответствующую ячейку на листе.
     

    Примечание: Вы можете изменить содержимое выделенной ячейки.

  1. Нажмите клавиши CTRL+H или перейдите на главную страницу > Найти & выберите > Заменить.

  2. В поле Найти введите текст или цифры, которые требуется найти.

  3. Вы можете дополнительно определить поиск:

    • В: Чтобы найти данные на листе или во всей книге, выберите Лист или Книга.

    • Поиск: Вы можете выполнить поиск по строкам (по умолчанию) или по столбцам.

    • Вариант соответствия . Проверьте это, если вы хотите искать данные с учетом регистра.

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

      Советы: В критериях поиска можно использовать подстановочные знаки — вопросительный знак (?), звездочку (*), тильду (~).

      • Используйте вопросительный знак (?) для поиска одного символа, например s?t находит «sat» и «set».

      • Используйте звездочку (*), чтобы найти любое количество символов. Например, s*d находит слова «sad» и «started».

      • Используйте тильду (~), за которой следует знак ?, *или ~, чтобы найти вопросительные знаки, звездочки или другие символы тильды, например fy91~? находит «fy91?».

  4. В поле Заменить на введите текст или числа, которые вы хотите использовать для замены текста поиска.

  5. Выберите Заменить или Заменить все.

    Советы: 

    • При нажатии кнопки Заменить все все вхождения ищемого условия будут заменены.

    • При нажатии кнопки Заменить можно заменить один экземпляр за раз, нажав кнопку Далее , чтобы выделить следующий экземпляр.

  1. Выберите любую ячейку для поиска по всему листу или выберите определенный диапазон ячеек для поиска.

  2. Нажмите клавиши COMMAND+F или выберите лупу, чтобы развернуть панель поиска и ввести текст или число, которые нужно найти в поле поиска.

    Советы: В критериях поиска можно использовать подстановочные знаки — вопросительный знак (?), звездочку (*), тильду (~).

    • Используйте вопросительный знак (?) для поиска одного символа, например s?t находит «sat» и «set».

    • Используйте звездочку (*), чтобы найти любое количество символов. Например, s*d находит слова «sad» и «started».

    • Используйте тильду (~), за которой следует знак ?, *или ~, чтобы найти вопросительные знаки, звездочки или другие символы тильды, например fy91~? находит «fy91?».

  3. Нажмите клавишу RETURN.

    Примечания: 

    • Чтобы найти следующий экземпляр элемента, который вы ищете, снова нажмите клавишу RETURN или в диалоговом окне Найти и выберите Найти далее.

    • Чтобы указать дополнительные параметры поиска, выберите увеличительное стекло и выберите Поиск на листе или Поиск в книге. Можно также выбрать параметр Дополнительно , который открывает диалоговое окно Поиск .

    Совет: Вы можете отменить выполняемый поиск, нажав клавишу ESC.

Поиск

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

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

Поиск текста или чисел в книге или листе с помощью клавиш CTRL+F

  1. В поле Найти что: введите текст или числа, которые нужно найти.

    Советы: В критериях поиска можно использовать подстановочные знаки — вопросительный знак (?), звездочку (*), тильду (~).

    • Используйте вопросительный знак (?) для поиска одного символа, например s?t находит «sat» и «set».

    • Используйте звездочку (*), чтобы найти любое количество символов. Например, s*d находит слова «sad» и «started».

    • Используйте тильду (~), за которой следует знак ?, *или ~, чтобы найти вопросительные знаки, звездочки или другие символы тильды, например fy91~? находит «fy91?».

  2. Нажмите кнопку Найти далее или Найти все , чтобы выполнить поиск.

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

  3. Щелкните > Параметры поиска , чтобы при необходимости дополнительно определить поиск:

    • В: Чтобы найти данные в пределах определенного выделенного фрагмента, нажмите кнопку Выбор. Чтобы найти данные на листе или во всей книге, выберите Лист или Книга.

    • Направление: Вы можете выполнить поиск вниз (по умолчанию) или вверх.

    • Вариант соответствия . Проверьте это, если вы хотите искать данные с учетом регистра.

    • Сопоставление всего содержимого ячейки . Проверьте это, если вы хотите искать ячейки, содержащие только символы, введенные в поле Найти .

Заменить

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

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

Замените текст или числа в книге или листе, нажав клавиши CTRL+H

  1. В поле Найти что: введите текст или числа, которые нужно найти.

    Советы: В критериях поиска можно использовать подстановочные знаки — вопросительный знак (?), звездочку (*), тильду (~).

    • Используйте вопросительный знак (?) для поиска одного символа, например s?t находит «sat» и «set».

    • Используйте звездочку (*), чтобы найти любое количество символов. Например, s*d находит слова «sad» и «started».

    • Используйте тильду (~), за которой следует знак ?, *или ~, чтобы найти вопросительные знаки, звездочки или другие символы тильды, например fy91~? находит «fy91?».

  2. В поле Заменить на введите текст или числа, которые нужно использовать для замены текста поиска.

  3. Щелкните Заменить или Заменить все.

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

  4. Щелкните > Параметры поиска , чтобы при необходимости дополнительно определить поиск:

    • В: Чтобы найти данные в пределах определенного выделенного фрагмента, нажмите кнопку Выбор. Чтобы найти данные на листе или во всей книге, выберите Лист или Книга.

    • Направление: Вы можете выполнить поиск вниз (по умолчанию) или вверх.

    • Вариант соответствия . Проверьте это, если вы хотите искать данные с учетом регистра.

    • Сопоставление всего содержимого ячейки . Проверьте это, если вы хотите искать ячейки, содержащие только символы, введенные в поле Найти .

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Рекомендуемые статьи

Объединение и отмена объединения ячеек

ЗАМЕНИТЬ, ЗАМЕНИТЬБ

Применение проверки данных к ячейкам

Понравилась статья? Поделить с друзьями:
  • Мастер импорта текста в excel где находится
  • Массовая замена формул excel
  • Мастер импорта текста excel 2010
  • Массовая замена текста в файлах word
  • Мастер импорта данных в excel