Excel и Google Workspace / Базовые формулы Excel

VSTACK в Excel: объединить массивы по строкам

VSTACK последовательно ставит массивы один под другим и возвращает единый разливающийся диапазон. При разной ширине недостающие позиции получают #N/A.

Опубликовано: Обновлено:

Формула

$$\texttt{=VSTACK(A2:B3,D2:E4)}$$
Схема Два списка превращаются в пять строк
Два списка превращаются в пять строкДва списка превращаются в пять строкКодНазваниеИсточник101Карандаш1102Папка1103Ручка2104Маркер2105Линейка2Размер результата: 5 строк × 2 поля

После двух строк первого списка идут три строки второго.

Обозначения

$A2:B3$
первый список: две строки и два столбца, не применяется
$D2:E4$
второй список: три строки и два столбца, не применяется

Условия применения

Официальная справка указывает Microsoft 365 и Excel 2024 для Windows и Mac. В примерах используется английский синтаксис с запятыми; локализованная установка может требовать другое имя и разделитель. Область результата должна быть свободна, а поля входных таблиц — расположены в согласованном порядке.

Ограничения

Функция объединяет позиции, а не распознаёт названия полей. Дубли и повторные заголовки остаются. При разной ширине более узкие массивы дополняются #N/A. Применение IFERROR может скрыть как эти заполнители, так и настоящие ошибки исходных данных, поэтому причины сначала проверяют.

Подробное объяснение

VSTACK помещает первый массив сверху, второй под ним и продолжает так для остальных аргументов. Число строк результата равно сумме высот входов. Число столбцов равно наибольшей ширине среди них: это прямоугольный массив, даже если исходные части имели разные размеры.

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

Для недостающих столбцов узкой части появляются #N/A. Такой результат показывает отсутствие позиции, а не обязательно ошибку поиска. Замена на пустую строку удобна для показа, но может скрыть проблему схемы данных, если разные ширины возникли случайно.

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

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

Как пользоваться формулой

  1. Приведите столбцы всех списков к одинаковому смыслу и порядку, отдельно решив, где останется общий заголовок.
  2. Выберите точные диапазоны записей и сложите число строк, чтобы заранее определить ожидаемую высоту результата.
  3. Введите VSTACK с диапазонами в нужном порядке в свободную ячейку вне области исходных данных.
  4. Сверьте границу между блоками и объясните каждую позицию #N/A до замены ошибок пустыми значениями.

Историческая справка

VSTACK вошла в группу функций обработки текста и массивов, представленную командой Excel в 2022 году. В продуктовой логике она решает отдельную операцию: вертикальное соединение уже сформированных прямоугольных массивов. До появления такой функции пользователи могли собирать списки копированием, запросами или более сложными формулами; новая операция сделала сам шаг объединения явным в выражении на листе. Современная справка Microsoft описывает размеры результата и заполнение недостающих столбцов. Это история развития табличного процессора, а не математическая формула с единственным историческим автором. При работе с книгой важно различать дату объявления функции и поддержку конкретной версии: старый выпуск Excel не получает её только потому, что умеет складывать обычные диапазоны.

Историческая линия формулы

VSTACK — продуктовая функция Microsoft Excel, документированная в составе средств работы с динамическими массивами. Её не следует приписывать отдельному математику или считать универсальным стандартом всех таблиц; совместимость определяется реализацией и версией приложения.

Пример

В A2:B3 записаны две пары: 101 — Карандаш, 102 — Папка. В D2:E4 находятся 103 — Ручка, 104 — Маркер, 105 — Линейка. Вводим =VSTACK(A2:B3,D2:E4) в G2. Результат занимает G2:H6: сначала две записи первого списка, затем три второго. Размер равен (2+3)×2, то есть пять строк и два столбца. Проверяем переход: в третьей строке результата должен стоять код 103, а в последней — 105. Все пять названий сохраняют соответствие кодам. Здесь ширина обоих источников одинакова, поэтому дополнительных #N/A нет. Если случайно включить строку заголовка второго списка, она появится третьей строкой результата и увеличит его высоту.

Частая ошибка

Не считайте объединение сопоставлением столбцов по названиям. Не включайте заголовки каждого листа, если нужен один общий заголовок. Не ждите удаления дублей. Не заменяйте все #N/A пустотой до проверки ширины и исходных ошибок. Не вводите формулу туда, где её разлив перекроет исходный диапазон.

Практика

Задачи с решением

Разная ширина

Условие. Первый массив содержит строки [1,10] и [2,20], второй — одну строку [3]. Что вернёт VSTACK?

Решение. Высота 2+1=3, ширина max(2,1)=2. Строки: [1,10], [2,20], [3,#N/A].

Ответ. Массив 3×2 с одним #N/A

Повторные записи

Условие. Соединены столбцы [7;8] и [8;9]. Каков результат?

Решение. VSTACK сохраняет все строки по порядку: 7,8,8,9. Значение 8 не удаляется как дубль.

Ответ. Четыре строки: [7;8;8;9]

Дополнительные источники

  • https://support.microsoft.com/en-us/excel/functions/vstack-function
  • https://techcommunity.microsoft.com/blog/excelblog/announcing-new-text-and-array-functions/3186066

Связанные формулы

Excel и Google Workspace

TOCOL в Excel: диапазон в один столбец

$\texttt{=TOCOL(A1:B2)}$

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

Excel и Google Workspace

WRAPCOLS в Excel: разложить список по столбцам

$\texttt{=WRAPCOLS(vector,wrap\_count,[pad\_with])}$

WRAPCOLS превращает одномерный список в матрицу, заполняя каждый столбец сверху вниз. Аргумент wrap_count задаёт высоту столбца, а pad_with заполняет недостающие позиции последней колонки.