Функции и формулы

Как работают динамические массивы: одна формула вместо протягивания

Динамические массивы в Excel — это формулы, которые выдают набор значений и сами раскладывают его по соседним ячейкам, для тех, кто устал протягивать одну формулу на сотни строк. По справке Microsoft такую формулу вводят только в верхнюю левую ячейку, а размер выходного диапазона Excel подбирает сам[1]. Ниже — разлив на примере, функции УНИК, СОРТ и ПОСЛЕДОВ, ссылка с решёткой, знак @ и причины ошибки #ПЕРЕНОС!.

Тренажёр: 7 шагов

Раньше одна формула давала одно число, и для столбца из сотни значений её протягивали на каждую строку. Справка Microsoft называет формулы, способные выдавать массивы переменного размера, формулами динамического массива[1], а вывод в соседние ячейки — переносом.

Работа с ними идёт по знакомому пути: найти диапазон-источник, ввести формулу в одну ячейку, проверить, что результат разлился целиком, исправить ошибку #ПЕРЕНОС!, если ей мешают соседние данные, и сослаться на итог со своими данными через оператор #. В обиходе перенос чаще называют разливом, по-английски — spill.

Ключевые факты: динамические массивы

  • Динамический массив — результат формулы, который Excel выводит в соседние ячейки, причём редактировать можно только первую из них[1].
  • ПОСЛЕДОВ подставляет 1 вместо любого пропущенного необязательного аргумента[2].
  • Формулы перенесённого массива не работают внутри таблиц Excel, поэтому их ставят в сетку рядом[1].
  • Справка Microsoft относит УНИК и ПОСЛЕДОВ к Microsoft 365, Excel 2024 и Excel 2021 с версиями для Mac[2][3].
  • Устаревшая формула с Ctrl+Shift+Enter в отличие от новой всегда возвращает результат фиксированного размера[1].

Что такое динамические массивы и разлив результата

Динамический массив выводит результат одной формулы в соседние ячейки и сам меняет размер, когда меняются данные. Формулу пишут только в верхнюю левую ячейку, а при выделении любой ячейки результата Excel обводит его рамкой[1].

ABC
1МенеджерЦенаКол-во
2Иванов2504
3Петрова6402
4Иванов9510
5Сидоров4103
6Петрова1205

Формула =B2:B6*C2:C6 в E2 сразу заполнит E2:E6 значениями 1000, 1280, 950, 1230 и 600 — протягивать её не нужно. Запись =СУММ(B2:B6*C2:C6) в одной ячейке вернёт общий итог 5060 без вспомогательного столбца.

Разлитый результат живёт по своим правилам. Редактировать можно только первую ячейку с формулой: остальные видны в строке формул, но недоступны для правки[1]. После изменения верхней ячейки и нажатия Enter Excel обновляет всю область целиком.

Миф: ячейку внутри разлива можно поправить вручную, как обычное значение, — на деле справка Microsoft разрешает редактировать только первую ячейку, а остальные остаются недоступными[1].

Динамические массивы работают и с обычными операторами, и с функциями, которые принимают диапазоны. Дальше — шесть функций, которые справка Microsoft выделяет специально под разлив[1].

Функции УНИК, СОРТ и ПОСЛЕДОВ на примерах

Разлив стоит на функциях УНИК, СОРТ, СОРТПО, ФИЛЬТР, ПОСЛЕДОВ и СЛУЧМАССИВ: каждая принимает массив и возвращает массив[1]. Поэтому их легко вкладывать друг в друга, как СОРТ(УНИК(…)).

ФункцияЧто делаетПримерРезультат на таблице менеджеров
УНИК (UNIQUE)убирает повторы=УНИК(A2:A6)Иванов, Петрова, Сидоров
СОРТ (SORT)сортирует=СОРТ(УНИК(A2:A6))тот же список по алфавиту
СОРТПО (SORTBY)сортирует по другому массиву=СОРТПО(A2:A6;B2:B6*C2:C6;-1)Петрова, Сидоров, Иванов, Иванов, Петрова
ФИЛЬТР (FILTER)отбирает строки по условию=ФИЛЬТР(A2:C6;A2:A6="Иванов")две строки Иванова
ПОСЛЕДОВ (SEQUENCE)создаёт ряд чисел=ПОСЛЕДОВ(2;3)таблица из двух строк с числами от 1 до 6
СЛУЧМАССИВ (RANDARRAY)выдаёт случайные числа=СЛУЧМАССИВ(3;2)три строки по два случайных числа

УНИК умеет больше, чем убирать дубли. Третий аргумент со значением ИСТИНА возвращает только те значения, которые встречаются ровно один раз[3]: =УНИК(A2:A6;;ИСТИНА) на таблице менеджеров даст одного Сидорова. Справка Microsoft приводит такой пример для клиентов, которых обслужили только однажды[3].

