Excel и Google Workspace / Формулы Google Таблиц
Google Sheets: ARRAYFORMULA для массовых вычислений
ARRAYFORMULA автоматически применяет формулу к диапазону без копирования вниз по каждой строке, сохраняя логику в одной ячейке. ARRAYFORMULA распространяет вычисление на диапазон и убирает необходимость копировать формулу вниз.
Формула
Обозначения
- $array_expression$
- выражение, которое применяется к диапазону
- $input_range$
- исходный диапазон
- $output_range$
- динамический развернутый результат
Условия применения
- В целевой колонке не должно быть уже заполненных формулами данных ниже стартовой ячейки.
- Аргументы должны быть массивами одинаковой высоты.
- В формуле часто используют IF/IFERROR для защиты от ошибок деления.
Ограничения
- Не всегда подходит для условно-структурированных таблиц с пустотами и смешанными типами данных.
- Чрезмерно большие диапазоны могут заметно замедлять пересчёт.
- Если внутри диапазона есть ручные значения в местах spill-результата, формула перестаёт работать.
Подробное объяснение
ARRAYFORMULA превращает обычную формулу в векторную: все операции применяются поэлементно к массивам и возвращают массив результатов.
Смысл страницы — показать рабочий сценарий, ограничения и поведение формулы в живой таблице. Ее используют для расчета суммы по каждой строке, формирования текстовых ключей, массовых проверок условий и автоматического заполнения новых строк. Для таблиц, которые постоянно пополняются, это экономит время и снижает риск, что формулу забыли протянуть. В отличие от простого перечисления аргументов, здесь важно понимать, как формула меняет диапазон результата, что происходит при пустых строках и как она сочетается с другими функциями Google Таблиц.
Как пользоваться формулой
- Вставьте формулу в первую ячейку нужного столбца.
- Сформируйте формулу так, чтобы все входные диапазоны имели одинаковые размеры.
- Добавьте проверку ошибок по делению на ноль и пустые строки.
- Оставьте «свободную» ячейку под весь возможный spill-массив.
Историческая справка
ARRAYFORMULA упрощает переход от «копипастного» подхода к формульной обработке массивов и уменьшает количество служебных формул.
Функция рассматривается как часть экосистемы Google Sheets и Google Docs Editors. Исторический блок здесь полезен не как биография автора, а как контекст появления облачных таблиц, совместной работы и динамических массивов, которые изменили привычный способ строить отчеты.
Историческая линия формулы
Подробная документация по ARRAYFORMULA опубликована в официальной справке Google Sheets. У функций Google Таблиц нет корректного единоличного автора. Их развитие связано с продуктовой эволюцией электронных таблиц, SQL-подобных запросов, динамических массивов и облачной совместной работы, поэтому атрибуция описывает технологическую линию, а не персональное открытие.
Пример
Для столбца B (кол-во) и C (выручка) формула `=ARRAYFORMULA(IF(B2:B200>0, C2:C200/B2:B200, ""))` рассчитает средний чек по всем строкам. Ее используют для расчета суммы по каждой строке, формирования текстовых ключей, массовых проверок условий и автоматического заполнения новых строк. Для таблиц, которые постоянно пополняются, это экономит время и снижает риск, что формулу забыли протянуть.
Частая ошибка
Классическая ошибка — использовать обычную ссылку на одну ячейку вместо диапазона внутри IF/ARRAYFORMULA, из-за чего вторая колонка вообще не заполняется. Главная ошибка — поставить формулу туда, где ниже уже есть данные: динамический результат не сможет развернуться. Также нужно помнить, что не все функции одинаково хорошо работают с массивами без дополнительной обертки.
Практика
Задачи с решением
Процент завершения задач
Условие. В B — выполнено, в C — запланировано.
Решение. =ARRAYFORMULA(IF(C2:C100=0, "", B2:B100/C2:C100))
Ответ. =ARRAYFORMULA(IF(C2:C100=0, "", B2:B100/C2:C100))
Разбивка суммы на 10% и 90%
Условие. В B — сумма чека.
Решение. =ARRAYFORMULA(IF(B2:B100="", "", B2:B100*{0.1,0.9}))
Ответ. =ARRAYFORMULA(IF(B2:B100="", "", B2:B100*{0.1,0.9}))
Дополнительные источники
- Google Docs Editors Help: ARRAYFORMULA function - https://support.google.com/docs/answer/3093275?hl=en
- Google Docs Editors Help: IFERROR function - https://support.google.com/docs/answer/3093311?hl=en
- Google Docs Editors Help: Google Sheets function list - https://support.google.com/docs/table/25273?hl=en
- Google Docs Editors Help: Google Sheets function list
- Google Docs Editors Help: function documentation for the corresponding Google Sheets function
Связанные формулы
Excel и Google Workspace
Google Sheets: IFERROR для аккуратного lookup
IFERROR делает поисковые формулы дружелюбными: ошибки совпадения заменяются понятным сообщением, не ломая отчёт. IFERROR делает поисковые формулы понятнее для пользователя, если ключ не найден или источник временно недоступен.
Excel и Google Workspace
Google Sheets: динамические диапазоны с INDIRECT
INDIRECT даёт гибкость для построения диапазонов из текста. В связке с COUNTA удобно подстраиваться под длину данных. Динамические диапазоны позволяют формуле подстраиваться под растущий список строк или выбранное имя листа.
Excel и Google Workspace
QUERY в Google Таблицах: базовый SELECT
QUERY выполняет запрос к диапазону Google Таблиц на языке, похожем на SQL. Базовый SELECT выбирает нужные столбцы и строки по условию.