Excel и Google Workspace

Массивы и преобразование таблиц

Фильтрация, сортировка, объединение, разворот и обход массивов в Excel/Sheets.

Как выбрать подходящий материал

  1. Выберите операцию над диапазоном: отбор строк, сортировка, удаление повторов, объединение или последовательный обход.
  2. У результата должно быть место для разлива. Сопоставьте размерность массивов и поведение пустых ячеек до переноса формулы на весь столбец.

30 формул

Формулы темы

FILTER в Google Sheets с несколькими условиями

FILTER возвращает только те строки диапазона A2:D20, где статус в B2:B20 равен "Оплачен", а сумма в D2:D20 больше 1000. Результат разливается на лист как динамический массив.

$=FILTER(A2:D20,B2:B20="Оплачен",D2:D20>1000)$

UNIQUE в Google Sheets для списка без повторов

UNIQUE возвращает список уникальных значений из диапазона A2:A100 в том порядке, в котором они впервые встречаются. Функция помогает быстро получить справочник клиентов, товаров, городов или категорий из длинной таблицы.

$=UNIQUE(A2:A100)$

SORT в Google Sheets для сортировки диапазона

SORT возвращает строки диапазона A2:D20, отсортированные по четвертому столбцу в порядке убывания. Исходная таблица не меняется, а результат выводится как отдельный динамический массив.

$=SORT(A2:D20,4,FALSE)$

ARRAYFORMULA для расчета целого столбца в Google Sheets

ARRAYFORMULA применяет выражение B2:B10*C2:C10 сразу ко всем строкам диапазона. В результате Google Sheets выводит столбец произведений: цена умножается на количество для каждой строки.

$=ARRAYFORMULA(B2:B10*C2:C10)$

FILTER с REGEXMATCH в Google Sheets

FILTER с REGEXMATCH в Google Sheets: формула =FILTER(A2:C100,REGEXMATCH(B2:B100,"Москва|СПб")) помогает величины range, text_range, regex заданы для одной и той же ситуации, периода или объекта. В тексте есть условия, пример, ошибки и проверка результата.

$=FILTER(A2:C100,REGEXMATCH(B2:B100,"Москва|СПб"))$

ARRAYFORMULA с IF для расчета целого столбца

ARRAYFORMULA с IF для расчета целого столбца: формула =ARRAYFORMULA(IF(A2:A="","",B2:B*C2:C)) помогает величины range, condition, result заданы для одной и той же ситуации, периода или объекта. В тексте есть условия, пример, ошибки и проверка результата.

$=ARRAYFORMULA(IF(A2:A="","",B2:B*C2:C))$

BYROW и LAMBDA для построчной суммы

BYROW и LAMBDA для построчной суммы: формула =BYROW(B2:E20,LAMBDA(row,SUM(row))) помогает величины range, row заданы для одной и той же ситуации, периода или объекта. В тексте есть условия, пример, ошибки и проверка результата.

$=BYROW(B2:E20,LAMBDA(row,SUM(row)))$

MAP и LAMBDA для преобразования каждого значения

MAP и LAMBDA для преобразования каждого значения: формула =MAP(A2:A,LAMBDA(x,TRIM(x))) помогает величины range, x заданы для одной и той же ситуации, периода или объекта. В тексте есть условия, пример, ошибки и проверка результата.

$=MAP(A2:A,LAMBDA(x,TRIM(x)))$

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

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

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

TAKE в Excel: выбрать строки и столбцы массива

TAKE возвращает заданное число соседних строк или столбцов с начала или конца массива. Знак rows и columns задаёт сторону выбора, а исходная матрица и порядок её элементов сохраняются.

$\texttt{=TAKE(A1:C3,2,-2)}$

DROP в Excel: исключить строки и столбцы массива

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

$\texttt{=DROP(A1:C3,1,1)}$

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

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

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

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

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

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

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

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

$\texttt{=VSTACK(A2:B3,D2:E4)}$

REDUCE в Excel: получить один результат из массива

REDUCE последовательно применяет LAMBDA к элементам массива и возвращает один финальный аккумулятор. Это удобная основа для сумм, произведений и условных счётчиков.

$\texttt{=REDUCE(0,A2:A4,LAMBDA(a,v,a+v\char94 2))}$

TRANSPOSE / ТРАНСП: поменять строки и столбцы местами

TRANSPOSE поворачивает диапазон: строки становятся столбцами, а столбцы строками. Формула удобна для подготовки отчетов, импорта и динамических массивов. Прием особенно удобен в повторяемых офисных отчетах.

$=TRANSPOSE(A2:C4)$

FILTER в Google Таблицах: выбрать строки по условиям

FILTER возвращает строки или столбцы, которые соответствуют заданным условиям. В Google Таблицах это быстрый способ сделать живую выборку без ручного фильтра интерфейса.

$=FILTER(A2:D100,B2:B100="Оплачен",C2:C100>=10000)$

FILTER для точного отбора строк

Функция FILTER возвращает все строки из диапазона, которые удовлетворяют условиям. Это удобно для отфильтрованных отчётов, без ручной сортировки и промежуточных формул.

$=FILTER(A2:F200, B2:B200="Продажа", C2:C200>0)$

SORT для многоуровневой сортировки

С помощью SORT можно сортировать диапазон сразу по нескольким колонкам с отдельным направлением сортировки для каждого ключа.

$=SORT(A2:G200, 3, TRUE, 2, FALSE)$

UNIQUE для очистки повторов

UNIQUE для очистки повторов показывает, как по формуле =UNIQUE(A2:A200) получить проверяемый результат из исходных данных. В материале уточнены обозначения, условия применения и типовые ошибки при подстановке.

$=UNIQUE(A2:A200)$

ARRAYFORMULA для массовых вычислений

ARRAYFORMULA автоматически применяет формулу к диапазону без копирования вниз по каждой строке, сохраняя логику в одной ячейке.

$=ARRAYFORMULA(IF(B2:B200>0, C2:C200/B2:B200, ""))$