ПОСЛЕДОВ заменяет ручную нумерацию. Аргументы по порядку — строки, столбцы, начало и шаг, а для любого пропущенного необязательного аргумента функция подставляет 1[2]. Пример из справки =ПОСЛЕДОВ(5;1;1001;1000) строит список кодов 1001, 2001, 3001, 4001 и 5001.

Миф: функции разлива — те же формулы массива с фигурными скобками, только короче, — на деле устаревшие формулы с Ctrl+Shift+Enter всегда возвращают результат фиксированного размера, а новые подстраивают его сами, по справке Microsoft[1].

В Google Таблицах есть свои FILTER и UNIQUE: справка Google описывает UNIQUE как функцию, которая возвращает уникальные строки диапазона без дубликатов в исходном порядке[8]. Подробно отбор строк по условиям разобран на странице о функции ФИЛЬТР с условиями И и ИЛИ, а удаление повторов без формул — в разборе удаления дубликатов. Однако одна формула ещё не отчёт: чтобы другие формулы подхватывали результат любой длины, нужна ссылка на весь разлив.

Как сослаться на разлив: оператор # по шагам

Весь разлив возвращает оператор #, поставленный после адреса первой ячейки: ссылка G2# охватывает результат, сколько бы строк в нём ни было. По справке Microsoft при изменении размера массива такая ссылка подстраивается автоматически[5].

