11

У меня есть несколько десятков файлов Excel, которые имеют один и тот же формат (т.е. 4 листа на файл Excel). Мне нужно объединить все файлы в один мастер-файл, который должен иметь только 2 из 4 листов. Соответствующие рабочие листы из каждого файла Excel названы точно так же, как и заголовки столбцов.

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

Я никогда не использовал VBA раньше, и мне интересно, где я мог бы начать эту задачу!

5 ответов5

7

Пожалуйста, ознакомьтесь с надстройкой мастера консолидации рабочих таблиц для Excel

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

Пожалуйста, смотрите эту ссылку для подробного описания режима (как объединить листы с одинаковым именем в один)

Надстройка является условно-бесплатной, но она имеет 15-дневную полнофункциональную пробную версию (кнопка «Загрузить» вверху страницы), так что вы можете бесплатно объединить тысячи ваших рабочих книг :)

4

Вот решение в Python.

import glob
import pandas as pd

path = "<path to files>"
file_identifier = "*.xlsx"

all_data = pd.DataFrame()
for f in glob.glob(path + "/*" + file_identifier):
    df = pd.read_excel(f)
    all_data = all_data.append(df,ignore_index=True)
4

Сегодня я натолкнулся на эту ссылку RDBMerge, Надстройка Excel Merge для Excel для Windows, которая, я думаю, послужит цели.Это бесплатный инструмент на основе макросов.

3

Так как вы хотели их на одном листе, я думаю, что выше не то, что вы искали.

Я использую Microsoft Access для объединения данных. Особенно, если разные листы имеют одинаковый идентификатор (номер детали / контактное лицо / т.д.).

Вы создаете "таблицу" для каждой объединяемой электронной таблицы. Вы создаете "запрос", который вытягивает нужные столбцы на один лист.

1
  1. Откройте все книги Excel в одном экземпляре Excel.
    • Возможно, вам придется нажать внутреннюю кнопку "Восстановить", чтобы увидеть отдельные рабочие книги.
  2. Выделите все листы, которые вы хотите переместить, нажав Ctrl+ клик на вкладках листа.
  3. Щелкните правой кнопкой мыши на одной из выбранных вкладок и выберите « Переместить» или "Копировать" ...
  4. В появившемся диалоговом окне выберите целевую рабочую книгу (вашу "основную" рабочую книгу), а затем выберите место для их вставки.
    • Опция (перейти в конец), скорее всего, то, что вы хотите, но вы всегда можете изменить их порядок позже.
    • Выберите « Создать копию», если вы не хотите, чтобы листы были удалены из первой рабочей книги.
  5. Нажмите ОК.

Выбранные рабочие листы будут перемещены или скопированы из исходной рабочей книги в вашу рабочую книгу "Мастер". Просто закройте исходную книгу и сделайте это снова со следующей, пока вы не соберете все нужные вам листы в одну большую книгу. Обязательно сохраните!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .