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

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

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

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

Формула

$$\texttt{=WRAPCOLS(vector,wrap\_count,[pad\_with])}$$
Схема WRAPCOLS: семь элементов, высота три
WRAPCOLS: семь элементов, высота триWRAPCOLS: семь элементов, высота триСтолбец 1Столбец 2Столбец 314725—36—=WRAPCOLS(A2:A8,3,"—")

Два нижних места третьего столбца — заполнители.

Обозначения

$vector$
одномерный массив или ссылка на строку/столбец, значения исходного списка
$wrap_count$
максимальное число значений в каждом столбце, целое число больше нуля
$pad_with$
значение для недостающих ячеек последнего столбца, необязательное значение

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

Источник должен быть одномерным массивом, строкой или столбцом. wrap_count задаётся целым числом не меньше 1; при нуле и отрицательном значении Microsoft Excel возвращает #NUM!. Для предсказуемой таблицы заранее определите pad_with и убедитесь, что справа и ниже ячейки свободны. Если vector получен другой динамической формулой, сначала проверьте его фактическую длину и отсутствие неожиданной вложенной матрицы. Нужен Microsoft 365 или Excel 2024; здесь показан английский синтаксис с запятыми.

Ограничения

WRAPCOLS не сортирует, не удаляет дубли и не выбирает значения по условию. Он только меняет форму одномерного списка. Двумерный vector вызывает #VALUE!, а незаданные элементы последнего столбца без pad_with становятся #N/A. Ошибка #SPILL! возникает при занятой области разлива. Явный тире удобен для показа, но его нельзя суммировать как число без отдельной обработки.

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

WRAPCOLS раскладывает одномерный vector в двумерный массив по столбцам. Заполнение идёт сверху вниз: первые wrap_count элементов образуют первый столбец, затем следующие элементы переходят во второй столбец. Порядок исходной последовательности сохраняется. Для vector 1..7, wrap_count=3 и pad_with=тире результат имеет три строки и три столбца: [1,4,7]; [2,5,—]; [3,6,—]. В первой колонке стоят 1,2,3, во второй 4,5,6, в третьей 7 и два заполнителя. Это операция раскладки, а не сортировка или выбор строк. Аргумент pad_with нужен только для хвоста последнего столбца. Если он не задан, Microsoft указывает #N/A в ячейках без исходного элемента. Явный маркер вроде тире помогает отличить отсутствие значения от нулевого числа и делает печатную таблицу понятной. vector должен быть одномерным. Двумерный источник приводит к #VALUE!, wrap_count меньше 1 — к #NUM!. Когда wrap_count не меньше длины vector, результатом становится один столбец. Формула разливается вправо и вниз, поэтому все ячейки ожидаемой области должны быть свободны. Если длина списка больше wrap_count, число строк результата равно wrap_count, а число столбцов — округлению длины vector вверх до ближайшего целого числа столбцов. Для семи элементов и высоты три это ceil(7/3)=3 столбца; в последнем столбце два места заполняются pad_with. Такая проверка позволяет заранее сверить размер макета.

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

  1. Выберите один столбец или одну строку исходных значений и сохраните их требуемый порядок чтения.
  2. Задайте положительное целое wrap_count как высоту колонки, а не как число колонок в результате.
  3. Выберите текстовый заполнитель "—" в кавычках, если недостающие позиции должны быть заметны.
  4. Введите формулу в свободную область, затем проверьте переход от низа одного столбца к верху следующего.

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

WRAPCOLS относится к современным функциям динамических массивов Excel, которые Microsoft отмечает для Microsoft 365 и Excel 2024. До появления разлива похожую вертикальную раскладку обычно строили вспомогательными индексами, OFFSET или связками INDEX и ROWS; такие модели требовали заранее заданного размера и ручного копирования формул. WRAPCOLS выразил правило заполнения одной формулой: высота столбца задаётся wrap_count, а хвост получает pad_with. Это отражает развитие табличных моделей от повторяющихся ячеек к формулам, возвращающим массивы. Историческое описание здесь ограничено самой операции преобразования формы и не приписывает Microsoft авторство общего подхода к массивам.

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

Официальная справка Microsoft Support описывает синтаксис WRAPCOLS, заполнение двумерного массива по столбцам, значение pad_with, ошибки #VALUE!, #NUM! и #N/A, а также поддержку Microsoft 365 и Excel 2024. Эти сведения отделены от редакционного объяснения расчёта числа строк и столбцов; последнее является прямым следствием описанного алгоритма раскладки.

Пример

В A2:A8 записаны числа 1,2,3,4,5,6,7. Формула =WRAPCOLS(A2:A8,3,"—") создаёт строки [1,4,7]; [2,5,—]; [3,6,—]. Проверим порядок: первый столбец содержит 1,2,3, второй 4,5,6, а третий начинается с 7. Всего получились девять ячеек: семь исходных чисел и два текстовых заполнителя. Сумма числовых элементов равна 28, как и у исходного списка; перестановка формы её не меняет. Для сравнения WRAPROWS с шириной 3 дала бы строки [1,2,3]; [4,5,6]; [7,—,—]. Разница состоит в направлении заполнения, поэтому для печатной формы нужно выбрать, читается ли список сначала вниз или вправо.

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

Не подставляйте число желаемых столбцов вместо высоты одного столбца. Не путайте WRAPCOLS с WRAPROWS: одинаковые параметры создают разный порядок. Не забывайте кавычки вокруг текстового заполнителя. Не принимайте #N/A в хвосте за ошибку исходных чисел: без pad_with это штатное обозначение недостающих позиций.

Практика

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

Шесть элементов, высота четыре

Условие. vector = 1..6; count = 4; pad_with = тире.

Решение. = WRAPCOLS(A2:A7,4,"—"). Первые четыре значения дают первую колонку, два следующих — вторую; два оставшихся места дополняются.

Ответ. [1,5]; [2,6]; [3,—]; [4,—].

Четыре элемента, высота два

Условие. vector = 1..4; count = 2; pad_with = тире.

Решение. = WRAPCOLS(A2:A5,2,"—"). Два значения на колонку: первая 1,2, вторая 3,4; недостающих ячеек нет.

Ответ. [1,3]; [2,4], заполнителей нет.

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

  • https://support.microsoft.com/en-us/excel/functions/wrapcols-function
  • https://support.microsoft.com/en-us/excel/functions/wraprows-function

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

Excel и Google Workspace

TOROW в Excel: превратить массив в одну строку

$\texttt{=TOROW(array,[ignore],[scan\_by\_column])}$

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

Excel и Google Workspace

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

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

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