Как в нескольких файлах эксель поменять данные
В Excel вы можете использовать функцию «Найти и заменить», чтобы найти и заменить слово на нескольких листах или во всей книге, но если вы хотите найти и заменить слово в нескольких открытых книгах, встроенная функция Excel вам не поможет. . Здесь я представляю удобный инструмент надстройки Excel - Kutools для вас, чтобы быстро решить эту проблему.
Быстрый поиск и замена в нескольких открытых книгах
Если вы установили Kutools for Excel, вы можете использовать Навигация панель для быстрого поиска и замены слова в нескольких открытых книгах.
После бесплатная установка Kutools for Excel, сделайте следующее:
1. Откройте книги, которые вы хотите найти, и сразу заменить определенное слово.
2. Нажмите Kutools > Навигация чтобы включить панель навигации, затем щелкните Найти и заменить кнопка для перехода к Найти и заменить раздел. Смотрите скриншот:
3. Под Заменять вкладку, введите найденный текст и замените текст на Найти то, что текстовое поле и Заменить текстовые поля затем выберите Все книги из В раскрывающийся список. Смотрите скриншот:
Наконечник: Если вы не можете узнать В выпадающий список и Книги список, нажмите кнопку enpand, чтобы развернуть расширенный Найти и заменить параметры. См. Снимок экрана ниже:
5. Нажмите Заменить все. Затем тексты во всех открытых книгах заменяются.
Примечание: По умолчанию ярлыки для включения Kutools ' Найти и заменить диалог Win + Shift + Q, но если вы знакомы с ярлыком Ctrl + F, вы можете перейти к настройке, чтобы проверить Нажатие Ctrl + F, чтобы применить поиск и замену Kutools вариант, а затем при нажатии Ctrl + F, это Найти и заменить появляется диалоговое окно.
Работы С Нами 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 вы этот массив увидите прямо на листе:
Пугаться не стоит :) На самом деле наша формула работает и увидеть весь массив результатов всё равно можно, если выделить введённую функцию в строке формул и нажать клавишу F9 (только не забудьте потом нажать Esc , чтобы вернуться обратно к формуле):
Полученный массив результатов означает, что в исходном кривом названии компании (ГК Морозко ОАО) из всех значений в столбце Найти нашлось только второе (Морозко) , причём начиная с 4-го по счёту символа.
Теперь добавим к нашей формуле функцию ПРОСМОТР (LOOKUP) :
У этой функции три аргумента:
- Искомое значение - можно использовать любое достаточно большое число (главное, чтобы оно превышало длину любого текста в исходных данных)
- Просматриваемый_вектор - тот диапазон или массив, где мы ищем искомое значение. Здесь это введённая ранее функция НАЙТИ, возвращающая массив
- Вектор_результатов - диапазон, откуда мы хотим вернуть значение, если искомое значение найдено в соответствующей ячейке. Здесь это правильные названия из столбца Заменить нашей таблицы-справочника.
Главная и неочевидная фишка тут в том, что функция ПРОСМОТР при отсутствии точного совпадения всегда ищет ближайшее наименьшее (предыдущее) значение. Поэтому, указав в качестве искомого значения любое здоровенное число (например 9999), мы заставим ПРОСМОТР находить ячейку с ближайшим наименьшим числом (4) в массиве и выдавать соответствующее ей значение из вектора результатов, т.е. правильное название компании из столбца Заменить.
Второй нюанс заключается в том, что, технически, наша формула является формулой массива, т.к. функция НАЙТИ возвращает в качестве результатов не одно, а массив из трёх значений. Но поскольку функция ПРОСМОТР поддерживает массивы "из коробки", то нам не придётся вводить эту формулу как классическую формулу массива - с помощью сочетания клавиш Ctrl + Shift + Enter . Достаточно будет простого Enter .
Вот и всё. Надеюсь вы ухватили логику.
Осталось перенести готовую формулу первую ячейку B2 столбца Исправлено - и наша задача решена!
Само-собой, с обычными (не умными) таблицами эта формула тоже замечательно работает (только не забудьте про клавишу F4 и закрепление соответствующих ссылок):
Случай 2. Массовая частичная замена
Этот случай чуть похитрее. Снова имеем две "умных" таблицы:
Принципиальное отличие тут в том, что нужно заменять только фрагмент исходных данных - например, в первом адресе неправильный "С-Петербург" на правильный "Санкт-Петербург" , оставив остальную часть адреса (индекс, улицу, дом) в исходном виде.
Готовая формула будет выглядеть так (для удобства восприятия я разделил её на насколько строк с помощью Alt + Enter ):
Основную работу здесь выполняет стандартная Excel'евская текстовая функция ПОДСТАВИТЬ (SUBSTITUTE) , у которой 3 аргумента:
- Исходный текст - первый кривой адрес из столбца Адрес
- Что ищем - тут мы используем трюк с функцией ПРОСМОТР(LOOKUP) из предыдущего способа, чтобы вытащить значение из столбца Найти, которое входит как фрагмент в кривой адрес.
- На что заменить - аналогичным образом находим соответствующее ему правильное значение из столбца Заменить.
Вводить эту формулу с Ctrl + Shift + Enter здесь тоже не нужно, хотя она и является, по-сути, формулой массива.
-
Функция ПОДСТАВИТЬ является регистрочувствительной, поэтому "Спб" в предпоследней строке так и не нашлось в таблице замен. Для решения этой проблемы можно либо использовать функцию ЗАМЕНИТЬ (REPLACE) , либо предварительно привести обе таблицы к одному регистру.
Не идеально и, местами, громоздко, но гораздо лучше, чем однообразная замена вручную, правда? :)
В следующей статье разберёмся, как реализовать подобную массовую подстановку с помощью макросов и Power Query.
Читайте также: