Как в нескольких файлах эксель поменять данные

Обновлено: 07.07.2024

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

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

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

После бесплатная установка Kutools for Excel, сделайте следующее:

1. Откройте книги, которые вы хотите найти, и сразу заменить определенное слово.

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

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

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

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

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

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

5. Нажмите Заменить все. Затем тексты во всех открытых книгах заменяются.

Примечание: По умолчанию ярлыки для включения Kutools ' Найти и заменить диалог Win + Shift + Q, но если вы знакомы с ярлыком Ctrl + F, вы можете перейти к настройке, чтобы проверить Нажатие Ctrl + F, чтобы применить поиск и замену Kutools вариант, а затем при нажатии Ctrl + F, это Найти и заменить появляется диалоговое окно.

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

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

введите сюда описание изображения
введите сюда описание изображения

Что требуется: автоматически работать со значениями в таблице.

1)Количество строк неизвестно, т.е конец диапазона работы - конец таблицы. Нужно, по примеру, от B2 до B(последняя_строка) поставить значение 0,3 (0,3 = const, не меняется). Можно ориентироваться по А, т.е. смотрим координаты последней записи А, и столько же строк будет иметь столбец B.

2) C2:D(последняя_строка) удаляем значения, оставляем пустым.

введите сюда описание изображения

В итоге должно получится так:

(x x x x - конец файла, т.е на деле этой строки нет, я просто обозначил так конец файла. )

Скрин 3: Отсутствие значений - конец файла. Т.е на практике А/B/C/D:11 - нет, остается пустым и никак не затрагивается.

Как это должно выглядеть правильно?

7,476 3 3 золотых знака 16 16 серебряных знаков 23 23 бронзовых знака друга - vba обрабатывает 20 000 файлов со строками и их заменой или просмотром за 5 мин. Поставь грамотно задачу - и тебе помогут. В твоём вопросе - полнейшая белиберда . Ногу заменить на ручку в строке N и перенести вёдра в пункт A ПОМОГИТЕ . сам то понял что написал . Как ее поставить грамотно? 1) Начало T2 и до Tx, x - последняя строка документа. Всему этому ставим значение 0,3. 2) Начало - U2 и конец ARx, т.е получается выделяется x строк, и 24 столбца. Все имеющиеся значения удаляем, оставляем пустым.

Пакетная обработка файлов. Макрос разместить в общем модуле любой книги.

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

Диапазоны задаются в строках

Значение для внесения в диапазон столбца В задано константой. Можно без нее - прописать значением в строке

Макрос

Определение последней строки

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

Найти нижнюю границу по размеру пользовательского диапазона (принимаем, что в строке 1 находится "шапка" таблицы):

Недостаток этого варианта - в диапазон попадут все форматированные строки, в том числе и без данных (такое часто встречается при неумелом копировании: заполнено 10 строк, а диапазон - на миллион).

Диапазон заполненных строк относительно ячейки:

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

Имеется большое количество документов Word или Excel и в каждом документе нужно изменить несколько фраз. В каждом документе через замену (Найти и заменить ) это слишком долго.

    Вариант с использованием макроса

a) для Microsoft Excel:
Скопировать макрос в папку с файлами, запустить макрос, задать условия замены, заключая их в кавычки. выбрать любой файл из папки.


б) для Microsoft Word:
Создать новый документ Word , открыть редактор Microsoft VBA , добавить новый модуль, скопировать текст процедуры ниже. О том как создать макрос более подробно написано здесь. При выполнении макроса нужно выбрать файлы, данные в которых подлежат замене:


Что изменить и на что изменить прописывается в теле макроса:
что_заменить = "123"
чем_заменить = "1234"

Для документов Word подойдет @Text Replacer - бecплaтнaя пpoгpaммa для быcтpoгo пoиcкa и зaмeны тeкcтa в фaйлax из выбpaннoй пaпки и влoжeнныx пoдпaпoк. Работает с дoкумeнтaми тeкcтoвoгo peдaктopa Word: *.doc, *.docx, *.rtf , фaйлaми тeкcтoвoгo фopмaтa: *.txt, *.ini, *.html, *.php и дp., paбoтa c кoтopыми вoзмoжнa чepeз cтaндapтный Блoкнoт Windows . Вce фaйлы дpугиx типoв oбpaбaтывaютcя пpoгpaммoй кaк тeкcтoвыe.


Пpoгpaммoй пoддepживaeтcя пoиcк и зaмeнa мнoгocтpoчныx фpaгмeнтoв тeкcтa c учeтoм peгиcтpa и игнopиpуeмыx cимвoлoв - тaкиx кaк пpoбeлы и пepeвoды cтpoки (windows / *nix) . Программа бесплатная, скачать можно по ссылке с официального сайта программы

Не пробуйте @Text Replacer для документов Excel – программа их портит!

Для документов Excel попробуйте FireBall.exe – небольшую программу, не требующую установки. Файлы Excel необходимо скопировать в папку с FireBall.exe .


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

А теперь представьте, что к вам такие кривые данные попадают регулярно, т.е. это не единичная история из серии "исправил вручную, забыл", а проблема на регулярной основе и в большом количестве ячеек.

Что же делать? Не заменять же вручную 100500 раз кривой текст на правильный через окошко "Найти и заменить" или нажимая Ctrl + H ?

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

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

К сожалению, при очевидной распространенности подобной задачи, в Microsoft Excel не существует простых встроенных способов для её решения. Для начала, давайте разберёмся, как это делать формулами, без привлечения "тяжелой артиллерии" в виде макросов на VBA или Power Query.

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

Начнём с относительно простого случая - ситуации, когда нужно заменить старый кривой текст на новый полностью.

Предположим, что у нас есть две таблицы:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также: