Все материалы
BIгайдстарт

ARRAYFORMULA в Google Таблицах: одна формула на весь столбец

Функция ARRAYFORMULA в Google Таблицах: формула на весь столбец без протягивания, ЕСЛИ и ВПР внутри, заголовок в формуле, И и ИЛИ в массиве, ошибка #REF! и примеры.

КейсПрактика27 октября 2026 г.11 мин

Формулу в отчёте протянули до строки 16, а в понедельник пришёл заказ в строку 17, и в нём формулы нет. Если заказы приносит Google Форма или IMPORTRANGE, это случается каждый день, и отчёт врёт тихо: новые строки просто не считаются. ARRAYFORMULA решает задачу одной формулой в верхней ячейке столбца, которая сама заполняет все строки ниже. Ниже — как она работает, как писать внутри неё ЕСЛИ, ВПР и СУММЕСЛИ, как поставить заголовок прямо в формулу, почему И и ИЛИ внутри неё ломаются, как получить нарастающий итог и номер заказа клиента и что значит ошибка #REF!. Результаты пересчитаны на Python, поведение функции сверено со справкой Google 27 октября 2026 года.

Коротко: что делает ARRAYFORMULA

ARRAYFORMULA разрешает функциям внутри работать с диапазонами целиком и выводит результат массивом — в столько строк и столбцов, сколько нужно. Одна формула в H2 заменяет пятнадцать протянутых.

  • Синтаксис: =ARRAYFORMULA(формула_массива); ссылки внутри — диапазоны: F2:F16, а не F2.
  • Сочетание Ctrl+Shift+Enter при вводе формулы добавляет ARRAYFORMULA само.
  • Открытый диапазон A2:A захватывает новые строки; пустые отсекаются через ЕСЛИ(A2:A=""; ""; …).
  • И и ИЛИ сворачивают массив в одно значение; внутри ARRAYFORMULA вместо них — умножение и сложение условий.
  • Если ячейки ниже заняты, формула вернёт #REF!: массиву некуда развернуться.

Учебные данные: лист «Заказы»

Примеры идут на листе «Заказы» серии «Google Таблицы для аналитика»: пятнадцать заказов за сентябрь и октябрь 2026 года в строках 2–16. Столбцы A–G — дата, номер заказа, клиент, канал, город, сумма, статус. Числа учебные; полностью лист приведён в статье о функции QUERY. Новые формулы ставим в свободные столбцы H и правее.

Лист «Заказы», первые и последние строки
Стр.A: ДатаC: КлиентD: КаналE: ГородF: Сумма, ₽G: Статус
202.09.2026ОрловаПоискМосква4 200Оплачен
303.09.2026КимСоцсетиКазань1 800Оплачен
405.09.2026БеловEmailМосква6 500Отменён
…………………
1419.10.2026КимEmailКазань2 300Оплачен
1522.10.2026ЛаптеваСоцсетиМосква3 900Оплачен
1626.10.2026НовиковПоискКазань5 100Оплачен

Первая формула: ЕСЛИ на весь столбец

Нужен столбец «Выручка»: сумма, если заказ оплачен, иначе ноль. Обычная формула в H2 — =ЕСЛИ(G2="Оплачен"; F2; 0), её протягивают до H16. Версия массивом стоит только в H2: =ARRAYFORMULA(ЕСЛИ(G2:G16="Оплачен"; F2:F16; 0)). Сравнение G2:G16="Оплачен" даёт пятнадцать значений ИСТИНА и ЛОЖЬ, ЕСЛИ выбирает для каждого своё, результат разворачивается в H2:H16. Сумма столбца — 58 500 ₽, выручка оплаченных заказов.

Ячейки H3:H16 при этом пустые по содержанию: в них нет формулы, только выведенные значения. Если щёлкнуть по H10, в строке формул будет видна серая формула из H2. Изменить значение в H10 вручную нельзя — точнее, можно ввести число, но тогда массиву некуда развернуться, и H2 покажет ошибку.

Писать ARRAYFORMULA руками не обязательно. Наберите =ЕСЛИ(G2:G16="Оплачен"; F2:F16; 0) и нажмите Ctrl+Shift+Enter вместо Enter — Таблицы добавят обёртку сами. Без обёртки формула с диапазонами в аргументах ЕСЛИ вернёт одно значение или ошибку.

Синтаксис
ARRAYFORMULA(формула_массива)

Название не переводится и в русских Таблицах. Внутри — обычные функции, но вместо ссылок на ячейки стоят диапазоны одинаковой высоты.

Открытый диапазон и заголовок в формуле

Диапазон G2:G16 закончится на шестнадцатой строке, и новые заказы снова останутся без формулы. Открытый диапазон G2:G идёт до конца листа. Но тогда формула заполнит нулями все пустые строки — их на листе по умолчанию под тысячу. Поэтому открытый диапазон почти всегда идёт в паре с проверкой на пустоту: =ARRAYFORMULA(ЕСЛИ(A2:A=""; ""; ЕСЛИ(G2:G="Оплачен"; F2:F; 0))).

Ещё удобнее поставить формулу в строку заголовка. Тогда сортировка данных или вставка строки сразу под заголовком её не заденет. Заголовок и формулу склеивает массив в фигурных скобках: ={"Месяц"; ARRAYFORMULA(ЕСЛИ(A2:A=""; ""; ТЕКСТ(A2:A; "yyyy-mm")))} в H1. Точка с запятой в скобках ставит заголовок над столбцом значений. Получится ключ месяца: семь строк «2026-09» и восемь «2026-10», по нему удобно группировать сводной таблицей.

Так строят листы, куда данные приходят сами: ответы Google Формы, результат IMPORTRANGE, выгрузка, которую дописывают снизу. Каждая новая строка получает все вычисленные столбцы без участия человека.

Формулы в строке 1 листа «Заказы» (столбцы H–J)
ЯчейкаФормулаЧто выводит
H1={"Выручка"; ARRAYFORMULA(ЕСЛИ(A2:A=""; ""; ЕСЛИ(G2:G="Оплачен"; F2:F; 0)))}сумма оплаченного или 0, итог 58 500
I1={"Месяц"; ARRAYFORMULA(ЕСЛИ(A2:A=""; ""; ТЕКСТ(A2:A; "yyyy-mm")))}7 × «2026-09», 8 × «2026-10»
J1={"Менеджер"; ARRAYFORMULA(ЕСЛИ(C2:C=""; ""; ЕСЛИОШИБКА(ВПР(C2:C; Клиенты!A:B; 2; ЛОЖЬ); "нет в справочнике")))}менеджер клиента из справочника

ВПР внутри ARRAYFORMULA

ВПР принимает в первом аргументе целый столбец запросов, если обернуть её в ARRAYFORMULA, — формула в J1 из таблицы выше подтягивает менеджера к каждому заказу. ЕСЛИОШИБКА превращает #Н/Д в подпись «нет в справочнике», а не в пустоту: заказ клиента без менеджера должен остаться виден. Справочник клиентов и разбор ловушек ВПР — в статье о ВПР в Google Таблицах.

То же работает с XLOOKUP, ИНДЕКС и ПОИСКПОЗ и другими функциями поиска. Главное — оба диапазона, проверяемый и справочник, задаются целиком, а знаки доллара не нужны: формула одна, и протягивать её некуда.

Почему И и ИЛИ не работают внутри ARRAYFORMULA

Задача — выручка Москвы по оплаченным заказам. Первая мысль: =ARRAYFORMULA(СУММ(ЕСЛИ(И(E2:E16="Москва"; G2:G16="Оплачен"); F2:F16; 0))). Формула вернёт 0. Функция И не умеет работать построчно: она берёт все тридцать значений ИСТИНА и ЛОЖЬ разом и возвращает одно — ИСТИНА, только если истинно всё. Не все заказы московские, поэтому И даёт ЛОЖЬ, и ЕСЛИ выбирает ноль.

Внутри массива «и» записывают умножением, а «или» — сложением. ИСТИНА при умножении превращается в 1, ЛОЖЬ — в 0, и произведение двух условий равно 1 только там, где выполнены оба. =ARRAYFORMULA(СУММ((E2:E16="Москва")*(G2:G16="Оплачен")*F2:F16)) даёт 24 800 ₽. Для «или» — сумма условий больше нуля: оплаченные заказы из поиска или email, =ARRAYFORMULA(СУММ(((D2:D16="Поиск")+(D2:D16="Email")>0)*(G2:G16="Оплачен")*F2:F16)), — 32 000 ₽.

Если логика сложнее, чем умножение условий, построчную функцию можно задать явно через MAP и LAMBDA: =MAP(E2:E16; G2:G16; LAMBDA(город; статус; И(город="Москва"; статус="Оплачен"))) вернёт ИСТИНА в шести строках. MAP вызывает LAMBDA для каждой строки отдельно, поэтому И внутри неё работает как обычно.

Выручка Москвы по оплаченным заказам: три записи условия
ФормулаРезультатПочему
=ARRAYFORMULA(СУММ(ЕСЛИ(И(E2:E16="Москва"; G2:G16="Оплачен"); F2:F16; 0)))0И свернула 30 значений в одно ЛОЖЬ
=ARRAYFORMULA(СУММ((E2:E16="Москва")*(G2:G16="Оплачен")*F2:F16))24 800условия перемножаются построчно
=СУММЕСЛИМН(F2:F16; E2:E16; "Москва"; G2:G16; "Оплачен")24 800то же без массива — для одного числа проще

СУММЕСЛИ со списком условий

СУММЕСЛИ и СЧЁТЕСЛИ внутри ARRAYFORMULA принимают диапазон условий и возвращают столбец ответов — по одному на каждое условие. Если в J2:J5 перечислены каналы, =ARRAYFORMULA(СУММЕСЛИ(D2:D16; J2:J5; F2:F16)) в K2 выведет оборот четырёх каналов со всеми статусами: поиск 22 400, соцсети 9 900, email 16 100, партнёры 27 900 ₽.

С условием по статусу берите СУММЕСЛИМН: =ARRAYFORMULA(СУММЕСЛИМН(F2:F16; D2:D16; J2:J5; G2:G16; "Оплачен")) — 22 400, 7 200, 9 600 и 19 300 ₽. Разница между двумя столбцами — отмены и возврат: у партнёров 8 600 ₽, у email — 6 500 ₽. Синтаксис и ловушки условий разобраны в статье о СУММЕСЛИ и СЧЁТЕСЛИ, в Google Таблицах они такие же. Список каналов в J2:J5 можно не печатать руками, а получить формулой =UNIQUE(D2:D16): каналы встанут в порядке первого появления, как в таблице ниже.

Оборот и выручка по каналам одной формулой на столбец, ₽
J: КаналK: СУММЕСЛИ, все статусыL: СУММЕСЛИМН, оплаченные
Поиск22 40022 400
Соцсети9 9007 200
Email16 1009 600
Партнёры27 90019 300

Нарастающий итог и номер заказа клиента

Две аналитические задачи, которые обычно решают протянутой формулой со «съезжающим» диапазоном $F$2:F2. В ARRAYFORMULA такой диапазон не построить, зато условие можно поставить на номер строки.

Нарастающая выручка оплаченных заказов: =ARRAYFORMULA(ЕСЛИ(A2:A16=""; ""; СУММЕСЛИМН(F2:F16; СТРОКА(F2:F16); "<="&СТРОКА(F2:F16); G2:G16; "Оплачен"))). Для каждой строки формула складывает оплаченные суммы от начала до этой строки включительно. К концу сентября, в строке 8, набегает 23 700 ₽, к последнему заказу — 58 500 ₽. Порядок строк должен совпадать с порядком дат: отсортируйте лист по дате до того, как читать такой столбец.

Номер заказа клиента — тот же приём со СЧЁТЕСЛИМН: =ARRAYFORMULA(СЧЁТЕСЛИМН(C2:C16; C2:C16; СТРОКА(C2:C16); "<="&СТРОКА(C2:C16))). У Орловой заказы получат номера 1, 2 и 3, у Новикова — 1. Строк с номером больше единицы восемь — это повторные заказы, те же восемь строк, что подсвечивает правило в статье об условном форматировании. Только теперь это не цвет, а столбец, по которому можно считать долю повторных покупок.

Нарастающая выручка оплаченных заказов, контрольные строки
СтрокаДатаСтатусНарастающий итог, ₽
303.09.2026Оплачен6 000
405.09.2026Отменён6 000
824.09.2026Оплачен23 700
1211.10.2026Отменён37 300
1626.10.2026Оплачен58 500

Ошибка #REF! и другие сбои