Пример из справки: в A2 стоит =ПОСЛЕДОВ(10), и =СУММ(A2#) равна =СУММ(A2:A11), то есть 55[5]. На таблице менеджеров тот же приём собирает маленький отчёт без сводной таблицы.

  1. Введите в E2 формулу =B2:B6*C2:C6 — суммы разольются в E2:E6.
  2. В G2 наберите =УНИК(A2:A6) — список менеджеров займёт G2:G4.
  3. В H2 введите =СУММЕСЛИ(A2:A6;G2#;E2#) и нажмите Enter.
  4. Проверьте итоги: Иванов — 1950, Петрова — 1880, Сидоров — 1230.
  5. Расширьте исходные диапазоны в E2 и G2 до новой строки данных — столбцы G и H вырастут сами, а формулу с решёткой править не придётся.

Такой отчёт из УНИК и СУММЕСЛИ со ссылками на разлив растёт вместе с данными без правки формул. Формула =СЧЁТЗ(G2#) в соседней ячейке вернёт 3 — число менеджеров. Ссылка с решёткой работает только на разлитый результат: на обычный диапазон её не поставить. У оператора есть и граница: со ссылками на закрытые книги он не работает и возвращает #REF![5].

Соберите такой отчёт в тренажёре: урок подменяет данные и проверяет, что формулы со ссылкой # подхватили новый размер.

Именно поэтому старые книги, где формулы массива вводили иначе, требуют отдельного разбора при переходе на новые версии.

Старые и новые формулы массива: Ctrl+Shift+Enter и знак @

Динамические массивы отличаются от устаревших формул массива размером результата и способом ввода. Справка Microsoft называет старые формулы формулами CSE: их подтверждали сочетанием Ctrl+Shift+Enter, заранее выделив выходной диапазон[7].

ПризнакУстаревшая формула массиваДинамический массив
вводвыделить диапазон, Ctrl+Shift+Enterодна ячейка и Enter
размер результатавсегда фиксированныйподстраивается под данные
вид в старой версии Excelформула в фигурных скобкахсмешанная формула с _xlfn.SINGLE() не поддерживается
статусподдерживается ради совместимостиосновной способ в Microsoft 365

Динамический массив, напротив, возвращает результат того размера, какой нужен данным, и подстраивает его при пересчёте[1]. Устаревшие формулы по-прежнему работают ради обратной совместимости, но всегда возвращают результат фиксированного размера[1]. Чтобы перевести такую формулу на новый механизм, справка советует скопировать её из первой ячейки, удалить старый массив и ввести формулу заново в верхнюю левую ячейку[1].

Знак @ в формулах из старых книг — оператор неявного пересечения. Он сводит диапазон к одному значению из той же строки или столбца, а массив — к левому верхнему элементу[4]. Excel добавляет @ к функциям, которые возвращают диапазоны, например ИНДЕКС и СМЕЩ, если формула создана в старой версии; результат вычислений при этом не меняется[4].

Миф: знак @ портит старую формулу и меняет её результат — на деле справка Microsoft пишет, что результат не меняется, а @ лишь показывает неявное пересечение, которое раньше было скрыто[4].

Если удалить @ и формула вернёт диапазон, результат начнёт выводиться в соседние ячейки[4]. Остаётся понять, что мешает разливу и в каких задачах динамические массивы лучше не применять.

Ошибка #ПЕРЕНОС! и когда динамические массивы не подойдут

Разлив упирается в ошибку #ПЕРЕНОС!, когда формула не может вывести посчитанный массив: формулы с переносом не подойдут там, где выходной диапазон занят или запрещён. Таблица собирает причины из справки Microsoft[6].

Причина по справкеЧто сделать
диапазон для переноса не пустойвыбрать «Выделить препятствующие ячейки» и убрать помеху
перенос в объединённые ячейкиотменить объединение или перенести формулу
формула стоит в таблице Excelвынести её за пределы таблицы или преобразовать таблицу в диапазон
выходит за границу листассылаться не на весь столбец, а на нужные ячейки
неопределённый размерубрать из размера случайные функции
недостаточно памятисослаться на меньший диапазон

Пример выхода за границу листа приводит сама справка: =ВПР(A:A;A:C;2;ЛОЖЬ) пытается вернуть 1 048 576 результатов и упирается в край сетки[6]. Исправить формулу можно ссылкой на одну строку или оператором @: =ВПР(@A:A;A:C;2;ЛОЖЬ).

  • Если формула должна стоять внутри умной таблицы, вывод не сработает: формулы с переносом в таблицах Excel не работают[1].
  • Если книгу откроют в Excel без динамических массивов, смешанные формулы отобразятся с _xlfn.SINGLE() и не будут поддерживаться[4].
  • При связи с другой книгой результат обновится, только если открыты обе книги, иначе формулы вернут #REF![1]
  • Когда размер результата меняется между пересчётами, как у =ПОСЛЕДОВ(СЛУЧМЕЖДУ(1;1000)), Excel покажет #ПЕРЕНОС! из-за неопределённого размера[6].

Функции УНИК и ПОСЛЕДОВ справка Microsoft указывает для Microsoft 365, Excel 2024 и Excel 2021, включая версии для Mac, iPad, iPhone и Android[2][3]. Как работают умные таблицы и почему перенос в них не помещается, объяснено на странице об умной таблице и структурированных ссылках. Другие функции и приёмы собраны в обзоре формул Excel для массивов и отчётов.

Частые вопросы

Что такое разлив формулы в Excel?

Разлив — это вывод результата формулы в соседние ячейки: формулу пишут в одну ячейку, а значения занимают столько строк и столбцов, сколько нужно[1]. При выделении любой ячейки результата Excel обводит его рамкой.

В каких версиях Excel работает перенос результата?

Динамические массивы работают в Microsoft 365, Excel 2024 и Excel 2021, включая версии для Mac: так перечислены версии в справке к функциям УНИК и ПОСЛЕДОВ[2]. Более ранних версий в этих списках нет.

Почему появляется ошибка #ПЕРЕНОС!?

Ошибка #ПЕРЕНОС! появляется, когда результату некуда выйти: в выходном диапазоне есть данные, объединённые ячейки или формула стоит в таблице Excel[6]. Выделите ячейку с ошибкой и выберите «Выделить препятствующие ячейки», чтобы найти помеху.

Можно ли изменить одну ячейку внутри результата?

Нет: редактировать можно только первую ячейку, где записана формула, а остальные видны в строке формул, но недоступны[1]. Чтобы изменить результат, правят формулу в верхней левой ячейке.

Нужно ли теперь нажимать Ctrl+Shift+Enter?

Нет, в Microsoft 365 формулу массива достаточно подтвердить клавишей Enter[7]. Сочетание Ctrl+Shift+Enter создаёт устаревшую формулу фиксированного размера, которую Excel поддерживает ради совместимости[1].

Что значит знак @ в формуле?

Знак @ — оператор неявного пересечения: он сводит диапазон к одному значению из той же строки или столбца[4]. Excel добавляет его в формулы из старых книг, и результат при этом не меняется.

Источники

  1. [1] Microsoft, справка «Формулы динамического массива и поведение перенесенного массива», 2026
  2. [2] Microsoft, справка «Функция ПОСЛЕДОВ», 2026
  3. [3] Microsoft, справка «Функция УНИК», 2026
  4. [4] Microsoft, справка «Оператор неявного пересечения: @», 2026
  5. [5] Microsoft, справка «Оператор рассеянного диапазона», 2026
  6. [6] Microsoft, справка «Исправление ошибки #ПЕРЕНОС!», 2026
  7. [7] Microsoft, справка «Использование формул массива: рекомендации и примеры», 2026
  8. [8] Google, справка «Функция FILTER», 2026

Похожие темы