Объединение
Последнее обновление: 09.10.2026Объединение — операция объединения двух таблиц в одну.
Две таблицы добавляются друг к другу стопкой со столбцом для каждого уникального имени столбца. Данные не меняются, и получаемая таблица содержит то же количество записей, что и две исходные таблицы вместе. Последовательно можно выполнять несколько операций объединения, при этом итоговая таблица может состоять из двух и более таблиц.
Автоматическое объединение
Если имена полей и количество полей двух или более загруженных таблиц полностью совпадают, приложение автоматически объединит содержимое различных операторов в одну таблицу.
Количество и имена полей должны точно совпадать для выполнения автоматического объединения. Порядок двух операторов LOAD может быть произвольным, но таблице будет присвоено имя таблицы, загруженной первой.
Выполните следующие действия.
- Откройте редактор загрузки данных в Scripting Tutorial приложении.
- Щелкните вкладку Date.
- Щелкните команду Загрузить данные.
- На новой строке скрипта в разделе Dates скопируйте и вставьте оператор LOAD для Table2. В результате этого данные будут загружены дважды. Присвойте имя второй таблице Table2a.
- Щелкните команду Загрузить данные.
- Откройте раздел Просмотр модели данных.
- Щелкните Показать предварительный просмотр.
На основе того, что на данный момент содержит написанный вами Скрипт загрузки, приложение загружает 628 строк из файла данных Dates.xlsx в Table2.
Окно хода выполнения загрузки данных

Можно было бы также удалить существующий скрипт, а затем скопировать и вставить следующее:
Table2:
LOAD
"Date",
Month (Date) as "Month",
Quarter,
"Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Table2a:
LOAD
"Date",
Month (Date) as "Month",
Quarter,
"Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);Скрипт должен выглядеть следующим образом:
Скрипт загрузки на вкладке Dates

Приложение не загружает Table2, а затем Table2a. Вместо этого она распознает, что Table2a имеет те же имена и количество полей, что и Table2. Затем она добавляет данные Table2a в Table2 и удаляет таблицу Table2a. В результате в таблице Table2 теперь содержится 1 256 строк.
Окно хода выполнения объединения при загрузке данных

Была создана только таблица Table2. Выберите Table2. В этой таблице имеется 1256 строк.
Просмотр модели данных, отображающий Table2

Принудительное объединение
Даже если две или более таблицы не имеют точно такого же набора полей, все равно можно принудительно заставить приложение объединить эти две таблицы. Это выполняется с помощью префикса Concatenate в скрипте, который объединяет таблицу с другой указанной таблицей или с самой последней созданной таблицей.
Выполните следующие действия.
- Измените оператор LOAD для таблицы Table2a, добавив префикс Concatenate и снабдив комментарием поле Week.
- Щелкните команду Загрузить данные.
- Откройте раздел Просмотр модели данных.
- Щелкните Table2 в просмотре модели данных, а затем щелкните команду Предварительный просмотр.
- Щелкните поле Week в таблице Table2. В предварительном просмотре показывается, что количество ненулевых значений для данного поля равно 628. Однако если щелкнуть любое другое поле, то будет видно, что количество ненулевых значений равняется 1256. Поле Week было загружено из таблицы Table2 только один раз. Количество значений, или записей, представляет собой сумму числа записей в таблицах Table2 и Table2a.
Код скрипта должен выглядеть теперь так:
Table2a:
Concatenate LOAD
"Date",
Month (Date) as "Month",
Quarter,
// "Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);Добавив комментарий полю Week, мы можем быть уверены, что таблицы не одинаковы.
Теперь вы видите, что таблица Table2a не создана.
В данной таблице имеются поля Date, Month, Quarter, Week и Year. Поле Week все еще отображается, поскольку оно было загружено из таблицы Table2.
Предотвращение объединения
Если имена полей и количество полей двух или более загруженных таблиц точно совпадают, приложение автоматически объединит содержимое разных операторов в одну таблицу. Это можно предотвратить с помощью оператора NoConcatenate. Таблица, загруженная с помощью соответствующего оператора LOAD или SELECT, впоследствии не будет объединена с существующей таблицей.
Выполните следующие действия.
- Чтобы полностью разделить содержимое двух таблиц, добавьте NoConcatenate в оператор LOAD в Table2a и переименуйте поля, чтобы приложение не создавало синтетический ключ на основе совпадающих полей. Удалите комментарий для Week в таблице Table2, чтобы две таблицы имели одинаковые поля.
- Щелкните команду Загрузить данные.
- Откройте раздел Просмотр модели данных.
- Теперь по завершении демонстрации объединения таблица Table2a нам больше не нужна. Удалите все строки в операторе LOAD для таблицы Table2a, а затем щелкните Загрузить данные.
Код скрипта должен выглядеть теперь так:
Table2:
LOAD
"Date",
Month (Date) as "Month",
Quarter,
"Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Table2a:
NoConcatenate LOAD
"Date" as "Date2",
Month (Date) as "Month2",
Quarter as "Quarter2",
"Week" as "Week2",
"Year" as "Year2"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates); Теперь две таблицы полностью разделены.
Просмотр модели данных, отображающий таблицы Table2 и Table 2a