Самая частая ошибка ARRAYFORMULA — #REF! с подсказкой, что массив не развёрнут, потому что перезапишет данные в такой-то ячейке. Кто-то ввёл значение в столбец, который принадлежит массиву, — даже пробел. Найдите ячейку из подсказки и очистите её. Чтобы такое не повторялось, закрасьте столбец с формулой или защитите диапазон.

Вторая — формула работает, но медленно. Открытые диапазоны A2:A на листе с десятками тысяч строк и вложенные ВПР пересчитываются целиком при каждой правке. Ограничьте диапазон разумной высотой или перенесите тяжёлые вычисления в QUERY, которая считает одним проходом.

Третья — функция, которой массив не нужен. FILTER, SORT, UNIQUE, QUERY и IMPORTRANGE сами возвращают диапазон, и обёртка ARRAYFORMULA вокруг них ничего не меняет. Справка Google отдельно отмечает, что многие формулы массива расширяются автоматически.

Симптом — причина — что сделать
СимптомПричинаЧто сделать
#REF!: массив не развёрнутв столбце ниже есть значениеочистить ячейку из подсказки
Ноль вместо суммыИ или ИЛИ внутри массиваумножение и сложение условий
Нули до конца листаоткрытый диапазон без проверки на пустотуЕСЛИ(A2:A=""; ""; …)
#ЗНАЧ! о размередиапазоны разной высоты: F2:F16 и G2:Gодинаковые границы у всех диапазонов
Новые строки без значенийзакрытый диапазон A2:A16открытый A2:A
Таблица тормозиттяжёлые формулы на открытых диапазонахограничить высоту или перейти на QUERY

ARRAYFORMULA и Excel

В Excel функции ARRAYFORMULA нет. В Microsoft 365 и Excel 2021 формулы с диапазонами разворачиваются сами — это называется динамическими массивами, — а в старых версиях формулу массива вводили через Ctrl+Shift+Enter, и она получала фигурные скобки. Поэтому =ЕСЛИ(G2:G16="Оплачен"; F2:F16; 0) в новом Excel сработает без обёртки, а в Google Таблицах без неё — нет.

Логика условий одинакова на обеих платформах: умножение вместо И, сложение вместо ИЛИ. Подробно про ЕСЛИ, вложенные условия и ЕСЛИМН — в статье о функции ЕСЛИ в Excel.

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

Как протянуть формулу на весь столбец в Google Таблицах?

Можно дважды щёлкнуть по маркеру в углу ячейки — формула скопируется до конца данных. Но новые строки её не получат. Надёжнее одна формула ARRAYFORMULA в верхней ячейке с открытым диапазоном: =ARRAYFORMULA(ЕСЛИ(A2:A=""; ""; …)).

Что делает Ctrl+Shift+Enter в Google Таблицах?

Оборачивает вводимую формулу в ARRAYFORMULA. Это то же самое, что написать функцию руками.

Почему ARRAYFORMULA выдаёт #REF!?

Массиву не хватает места: ниже или правее формулы есть заполненные ячейки. Подсказка у ошибки называет ячейку, которая мешает.

Работает ли ВПР внутри ARRAYFORMULA?

Да. Передайте первым аргументом диапазон запросов, ВПР(C2:C; Клиенты!A:B; 2; ЛОЖЬ), и обёрните в ARRAYFORMULA — получится столбец ответов.

Можно ли использовать И и ИЛИ в ARRAYFORMULA?

Построчно — нет, они возвращают одно значение на весь массив. Пишите условия через умножение и сложение или используйте MAP с LAMBDA.

Итог

ARRAYFORMULA превращает формулу одной ячейки в формулу столбца: новые строки считаются сами, ничего не нужно протягивать. Ставьте её в строку заголовка вместе с подписью, берите открытые диапазоны с проверкой на пустоту, вместо И и ИЛИ перемножайте и складывайте условия, а столбец под массивом держите чистым. Нарастающий итог и номер заказа клиента — та же техника с СУММЕСЛИМН и СЧЁТЕСЛИМН по номеру строки. Когда таких столбцов становится много, а строк — десятки тысяч, расчёт пора переносить в запрос: нарастающий итог там пишется оконной функцией, о ней — в курсе «Продвинутый SQL», а основы — в курсе «SQL с нуля», первые 10 уроков бесплатно.

Продолжить чтение
Вся библиотека