Сводная таблица из двух таблиц в Excel: 3 проверенных способа с примерами

Работа с большими массивами данных в Microsoft Excel часто требует консолидации информации из нескольких источников. Представьте: у вас есть данные о продажах в одном файле, а сведения о клиентах — в другом. Или отчёт за первый квартал хранится на одном листе, а за второй — на другом. Сводная таблица из двух таблиц позволяет объединить эти разрозненные данные в единый аналитический инструмент без ручного копирования строк.

Многие пользователи ошибочно считают, что для этого нужны макросы или Power Query. На самом деле, даже в Excel 2010 есть встроенные инструменты для решения этой задачи — главное знать нюансы настройки связей между источниками. В этой статье мы разберём три метода создания сводных таблиц из нескольких диапазонов: от самого простого (для новичков) до продвинутого (для работы с миллионами строк). А ещё вы узнаете, почему иногда Excel "не видит" вторую таблицу и как это исправить.

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

⚠️ Внимание: Если в таблицах нет общего столбца (например, "ID клиента" или "Дата"), сводная таблица не сможет корректно объединить данные. В этом случае сначала создайте связующее поле с помощью функции ВПР или Power Query.
📊 Как часто вы работаете с несколькими таблицами в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

1. Метод 1: Сводная таблица на основе нескольких диапазонов консолидации

Это самый универсальный способ, который работает во всех версиях Excel (начиная с 2007 года). Он подходит для таблиц, расположенных:

  • 📄 На разных листах одного файла
  • 📁 В разных книгах Excel
  • 🔄 В одном листе, но в несмежных диапазонах

Алгоритм действий:

  1. Откройте книгу с таблицами. Убедитесь, что в каждой таблице есть заголовки столбцов (они должны совпадать или хотя бы частично пересекаться).
  2. Перейдите на новый лист, где будет размещена сводная таблица.
  3. Нажмите Вставка → Сводная таблицаExcel 2016+ кнопка находится на вкладке Анализ).
  4. В открывшемся окне выберите Несколько диапазонов консолидации и нажмите Далее.
  5. Отметьте пункт Создать одно поле страницы (это позволит фильтровать данные по источникам).
  6. Добавьте диапазоны ваших таблиц, нажав кнопку Добавить. Для каждой таблицы укажите диапазон включая заголовки (например, Лист1!$A$1:$D$100).
  7. Нажмите Готово — Excel автоматически создаст сводную таблицу с полем Строка, Столбец и Значения.

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

Убедитесь, что заголовки столбцов идентичны или хотя бы содержат общие ключевые слова

Проверьте отсутствие пустых строк/столбцов внутри диапазонов

Преобразуйте диапазоны в "умные таблицы" (Ctrl+T) для автоматического обновления

Удалите объединённые ячейки (они могут нарушить структуру)-->

2. Метод 2: Связанные таблицы через отношения (Excel 2013+)

Если ваши таблицы имеют общий уникальный идентификатор (например, номер заказа, ID клиента, артикул товара), оптимально использовать модель данных Excel. Этот метод позволяет:

  • 🔗 Создавать связи "один-ко-многим" (например, один клиент — много заказов)
  • 📊 Строить сводные таблицы с данными из нескольких источников
  • 🔄 Автоматически обновлять данные при изменении исходных таблиц

Пошаговая инструкция:

  1. Преобразуйте каждую таблицу в "умную таблицу" (Ctrl+T или Главная → Форматировать как таблицу).
  2. Перейдите на вкладку Данные → СвязиExcel 2016+ кнопка называется Управление связями).
  3. Нажмите Создать связь и выберите первую таблицу в выпадающем списке.
  4. В поле Столбец укажите общий идентификатор (например, "ID_клиента").
  5. Выберите вторую таблицу и укажите соответствующий столбец. Тип связи оставьте Один-ко-многим (это наиболее распространённый вариант).
  6. После создания связи перейдите на новый лист и создайте сводную таблицу (Вставка → Сводная таблица).
  7. В правой панели Поля сводной таблицы появится новая категория ВСЕ — здесь будут доступны поля из обеих таблиц.

Пример структуры связей:

Таблица 1: КлиентыТаблица 2: ЗаказыТип связи
ID_клиента (ключ)ID_клиента (внешний ключ)Один-ко-многим
ИмяДата заказа
ГородСумма
ТелефонСтатус
⚠️ Внимание: Если при создании связи Excel выдаёт ошибку "Невозможно создать связь из-за несовпадения типов данных", проверьте формат столбцов с идентификаторами. Оба столбца должны быть одного типа (например, Текстовый или Числовой). Используйте функцию ТЕКСТ или ЗНАЧЕН для приведения к единому формату.

3. Метод 3: Power Query для сложных объединений (Excel 2016+)

Power Query (или Get & Transform в новых версиях) — это самый мощный инструмент для работы с несколькими таблицами. Он позволяет:

  • 🔄 Объединять таблицы по нескольким ключам
  • 🧹 Очищать данные перед консолидацией (удалять дубли, исправлять ошибки)
  • 📈 Создавать пользовательские столбцы с формулами
  • 🔄 Автоматизировать обновление данных из внешних источников (CSV, SQL, веб)

