Newcomposers.ru

IT Мир
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как объединить вкладки в excel

Консолидация (объединение) данных из нескольких таблиц в одну

Способ 1. С помощью формул

Имеем несколько однотипных таблиц на разных листах одной книги. Например, вот такие:

Необходимо объединить их все в одну общую таблицу, просуммировав совпадающие значения по кварталам и наименованиям.

Самый простой способ решения задачи «в лоб» — ввести в ячейку чистого листа формулу вида

=’2001 год’!B3+’2002 год’!B3+’2003 год’!B3

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

Если листов очень много, то проще будет разложить их все подряд и использовать немного другую формулу:

=СУММ(‘2001 год:2003 год’!B3)

Фактически — это суммирование всех ячеек B3 на листах с 2001 по 2003, т.е. количество листов, по сути, может быть любым. Также в будущем возможно поместить между стартовым и финальным листами дополнительные листы с данными, которые также станут автоматически учитываться при суммировании.

Способ 2. Если таблицы неодинаковые или в разных файлах

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

Рассмотрим следующий пример. Имеем три разных файла (Иван.xlsx, Рита.xlsx и Федор.xlsx) с тремя таблицами:

Хорошо заметно, что таблицы не одинаковы — у них различные размеры и смысловая начинка. Тем не менее их можно собрать в единый отчет меньше, чем за минуту. Единственным условием успешного объединения (консолидации) таблиц в подобном случае является совпадение заголовков столбцов и строк. Именно по первой строке и левому столбцу каждой таблицы Excel будет искать совпадения и суммировать наши данные.

