Excel и Google Workspace / Базовые формулы Excel
TOCOL в Excel: диапазон в один столбец
TOCOL превращает прямоугольный массив в один вертикальный столбец. По умолчанию значения читаются построчно, а scan_by_column=TRUE переключает обход по столбцам, сохраняя выбранный порядок позиций.
Формула
Строки читаются слева направо, затем результат разливается вниз.
Обозначения
- $array$
- массив или ссылка на прямоугольный диапазон, массив
- $ignore$
- код пропуска: 0 ничего, 1 пустые, 2 ошибки, 3 пустые и ошибки, 0–3
- $scan_by_column$
- TRUE читает столбцами, FALSE или пропуск — строками, логическое
Условия применения
При ignore=0 все элементы сохраняются: физически пустая ячейка в результате TOCOL отображается как 0. При ignore=1 пустые ячейки исключаются, при 2 исключаются ошибки, при 3 исключаются оба типа. scan_by_column=FALSE читает первую строку слева направо, затем следующую; TRUE читает первый столбец сверху вниз и затем следующий. Примеры используют английские имена функций и запятые; язык функции и разделитель аргументов зависят от локали Excel. Поддержка: Microsoft 365 и Excel 2024.
Ограничения
TOCOL не сортирует значения, не удаляет дубли и не меняет сами элементы. После пропуска пустых или ошибок длина результата уменьшается, поэтому нельзя заранее ссылаться на фиксированное число строк. Занятая область разлива вызывает #SPILL!, слишком большой массив может вызвать #NUM!, а некорректная массивная константа — #VALUE!.
Подробное объяснение
TOCOL меняет форму массива, но не его содержание. Матрица 2×2 превращается в четыре строки одного столбца; единственный вопрос — в каком порядке эти четыре позиции будут прочитаны. Это делает функцию полезной перед UNIQUE, SORT или поиском, но сама TOCOL не выполняет ни одну из этих операций.
При обычном обходе сначала читается вся первая строка. Для [[10,20],[30,40]] результат равен 10;20;30;40. При TRUE сначала читается первый столбец: 10;30; затем второй: 20;40. Связь позиции с исходной ячейкой определяется именно выбранным порядком.
Параметр ignore действует до разлива. Значение 1 удаляет физически пустые ячейки, но сохраняет нули и текст; значение 2 удаляет ошибки, а значение 3 объединяет оба исключения. Пустая ячейка при ignore=0 не исчезает: Excel показывает для неё 0 в вертикальном результате.
Длина результата равна числу элементов массива минус исключённые пустые ячейки и ошибки. Поэтому при ignore=1 список может быть короче исходного произведения строк на столбцы. Дубли, одинаковые числа и повторяющиеся строки остаются на своих местах и не считаются пустыми.
TOCOL возвращает динамический массив: формулу вводят в верхнюю левую ячейку, а значения разливаются вниз. Перед вводом освободите область под результат. Если в ней есть данные, ошибка #SPILL! означает конфликт размещения, а не ошибку порядка обхода.
Как пользоваться формулой
- Выделите прямоугольный диапазон и запишите ожидаемый порядок чтения его строк и столбцов.
- Введите TOCOL с ignore=0 и проверьте все элементы, включая физически пустые ячейки.
- Переключите scan_by_column на TRUE только если нужен порядок сверху вниз по каждому столбцу.
- Выберите ignore=1, 2 или 3 после решения, какие элементы допустимо исключить.
- Освободите область разлива и сравните длину результата с числом сохранённых элементов.
- Если нужны сортировка или удаление дублей, примените отдельную функцию после TOCOL.
- Проверьте ошибки источника отдельно: ignore=2 скрывает их из списка, но не исправляет причину.
- Сверьте первый, средний и последний элементы с исходными координатами массива.
Историческая справка
TOCOL появилась в современной системе динамических массивов Excel и официально документирована Microsoft для Excel for Microsoft 365 и Excel 2024, включая версии для Mac. Её назначение выросло из практической потребности преобразовывать табличные блоки в списки без ручного копирования и вспомогательных формул. Документация фиксирует два независимых решения: режим ignore для пустых ячеек и ошибок и scan_by_column для выбора порядка чтения. Это продолжает развитие массивных операций электронных таблиц, где одна формула может вернуть диапазон переменной длины. В отличие от старых формул фиксированного размера, динамический результат автоматически меняет высоту при изменении исходного блока. Официальная справка не называет одного автора функции; корректнее говорить о развитии вычислительной модели Excel и потребностях обработки данных.
Историческая линия формулы
TOCOL — современная функция Excel, описанная Microsoft для Microsoft 365 и Excel 2024. Документация не приписывает её одному изобретателю; функция относится к развитию динамических массивов и табличной обработки данных. Это преобразование формы массива, а не отдельный статистический метод.
Пример
В диапазоне A1:B2 расположены 10, 20 в первой строке и 30, 40 во второй. Формула =TOCOL(A1:B2) использует обычный построчный обход и разливается вниз как 10;20;30;40. Формула =TOCOL(A1:B2,0,TRUE) читает столбцами и возвращает 10;30;20;40. В обоих случаях длина равна четырём: ignore=0 ничего не удаляет, а порядок меняется только третьим аргументом. Проверка координат подтверждает: при TRUE после A1 читается A2, затем B1 и B2. Контрольная сверка выполняется по координатам: A1 попадает первым, B1 вторым при обычном обходе, а при TRUE вторым становится A2. Это подтверждает порядок, а не только набор чисел.
Частая ошибка
Ошибка 1 — ожидать сортировку: TOCOL только меняет форму и порядок обхода. Ошибка 2 — считать ignore=1 удалением нулей: ноль является значением и сохраняется. Ошибка 3 — подавать формулу с пустым результатом как физическую пустую ячейку; ignore различает пустоту и результат другой формулы. Ошибка 4 — забыть, что ignore=0 показывает пустую ячейку как 0. Ошибка 5 — проверять только верхнюю ячейку разлива и пропускать #SPILL! или изменение длины списка.
Практика
Задачи с решением
Обход по столбцам
Условие. Матрица A1:B2 содержит [А,Б] в первой строке и [В,Г] во второй. Найдите TOCOL(A1:B2,0,TRUE).
Решение. TRUE читает первый столбец сверху вниз: А, В; затем второй: Б, Г. Все четыре элемента сохраняются при ignore=0.
Ответ. А;В;Б;Г
Пропуск физически пустой ячейки
Условие. В A1:B2 находятся 1 и физически пустая B1; во второй строке 3 и 4. Найдите TOCOL(A1:B2,1).
Решение. Построчный порядок даёт 1, пусто, 3, 4; ignore=1 удаляет только пустую ячейку.
Ответ. 1;3;4
Дополнительные источники
- https://support.microsoft.com/en-us/excel/functions/tocol-function
- https://support.microsoft.com/en-us/excel/dynamic-array-formulas-and-spilled-array-behavior
Связанные формулы
Excel и Google Workspace
TRANSPOSE / ТРАНСП: поменять строки и столбцы местами
TRANSPOSE поворачивает диапазон: строки становятся столбцами, а столбцы строками. Формула удобна для подготовки отчетов, импорта и динамических массивов. Прием особенно удобен в повторяемых офисных отчетах.
Excel и Google Workspace
UNIQUE в Google Sheets для списка без повторов
UNIQUE возвращает список уникальных значений из диапазона A2:A100 в том порядке, в котором они впервые встречаются. Функция помогает быстро получить справочник клиентов, товаров, городов или категорий из длинной таблицы.
Excel и Google Workspace
SORT в Google Sheets для сортировки диапазона
SORT возвращает строки диапазона A2:D20, отсортированные по четвертому столбцу в порядке убывания. Исходная таблица не меняется, а результат выводится как отдельный динамический массив.
Excel и Google Workspace
TAKE в Excel: выбрать строки и столбцы массива
TAKE возвращает заданное число соседних строк или столбцов с начала или конца массива. Знак rows и columns задаёт сторону выбора, а исходная матрица и порядок её элементов сохраняются.