Рассмотрим процесс на примере объединения таблиц с продажами и остатками товаров:

  1. Перейдите на вкладку Данные → Получить данные → Из других источников → Пустая запрос.
  2. В редакторе Power Query нажмите Домашняя → Объединить запросы → Объединить.
  3. В первом выпадающем списке выберите первую таблицу (например, "Продажи").
  4. Во втором списке выберите вторую таблицу ("Остатки").
  5. Укажите столбцы для объединения (например, "Артикул" в обеих таблицах).
  6. Выберите тип объединения:
    • Внутреннее — только совпадающие записи
    • Левое внешнее — все записи из первой таблицы + совпадающие из второй
    • Правое внешнее — все записи из второй таблицы + совпадающие из первой
  • Нажмите OK — появится новая таблица с объединёнными данными.
  • При необходимости отредактируйте столбцы (удалите лишние, переименуйте) и нажмите Закрыть и загрузить.
  • Теперь на основе загруженных данных можно создать сводную таблицу.
  • Power Query сохраняет все шаги преобразования, поэтому при обновлении исходных данных достаточно нажать Данные → Обновить все, и объединённая таблица пересчитается автоматически.

    Как объединить более двух таблиц в Power Query?

    1. Сначала объедините первые две таблицы (как описано выше).

    2. Сохраните результат как новый запрос.

    3. Повторите операцию объединения, выбрав в качестве первой таблицы сохранённый запрос, а в качестве второй — следующую таблицу.

    4. Продолжайте, пока не добавите все необходимые источники.

    5. В итоге вы получите один запрос с данными из всех таблиц.

    4. Типичные ошибки и как их избежать

    Даже опытные пользователи Excel сталкиваются с проблемами при создании сводных таблиц из нескольких источников. Вот самые распространённые ошибки и их решения:

    ОшибкаПричинаРешение
    Сводная таблица не показывает данные из второй таблицыНе созданы связи между таблицамиПроверьте relationships в Данные → Связи или используйте Power Query
    Появляется ошибка #Н/Д в вычисляемых поляхОтсутствуют совпадающие значения в ключевых столбцахИспользуйте функцию ЕСЛИОШИБКА или проверьте данные на опечатки
    Excel "зависает" при обновлении сводной таблицыСлишком большой объём данных или сложные вычисленияРазбейте данные на части или используйте Power Pivot
    Дублирующиеся строки в результатахНекорректный тип объединения в Power QueryВыберите Внутреннее объединение или удалите дубли через Домашняя → Удалить строки → Удалить дубликаты

    Особое внимание уделите формату данных в ключевых столбцах. Например, если в одной таблице ID_клиента хранится как текст ("001"), а в другой — как число (1), Excel не сможет их сопоставить. Используйте функцию ТЕКСТ для приведения к единому формату:

    =ТЕКСТ(A2; "000")  // Преобразует число 1 в "001"

    1. Единообразие форматов в ключевых столбцах

    2. Отсутствие скрытых символов (пробелов, переносов строк)

    3. Уникальность идентификаторов (нет дублей в одном столбце)-->

    5. Продвинутые приёмы: вычисляемые поля и KPI

    Когда сводная таблица готова, её можно дополнить вычисляемыми полями и ключевыми показателями эффективности (KPI). Например, вы можете:

    • 📈 Рассчитывать Маржу как разницу между продажами и себестоимостью
    • 📊 Сравнивать фактические продажи с плановыми
    • 🔍 Выделять топ-5 клиентов по обороту
    • 📅 Анализировать динамику по месяцам/кварталам

    Как добавить вычисляемое поле:

    1. Щёлкните правой кнопкой по сводной таблице и выберите Формулы → Вычисляемое поле.
    2. В поле Имя введите название (например, "Прибыль").
    3. В поле Формула введите выражение (например, =Продажи - Себестоимость).
    4. Нажмите Добавить, затем OK.

    Для создания KPI (например, отметки о выполнении плана):

    1. Добавьте в сводную таблицу поле с плановыми значениями.
    2. Создайте вычисляемое поле с формулой =Факт/План.
    3. Настройте Условное форматирование для этого поля:
      • Зелёный цвет — если значение ≥ 1 (план выполнен)
      • Жёлтый — если 0.8 ≤ значение < 1
      • Красный — если значение < 0.8

    Пример формулы для расчёта доли от общего (полезно для анализа структуры продаж):

    =[Сумма продаж]/СУММ([Сумма продаж])  // Доля каждого клиента в общем обороте

    6. Автоматизация: макросы для регулярного обновления

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

    • 🔄 Обновляет все связи в книге
    • 📊 Пересчитывает сводные таблицы
    • 💾 Сохраняет файл с текущей датой в имени

    Как использовать макрос:

    1. Нажмите Alt+F11, чтобы открыть редактор VBA.
    2. Вставьте новый модуль (Insert → Module).
    3. Скопируйте туда следующий код:
    Sub ОбновитьСводныеТаблицы()
    

    Dim ws As Worksheet

    Dim pt As PivotTable

    Dim filepath As String

    ' Обновляем все связи в книге

    ThisWorkbook.RefreshAll

    ' Обновляем все сводные таблицы

    For Each ws In ThisWorkbook.Worksheets

    For Each pt In ws.PivotTables

    pt.RefreshTable

    Next pt

    Next ws

    ' Сохраняем файл с датой в имени

    filepath = "C:\Отчёты\Сводный отчёт_" & Format(Date, "yyyy-mm-dd") & ".xlsx"

    ThisWorkbook.SaveAs filepath, FileFormat:=xlOpenXMLWorkbook

    MsgBox "Обновление завершено! Файл сохранён как " & filepath, vbInformation

    End Sub

    Чтобы запускать макрос по расписанию:

    1. Сохраните книгу в формате .xlsm (с поддержкой макросов).
    2. Настройте задачу в Планировщике заданий Windows, указав путь к файлу и имя макроса (ОбновитьСводныеТаблицы).
    ⚠️ Внимание: Перед настройкой автоматического обновления проверьте, что все исходные файлы доступны по тем же путям. Если путь к источнику изменится (например, файл переместили в другую папку), макрос выдаст ошибку. Используйте относительные пути или сетевые диски для стабильной работы.

    FAQ: Ответы на частые вопросы

    Можно ли создать сводную таблицу из двух таблиц, если у них нет общих столбцов?

    Технически да, но данные будут объединены "в стопку" без логической связи. Для этого:

    1. Добавьте в каждую таблицу искусственный столбец с одинаковым значением (например, "Источник_1" и "Источник_2").
    2. Используйте метод Несколько диапазонов консолидации (описан в Методе 1).
    3. В сводной таблице вы сможете фильтровать данные по искусственному столбцу.

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

    Почему в сводной таблице отображаются не все данные из второй таблицы?

    Наиболее вероятные причины:

    • 🔍 Несовпадение ключей: Проверьте, что значения в связующих столбцах полностью идентичны (включая регистр и пробелы).
    • 🔄 Необновлённые данные: Нажмите правой кнопкой на сводную таблицу и выберите Обновить.
    • 📋 Фильтры: Убедитесь, что в сводной таблице не установлены скрытые фильтры (проверьте вкладку Анализ → Фильтры).
    • 🔗 Повреждённые связи: Перейдите в Данные → Связи и проверьте целостность связей.

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

    Как сделать сводную таблицу из данных на разных листах Google Sheets?

    В Google Sheets процесс аналогичен Excel, но с некоторыми нюансами:

    1. Откройте новый лист для сводной таблицы.
    2. Выделите ячейку, куда будет вставлена таблица.
    3. Нажмите Данные → Сводная таблица.
    4. В правой панели нажмите Добавить рядом с полем Диапазон.
    5. Укажите диапазон первой таблицы (например, Лист1!A1:D100).
    6. Нажмите Добавить ещё и укажите диапазон второй таблицы.
    7. Настройте строки, столбцы и значения как в обычной сводной таблице.

    Ограничение: в Google Sheets нельзя создавать связи между таблицами (как в Excel через Data Model). Для сложных объединений используйте функцию QUERY.

    Какая максимальная вместимость сводной таблицы в Excel?

    Лимиты зависят от версии Excel и аппаратных ресурсов:

    Версия ExcelМакс. строк в источникеМакс. уникальных элементов в поле
    Excel 2010-20131 048 57610 000
    Excel 2016-20191 048 5761 048 576 (с Power Pivot)
    Excel 2021 / Microsoft 3651 048 576Неограничено* (с Power Pivot)

    * В Excel 365 с 64-битной версией и достаточным объёмом ОЗУ.

    Если ваши данные превышают лимиты:

    • Разбейте данные на части и создайте отдельные сводные таблицы.
    • Используйте Power Pivot (доступен в Excel 2013+).
    • Экспортируйте данные в SQL Server или Power BI.
    Можно ли обновить сводную таблицу из двух источников, если один из них — внешний файл?

    Да, но нужно учитывать несколько моментов:

    1. Если внешний файл находится на сетевом диске, убедитесь, что путь к нему не меняется. Используйте относительные пути или переменные.
    2. Для защищённых файлов (например, с паролем) настройте автоматический ввод пароля в макросе:
    Workbooks.Open Filename:="C:\Data\source.xlsx", Password:="yourpassword"
    1. Если внешний файл обновляется редко, используйте Связи → Свойства связи → Обновлять при открытии файла.
    2. Для облачных источников (OneDrive, SharePoint) используйте Power Query с настройкой Обновить при открытии.

    Пример кода для обновления связи с внешним файлом:

    Sub ОбновитьВнешниеДанные()
    

    Dim conn As WorkbookConnection

    For Each conn In ThisWorkbook.Connections

    conn.Refresh

    Next conn

    End Sub