Для того, чтобы выполнить такую консолидацию:

  1. Заранее откройте исходные файлы
  2. Создайте новую пустую книгу (Ctrl + N)
  3. Установите в нее активную ячейку и выберите на вкладке (в меню) Данные — Консолидация(Data — Consolidate) . Откроется соответствующее окно:

  • Установите курсор в строку Ссылка(Reference) и, переключившись в файл Иван.xlsx, выделите таблицу с данными (вместе с шапкой). Затем нажмите кнопку Добавить(Add) в окне консолидации, чтобы добавить выделенный диапазон в список объединяемых диапазонов.
  • Повторите эти же действия для файлов Риты и Федора. В итоге в списке должны оказаться все три диапазона:

    Обратите внимание, что в данном случае Excel запоминает, фактически, положение файла на диске, прописывая для каждого из них полный путь (диск-папка-файл-лист-адреса ячеек). Чтобы суммирование происходило с учетом заголовков столбцов и строк необходимо включить оба флажка Использовать в качестве имен (Use labels) . Флаг Создавать связи с исходными данными (Create links to source data) позволит в будущем (при изменении данных в исходных файлах) производить пересчет консолидированного отчета автоматически.

    После нажатия на ОК видим результат нашей работы:

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

    Объединение данных с нескольких листов

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

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

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

    Консолидация по расположению

    Для консолидации по расположению диапазон данных на каждом из исходных листов должен иметь формат списка без пустых строк и столбцов.

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

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

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

    На вкладке Данные в группе Работа с данными нажмите кнопку Консолидация.

    Выберите в раскрывающемся списке функцию, которую требуется использовать для консолидации данных.

    Выделите на каждом листе нужные данные.

    Путь к файлу вводится в поле Все ссылки.

    После добавления данных из всех исходных листов и книг нажмите кнопку ОК.

    Консолидация по категории

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

    Откройте каждый из исходных листов.

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

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

    На вкладке Данные в группе Работа с данными нажмите кнопку Консолидация.

    Выберите в раскрывающемся списке функцию, которую требуется использовать для консолидации данных.

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

    Выделите на каждом листе нужные данные. Не забудьте включить в них ранее выбранные данные из верхней строки или левого столбца.

    Путь к файлу вводится в поле Все ссылки.

    После добавления данных из всех исходных листов и книг нажмите кнопку ОК.

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

    Консолидация по расположению

    Для консолидации по расположению диапазон данных на каждом из исходных листов должен иметь формат списка без пустых строк и столбцов.

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

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

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

    На вкладке Данные в разделе Сервис нажмите кнопку Консолидация.

    Выберите в раскрывающемся списке функцию, которую требуется использовать для консолидации данных.

    Выделите на каждом листе нужные данные и нажмите кнопку Добавить.

    Путь к файлу вводится в поле Все ссылки.

    После добавления данных из всех исходных листов и книг нажмите кнопку ОК.

    Консолидация по категории

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

    Откройте каждый из исходных листов.

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

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

    На вкладке Данные в разделе Сервис нажмите кнопку Консолидация.

    Выберите в раскрывающемся списке функцию, которую требуется использовать для консолидации данных.

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

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

    Путь к файлу вводится в поле Все ссылки.

    После добавления данных из всех исходных листов и книг нажмите кнопку ОК.

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

    Объединить листы: собрать данные с нескольких листов на один сводный лист в секунды

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

    С надстройкой «Объединить листы», вы сможете собрать данные на один сводный лист в считанные секунды:

    • Собрать данные листов из разных книг на одном листе
    • Собрать данные листов с одинаковым именем и объединить по имени вкладки
    • Объединить данные листов с идентичной структурой под одним заголовком
    • Сохранить форматирование в сводном листе результата

    Добавить «Объединить листы» в Excel 2019, 2016, 2013, 2010

    Подходит для: Microsoft Excel 2019 – 2010, desktop Office 365 (32-бит и 64-бит).

    Как работать с надстройкой:

    Как объединить данные из нескольких листов в один в один за 3 шага

    С надстройкой «Объединить листы» вы можете собрать и объединить данные нескольких листов — и из разных книг — в один главный лист всего за 3 шага:

    1. Нажмите кнопку «Объединить листы» на панели XLTools > Выберите тип операции:

    2. Отметьте листы, которые нудно объединить. Дерево данных отображает все листы во всех открытых книгах.

    3. Нажмите кнопку «Объединить» > Готово! Все данные скопированы на один главный сводный лист.

    Как объединить данные нескольких листов на одном сводном листе

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

    1. Нажмите кнопку «Объединить листы» > Выберите «Объединить данные нескольких листов на одном листе».
    2. Отметьте флажком «Таблицы с заголовками», если это так.
      Совет: так, данные будут объединены под единым заголовком. Это удобно, если структура листов, которые вы объединяете, единообразна, напр., если отчёты созданы по одному шаблону. Если заголовки не совпадают, каждый диапазон данных будет добавлен со своим заголовком.
    3. Выберите листы для объединения, установив соответствующие флажки в дереве данных.
    4. Нажмите кнопку «Объединить» > Готово, все данные из выбранных листов собраны на одном главном листе в новой книге.

    Внимание: не забудьте сохранить эту сводную книгу на свой компьютер.

    Как объединить данные из листов c одинаковым именем на одном сводном листе

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

    1. Нажмите кнопку «Объединить листы» > Выберите «Объединить данные листов с одинаковым именем на одном листе».
    2. Отметьте флажком «Таблицы с заголовками», если это так.
      Совет: так, данные будут объединены под единым заголовком. Это удобно, если структура листов, которые вы объединяете, единообразна, напр., если отчёты созданы по одному шаблону. Если заголовки не совпадают, каждый диапазон данных будет добавлен со своим заголовком.
    3. Выберите листы для объединения, установив соответствующие флажки в дереве данных.
      Совет: вместо поочерёдного объединения листов с одинаковым называнием по группам (одна именная группа за другой), вы можете выбрать их все сразу. Надстройка автоматически соберет данные по одинаковым названиям вкладок и вынесет их на соответствующие отдельные листы сводной книги.
    4. Нажмите кнопку «Объединить» > Готово, все данные выбранных листов с одинаковым именем собраны в новой сводной книге.

    Внимание: не забудьте сохранить эту сводную книгу на свой компьютер.

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

    Объединение данных по сути означает извлечение и копирование данных из нескольких исходных листов на новый лист.

    • Данные копируются полностью — весь диапазон до последней использованной ячейки на исходном листе.
    • Скопированные диапазоны добавляются последовательно, один диапазон под последней строкой предыдущего диапазона.
    • Надстройка XLTools «Объединить листы» сохраняет форматирование ячеек и таблиц, ссылки на ячейки, функции и формулы, объединённые ячейки, т.д.
    • Исходные данные не подвергаются изменениям.

    Как объединить несколько листов в одну книгу

    Вы можете объединить несколько листов в одну книгу с помощью надстройки XLTools Органайзер книг. Она помогает копировать и управлять множеством листов одновременно.

    Появились вопросы или предложения? Оставьте комментарий ниже.

    14 Комментариев к Объединить листы: собрать данные с нескольких листов на один сводный лист в секунды

    Добрый день. Подскажите как установить надстройку и в самом Excel после установки ее подключить? Не видно ни где надстройку в Ексель устанавливать, ни путь к файлу….

    С уважением и разочарованием,
    Александр

    Александр,
    Инструмент «Объединить листы» — это лишь один инструмент из всей надстройки XLTools. Скачать ее можно здесь. Есть подробная инструкция по установке, а если что-то пойдет не так, мы описали решения частых проблем. И мы всегда поможем по email.

    Что посоветуете делать , если инфа в листах обновляется ( добавляются строки)- как сделать чтобы сводный лист обновлялся автоматом?

    Михаил, спасибо за вопрос. Автоматического обновления не предусмотрено. Хорошая идея для доработки, обсудим с коллегами.

    Добрый день!
    У меня такая ситуация:
    Я работаю в транспортной компании у нас есть более 500 едениц техники ежемесячно заполняется данные с пробегом хочу обяденит все файлы в один
    Вообщем мне нужно узнать пробег с момента ввода в эксплуатацию считывающие одометры могли меняться неоднакратно…
    Прошу помочь если это возможно
    Спосибо

    Онербек, добрый день!
    Думаю, да, надстройка поможет объединить данные в один файл. Конечно, многое зависит от исходных данных. Отправили вам email.

    Нужно было объединить таким образом несколько больших файлов из регионов. Каждый во что горазд — был единый образец — но всем нужно обязательно что-то от себя добавить, например у нескольких файлов пустые столбцы уходили до XYZ. Данная функция объединяла листы целиком — вместе с пустыми ячейками — в итоге комп начинал громко пыхтеть и тужиться а потом надолго зависал. Вручныю скопировать вставить быстрее бы получилось (

    Руслан, добрый день! Спасибо, что написали. Надстройка сейчас хорошо объединяет однотипные листы. Но идеально подготовленные данные встречаются не часто, особенно, если участвует много людей. Так что мы думаем, как улучшить надстройку. Для вашего случая, думаю, нужно предварительное удаление пустых строк-столбцов. Мы поставим это в план на следующие релизы. Спасибо!

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

    Карашаш, добрый день!
    Надстройка «Объединение листов» сейчас больше рассчитана на объединение отнотипных по структуре листов. В Вашем случае лучше подойдет надстройка «SQL запросы». Она поможет объединить таблицы по ключевому полю.

    При объединении нескольких листов в один удаляются ли дубликаты данных (при их наличии)?

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

    Спасибо! Отличная надстройка. Сколько стоит после пробного периода?

    Евгения, спасибо! Надстройка «Объединить листы» входит в любой из трех пакетов лицензий — Базовая, PRO и GURU. Выбирайте, какой пакет вам больше подойдет.

    Как собрать данные с нескольких листов или книг?

    Очень часто бывает необходимо собрать данные с нескольких листов одной книги или даже с листов нескольких книг. Например, каждую неделю мы получаем некие отчеты от отделов, которые необходимо собрать в одну общую таблицу для построения сводной таблицы. Или это могут быть некие книги прайсов по товарам от разных поставщиком, который опять же надо сначала объединить, а потом уже анализировать. Вручную делать это довольно муторно. И то, муторно это только для первых 20-ти листов/файлов, потом становится просто тошно. Поэтому решил поделиться решением, которое поможет собрать данные со всех листов книги, со всех листов всех указанных книг или только с указанных листов:

    ‘————————————————————————————— ‘ Module : mConsolidated ‘ DateTime : 02.02.2010 17:06 ‘ Author : The_Prist(Щербаков Дмитрий) ‘ Purpose : http://www.excel-vba.ru/chto-umeet-excel/kak-sobrat-dannye-s-neskolkix-listov-ili-knig/ ‘ Процедура сбора данных с нескольки листов/книг ‘————————————————————————————— Option Explicit Sub Consolidated_Range_of_Books_and_Sheets() Dim iBeginRange As Range, rCopy As Range, lCalc As Long, lCol As Long Dim oAwb As String, sCopyAddress As String, sSheetName As String Dim lLastrow As Long, lLastRowMyBook As Long, li As Long, iLastColumn As Integer Dim wsSh As Worksheet, wsDataSheet As Worksheet, bPolyBooks As Boolean, avFiles Dim wbAct As Workbook Dim bPasteValues As Boolean On Error Resume Next ‘Выбираем диапазон выборки с книг Set iBeginRange = Application.InputBox(«Выберите диапазон сбора данных.» & vbCrLf & _ «1. При выборе только одной ячейки данные будут собраны со всех листов начиная с этой ячейки. » & _ vbCrLf & «2. При выделении нескольких ячеек данные будут собраны только с указанного диапазона всех листов.», Type:=8) ‘для указания диапазона без диалогового окна: ‘Set iBeginRange = Range(«A1:A10») ‘диапазон указывается нужный ‘Если диапазон не выбран — завершаем процедуру If iBeginRange Is Nothing Then Exit Sub ‘Указываем имя листа ‘Допустимо указывать в имени листа символы подставки ? и *. ‘Если указать только * то данные будут собираться со всех листов sSheetName = InputBox(«Введите имя листа, с которого собирать данные(если не указан, то данные собираются со всех листов)», «Параметр») ‘Если имя листа не указано — данные будут собраны со вех листов If sSheetName = «» Then sSheetName = «*» On Error GoTo 0 ‘Запрос — вставлять на результирующий лист все данные ‘или только значения ячеек (без формул и форматов) bPasteValues = (MsgBox(«Вставлять только значения?», vbQuestion + vbYesNo, «Excel-VBA») = vbYes) ‘Запрос сбора данных с книг(если Нет — то сбор идет с активной книги) If MsgBox(«Собрать данные с нескольких книг?», vbInformation + vbYesNo, «Excel-VBA») = vbYes Then avFiles = Application.GetOpenFilename(«Excel files(*.xls*),*.xls*», , «Выбор файлов», , True) If VarType(avFiles) = vbBoolean Then Exit Sub bPolyBooks = True lCol = 1 Else avFiles = Array(ThisWorkbook.FullName) End If ‘отключаем обновление экрана, автопересчет формул и отслеживание событий ‘для скорости выполнения кода и для избежания ошибок, если в книгах есть иные коды With Application lCalc = .Calculation .ScreenUpdating = False: .EnableEvents = False: .Calculation = xlManual End With ‘создаем новый лист в книге для сбора Set wsDataSheet = ActiveWorkbook.Sheets.Add(After:=Sheets(Sheets.Count)) ‘если нужно сделать сбор данных на новый лист книги с кодом ‘Set wsDataSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) ‘цикл по книгам For li = LBound(avFiles) To UBound(avFiles) If bPolyBooks Then Set wbAct = Workbooks.Open(Filename:=avFiles(li)) Else Set wbAct = ThisWorkbook End If oAwb = wbAct.Name ‘цикл по листам For Each wsSh In wbAct.Worksheets If wsSh.Name Like sSheetName Then ‘Если имя листа совпадает с именем листа, в который собираем данные ‘и сбор идет только с активной книги — то переходим к следующему листу If wsSh.Name = wsDataSheet.Name And bPolyBooks = False Then GoTo NEXT_ With wsSh Select Case iBeginRange.Count Case 1 ‘собираем данные начиная с указанной ячейки и до конца данных lLastrow = .Cells(1, 1).SpecialCells(xlLastCell).Row iLastColumn = .Cells.SpecialCells(xlLastCell).Column sCopyAddress = .Range(.Cells(iBeginRange.Row, iBeginRange.Column), .Cells(lLastrow, iLastColumn)).Address Case Else ‘собираем данные с фиксированного диапазона sCopyAddress = iBeginRange.Address End Select lLastRowMyBook = wsDataSheet.Cells.SpecialCells(xlLastCell).Row + 1 ‘определяем для копирования диапазон только заполненных данных на листе Set rCopy = Intersect(.Range(sCopyAddress).Parent.UsedRange, .Range(sCopyAddress)) ‘вставляем имя книги, с которой собраны данные If lCol Then wsDataSheet.Cells(lLastRowMyBook, 1).Resize(rCopy.Rows.Count).Value = oAwb ‘если вставляем только значения и форматы ячеек If bPasteValues Then rCopy.Copy wsDataSheet.Cells(lLastRowMyBook, 1).Offset(, lCol).PasteSpecial xlPasteValues wsDataSheet.Cells(lLastRowMyBook, 1).Offset(, lCol).PasteSpecial xlPasteFormats Else ‘если вставляем все данные ячеек(значения, формулы, форматы и т.д.) rCopy.Copy wsDataSheet.Cells(lLastRowMyBook, 1).Offset(, lCol) End If End With End If NEXT_: Next wsSh If bPolyBooks Then wbAct.Close False Next li With Application .ScreenUpdating = True: .EnableEvents = True: .Calculation = lCalc End With End Sub

    Приведенный выше код необходимо вставить в стандартный модуль(Что такое модуль? Какие бывают модули?). Выполнить его можно будет из этой книги нажатием клавиш Alt+F8. В появившемся окне выбрать Consolidated_Range_of_Books_and_Sheets и нажать Выполнить. Так же можно создать на листе кнопку и назначить ей данный макрос. Так же, если впервые работаете с макросами настоятельно рекомендую прочитать статью: Что такое макрос и где его искать?, а так же Почему не работает макрос?

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

    • Диапазон сбора данных — Если в окне выбора диапазона выбрать только одну ячейку, то данные будут собраны со всех листов книги/книг, начиная с этой ячейки и до последней ячейки листа.
      Если выбрать несколько ячеек, данные будут собраны только с указанного диапазона всех листов книги/книг. Допускается указать несвязанный(рваный) диапазон(например, только три столбца: A:A , D:D , F:F ). Сделать это можно, выделив нужный диапазон с зажатой клавишей Ctrl
    • Имя листа — Необязателен для указания. Если не указан — данные будут собраны со всех листов. Указать можно как точное соответствие имени листа, так и с частичным соответствием. Например, если в книгах для сбора данных необходимо собрать данные только с листа «Январь», то следует так и указать — «Январь». Если требуется собрать данные только с листов, начинающихся с «Продажи»(«Продажи ЮГ», «Продажи НН», «Продажи Запад» и т.д.), то следует применить символ подстановки звездочку — «Продажи*». Если надо собрать с листов, содержащих в имени «продажи»(«Итоговые продажи ЮГ», «Продажи НН», «Сезонные продажи» и т.д.), то указываем «*продажи*». Если надо собрать только с листа «Сезонные продажи», но известно, что вместо пробела может быть нижнее подчеркивание или тире(«Сезонные продажи», «Сезонные_продажи», «Сезонные-продажи») или иной символ, то можно также применить звездочку — «Сезонные*продажи». Но если среди листов могут встречаться и такие как «Сезонные разовые продажи», «Сезонные корпоративные продажи» и т.п., но информацию с них собирать не надо, то можно применить вопросительный знак — «Сезонные?продажи». Вопросительный знак заменяет любой один символ, звездочка — любое количество любых символов.
    • Далее появится запрос: Вставлять только значения? — если выбрать Да, то в результирующий лист с листов будут вставлены исключительно значения ячеек (без формул), но при этом сохранятся их форматы(формат чисел, цвет заливки, цвет шрифта, границы и т.п.). Может пригодится, если на листах для сбора записаны формулы, ссылающиеся на другие листы, книги, диапазоны. При обычном копировании может случиться так, что формула выдаст ошибку, т.к. в книге для вставки нет таких листов и диапазонов или данные расположены иначе. Если выбрать Нет, то все ячейки с листов на результирующий будут копироваться в точности как в исходных листах.
    • И последний запрос: Собрать данные с нескольких книг? — если выбрать Да, то появится диалоговое окно выбора файлов. Надо указать все файлы, данные с которых необходимо собрать. Если выбрать Нет, то данные будут собираться с листов только активной книги.

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

    Если после сбора данных обнаружили, что после каждого файла/листа много пустых строк, то следует найти в коде строку:

    lLastrow = .Cells(1, 1).SpecialCells(xlLastCell).Row

    Как объединить вкладки в excel

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

    Инструкция

    Устанавливаем себе надстройку ЁXCEL . Читаем справку.

    Приступаем к решению. Переходим во вкладку ЁXCEL главного меню, нажимаем кнопку «Таблицы», в выпавшем списке выбираем команду «Объединить таблицы»:

    В открывшемся диалоговом окне выделяем листы с таблицами, которые необходимо объединить и нажимаем «ОК»:

    Программа сформирует запрос — объединит таблицы и выведет информационное сообщение:

    Переходим на итоговый лист (тот где хотим вывести общую таблицу), устанавливаем курсор в ячейку «A1«. Переходим в главном меню во вкладку «Данные» в разделе «Получение внешних данных» нажимаем кнопку «Существующие подключения»:

    В открывшемся диалоговом окне выбираем «Подключения в этой книге» — «Запрос из Excel Files» и нажимаем «Открыть»:

    В открывшемся диалоговом окне устанавливаем переключатели в положения «Таблица» и «Имеющийся лист», нажимаем «ОК»:

    В активном листе будет создана таблица, которая будет объединять таблицы, расположенные на указанных нами листах:

    Теперь все таблицы связаны. Добавьте новые строчки в любую из объединенных таблиц. Перейдите во вкладку «Данные» и нажмите кнопку «Обновить все»:

    В итоговой таблице появятся строчки, добавленные в выбранный вами лист.

    Чтобы обновление итоговой таблицы происходило автоматически вставьте в модуль каждого листа (кроме Итогового) следующий код (Как вставлять макросы?):

    Видео-пример

    Важно:

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

    Чтобы запрос работал не зависимо от того в какой папке лежит файл вставьте в модуль «ЭтаКнига» следующий код:

    Данный макрос при открытии книги будет определять текущий путь к файлу и менять путь к файлу в запросе.

    Чтобы оценить всю прелесть — выньте файл из архива и при загрузке файла включите макросы.

    Возможные ошибки при использовании этого метода:

    • В таблицах одинаковое количество столбцов, но при попытке использовать запрос получаем сообщение: «В таблицах или запросах, выбранных в запросе на объединение, не совпадает число столбцов.» Причина: в одном или нескольких листах с таблицами есть пустые столбцы (в них раньше были данные) и MS Excel считает их столбцами таблиц. Решение: Выделить и удалить все пустые столбцы на листах с таблицами.
    • Все столбцы удалили, но ошибка осталась. Причина: файл сохранен на сетевом диске или открыт из почтовой программы. Решение: сохраните файл у себя на локальном компьютере, выполните запрос, вставьте в него макрос меняющий путь в запросе и выложите обратно в сеть (если нужно).
    • В полученном запросе в некоторых ячейках пропадают данные. Причина: в ваших таблицах встречаются столбцы, которые одновременно содержатся и числовые и текстовые значения. MS Excel считает, что эти столбцы должны содержать только числа и не выводит текст. Решение:преобразуйте все числовые значения в этих столбцах во всех таблицах в текстовые. Обновите запрос — текстовые данные появятся.
    Читать еще:  Как в excel сортировать по значению
  • Ссылка на основную публикацию
    Adblock
    detector