При попытке ввести формулу массива в Microsoft Excel или Google Таблицах пользователи часто сталкиваются с ошибкой #ЗНАЧ! или #ЧИСЛО!, даже если синтаксис кажется верным. Проблема кроется в неправильном завершении ввода: классические формулы массива (не динамические!) требуют обязательного нажатия Ctrl+Shift+Enter вместо обычного Enter. Если вы ввели =СУММ(A1:A10*B1:B10) и получили ошибку — это первый признак, что формула не была подтверждена как массивная.
Формулы массива позволяют выполнять операции над целыми диапазонами данных без промежуточных вычислений, но их синтаксис и правила ввода отличаются от стандартных функций. В современных версиях Excel 365 и Excel 2021 появились динамические массивы, которые автоматически"проливаются" на сосдние ячейки, но для совместимости с устаревшими версиями (Excel 2010–2019) по-прежнему актуальны классические массивы с ручным подтверждением.
В этой статье разберём, как правильно вводить формулы массива в разных версиях Excel, какие ошибки возникают чаще всего, и почему иногда вместо результата вы видите фигурные скобки {...} в строке формул. Также покажем, как преобразовать классический массив в динамический и обратно.
Чем формулы массива отличаются от обычных
Основное отличие — способ обработки данных. Обычная формула, например =СУММ(A1:A10), работает с каждым значением диапазона по отдельности, складывая их последовательно. Формула массива, например =СУММ(A1:A10*B1:B10), сначала выполняет умножение всех пар значений (A1×B1, A2×B2,...), а затем суммирует результаты. Без массива пришлось бы создавать вспомогательный столбец с промежуточными вычислениями.
Ключевые особенности формул массива:
- 🔹 Обработка диапазонов: работают сразу с несколькими ячейками, а не с одной.
- 🔹 Специальный ввод: в старых версиях Excel требуют нажатия
Ctrl+Shift+Enter(в новых — опционально). - 🔹 Фигурные скобки: в строке формул отображаются как
{=СУММ(A1:A10*B1:B10)}(не вводите их вручную!). - 🔹 Динамическое распространение: в Excel 365 могут автоматически заполнять соседние ячейки (функция"проливания").
Пример: если нужно посчитать сумму произведений цен и количества товаров, обычная формула потребует дополнительного столбца для умножения, а формула массива сделает это в одной ячейке: =СУММПРОИЗВ(A1:A10;B1:B10) или =СУММ(A1:A10*B1:B10) (введена как массив).
⚠️ Внимание: Если после ввода формулы массива вы видите фигурные скобки в строке формул — это нормально. Но если скобки появились в самой ячейке (например, {=СУММ(...)} отображается как текст), значит, вы ввели их вручную. Так делать нельзя! Скобки добавляет Excel автоматически при правильном вводе.
Как ввести классическую формулу массива (Excel 2010–2019)
В версиях Excel до 2021 года (нединамические массивы) алгоритм ввода строго регламентирован:
- Выделите ячейку, в которую нужно вставить формулу.
- Введите формулу, например
=СУММ(A1:A5*B1:B5)или=НАИБОЛЬШИЙ(A1:A10;{1;2;3}). - Не нажимайте Enter! Вместо этого используйте комбинацию
Ctrl+Shift+Enter(CSE). - Excel автоматически обернёт формулу в фигурные скобки:
{=СУММ(A1:A5*B1:B5)}.
Если вы забудете нажать Ctrl+Shift+Enter, формула либо вернёт ошибку #ЗНАЧ!, либо посчитает только первое значение диапазона. Например, =A1:A5*B1:B5 без CSE выдаст результат только для A1*B1, игнорируя остальные строки.
Выделили одну ячейку для результата|
Ввели формулу без фигурных скобок|
Нажали Ctrl+Shift+Enter (не просто Enter)|
В строке формул появились фигурные скобки {=...}|-->
Примеры классических формул массива:
| Задача | Формула (вводится без {}) | Результат |
|---|---|---|
| Сумма произведений | =СУММ(A1:A5*B1:B5) |
Сумма A1×B1 + A2×B2 +... + A5×B5 |
| Количество непустых ячеек | =СЧЁТЕСЛИ(A1:A10;"<>""") |
Число заполненных ячеек в A1:A10 |
| Топ-3 значения | =НАИБОЛЬШИЙ(A1:A10;{1;2;3}) |
Три в виде массива |
| Уникальные значения | =ИНДЕКС(A1:A10;ПОИСКПОЗ(0;СЧЁТЕСЛИ($A$1:A1;A1:A10);0)) |
Список уникальных значений из A1:A10 |
⚠️ Внимание: Если после ввода формулы массива вы редактируете её (например, исправляете диапазон), обязательно снова нажмите Ctrl+Shift+Enter. Иначе Excel удалит фигурные скобки, и формула перестанет работать как массивная.
Динамические массивы в Excel 365 и 2021: что изменилось
Начиная с Excel 365 (и Excel 2021), Microsoft внедрила динамические массивы — формулы, которые автоматически"проливаются" на соседние ячейки. Теперь для большинства операций не нужно нажимать Ctrl+Shift+Enter, а результаты отображаются в нескольких ячейках сразу.
Примеры динамических формул:
- 📌
=УНИК(A1:A10)— возвращает список уникальных значений (заполняет столько ячеек, сколько нужно). - 📌
=СОРТ(A1:B10;2;-1)— сортирует таблицу по второму столбцу по убыванию. - 📌
=ФИЛЬТР(A1:B10;A1:A10="Да")— фильтрует строки, где в столбце A стоит"Да".
Как отличить динамический массив от классического:
| Признак | Классический массив (CSE) | Динамический массив (Excel 365) |
|---|---|---|
| Ввод | Требует Ctrl+Shift+Enter |
Достаточно Enter |
| Фигурные скобки | Отображаются в строке формул | Не отображаются |
| Распространение | Результат в одной ячейке | Автоматически заполняет соседние ячейки |
| Редактирование | Нужно снова нажать CSE | Редактируется как обычная формула |
Если вам нужно преобразовать динамический массив в классический (например, для совместимости со старыми версиями), оберните формулу в ИНДЕКС:
=ИНДЕКС(ФИЛЬТР(A1:B10;A1:A10="Да");1;1)
Это заставит формулу вернуть только первое значение массива (аналог старого поведения).
Типичные ошибки и как их исправить
Даже опытные пользователи допускают ошибки при работе с формулами массива. Вот самые распространённые:
- Забыли нажать
Ctrl+Shift+Enter(в старых версиях): формула возвращает#ЗНАЧ!или считает только первую ячейку.
Решение: выделите ячейку с формулой, нажмитеF2, затемCtrl+Shift+Enter. - Разный размер диапазонов: например,
=СУММ(A1:A10*B1:B5)(10 строк × 5 строк).
Решение: убедитесь, что все диапазоны имеют одинаковое количество строк и столбцов. - Фигурные скобки введены вручную: Excel воспринимает формулу как текст.
Решение: удалите скобки, введите формулу заново и нажмите CSE. - Блокировка диапазонов: если в формуле есть абсолютные ссылки (например,
$A$1:$A$10), но нужно, чтобы они изменялись при копировании.
Решение: используйте смешанные ссылки (A$1:A$10).
Ошибка #ЧИСЛО! часто возникает, когда результат формулы массива не помещается в одну ячейку. Например, =ТРАНСП(A1:C3) пытается вернуть матрицу 3×3, но выделили только одну ячейку. В классическом Excel это ошибка, а в Excel 365 формула автоматически"прольётся" на 9 ячеек.
Практические примеры формул массива
Рассмотрим реальные задачи, которые удобно решать с помощью массивов.
1. Сумма по условию без вспомогательного столбца
Задача: посчитать сумму значений в столбце B, если соответствующие ячейки в столбце A равны"Да".
=СУММ((A1:A10="Да")*B1:B10)
Как это работает:
- 🔢
(A1:A10="Да")возвращает массив{ИСТИНА;ЛОЖЬ;ИСТИНА;...}. - 🔢 При умножении на
B1:B10ИСТИНАпреобразуется в1,ЛОЖЬ— в0. - 🔢
СУММскладывает только ненулевые значения.
2. Поиск максимального значения по условию
Задача: найти максимальное значение в столбце B, если в столбце A стоит"Готово".
=МАКС((A1:A10="Готово")*B1:B10)
3. Подсчёт уникальных значений
Задача: посчитать количество уникальных элементов в диапазоне A1:A10.
=СУММ(1/СЧЁТЕСЛИ(A1:A10;A1:A10))
Формулу нужно ввести как массив (Ctrl+Shift+Enter).
4. Транспонирование диапазона
Задача: преобразовать горизонтальный диапазон A1:C1 в вертикальный.
=ТРАНСП(A1:C1)
В Excel 365 результат автоматически займёт 3 ячейки по вертикали. В старых версиях нужно выделить 3 ячейки до ввода формулы, затем нажать CSE.
Почему формула =СУММПРОИЗВ лучше, чем =СУММ(A1
A10*B1:B10)?:
Функция СУММПРОИЗВ оптимизирована для работы с массивами и не требует нажатия Ctrl+Shift+Enter даже в старых версиях Excel. Она быстрее обрабатывает большие диапазоны и реже выдаёт ошибки. Однако у неё есть ограничение: все диапазоны должны быть одинакового размера, иначе результат будет некорректным.
Как редактировать и удалять формулы массива
Редактирование формул массива имеет нюансы, особенно в старых версиях Excel:
- Изменение формулы:
- Выделите ячейку с формулой.
- Нажмите
F2для редактирования. - Внесите изменения и обязательно нажмите
Ctrl+Shift+Enter(в Excel 2010–2019).
- Удаление формулы:
- Выделите ячейку и нажмите
Delete. - Если формула"пролилась" на несколько ячеек (динамический массив), удалите только первую — остальные очистятся автоматически.
- Выделите ячейку и нажмите
- Копирование формулы:
- В старых версиях: скопируйте ячейку, выделите целевой диапазон и вставьте. Затем нажмите
Ctrl+Shift+Enter. - В Excel 365: копирование работает как с обычными формулами.
- В старых версиях: скопируйте ячейку, выделите целевой диапазон и вставьте. Затем нажмите
Важно: Если вы удаляете или изменяете часть диапазона, на который ссылается формула массива, Excel может не обновить результат автоматически. В таких случаях принудительно пересчитайте лист (F9) или откройте/закройте файл.
⚠️ Внимание: В динамических массивах (Excel 365) нельзя удалить часть"пролитого" результата. Например, если формула=УНИК(A1:A10)вернула 5 значений, а вы удалите 3-ю ячейку, Excel покажет ошибку#РАЗМ!("размерность не совпадает"). Чтобы изменить результат, редактируйте саму формулу.
Формулы массива в Google Таблицах
Google Таблицы поддерживают формулы массива, но с некоторыми отличиями от Excel:
- 🔹 Ввод: не требуется
Ctrl+Shift+Enter— достаточно нажатьEnter. - 🔹 Синтаксис: используются те же функции, но некоторые (например,
СУММПРОИЗВ) работают иначе. - 🔹 Распространение: аналогично динамическим массивам в Excel 365 — результат автоматически занимает нужное количество ячеек.
- 🔹 Ошибки: вместо
#ЗНАЧ!может появляться#ERROR!с пояснением.
Примеры:
=ARRAYFORMULA(SUM(A1:A10*B1:B10)) // Аналог СУММПРОИЗВ
=TRANSPOSE(A1:C1) // Транспонирование
=UNIQUE(A1:A10) // Уникальные значения
В Google Таблицах для явного указания массива можно использовать функцию ARRAYFORMULA, но часто она не требуется. Например, =A1:A5*B1:B5 автоматически станет формулой массива.
FAQ: Частые вопросы по формулам массива
Почему моя формула массива возвращает #ЗНАЧ!?
Наиболее вероятные причины:
- Вы забыли нажать
Ctrl+Shift+Enter(в Excel 2010–2019). - Диапазоны в формуле имеют разный размер (например,
A1:A10*B1:B5). - Формула содержит текстовые значения там, где ожидаются числа.
- Вы ввели фигурные скобки вручную — их добавляет Excel автоматически.
Проверьте каждый пункт и исправьте ошибку.
Как преобразовать классический массив в динамический (Excel 365)?
В большинстве случаев достаточно:
- Удалить фигурные скобки из формулы (если они есть).
- Нажать
Enter— Excel автоматически преобразует её в динамический массив.
Если формула не"проливается", оберните её в функции для работы с массивами, например =ИНДЕКС(ваша_формула).
Можно ли использовать формулы массива в сводных таблицах?
Нет, сводные таблицы не поддерживают формулы массива напрямую. Однако вы можете:
- Создать вспомогательный столбец с формулой массива, а затем использовать его в сводной таблице.
- Использовать
Вычисляемое полев сводной таблице (но это не формула массива).
Как сделать формулу массива, которая работает в Excel 2010 и Excel 365?
Для совместимости:
- Избегайте функций, которые возвращают динамические массивы (
УНИК,ФИЛЬТРи т.д.). - Используйте классические функции (
СУММПРОИЗВ,ИНДЕКС+ПОИСКПОЗ). - Проверяйте формулы в обеих версиях.
Пример универсальной формулы для подсчёта уникальных значений:
=СУММ(1/СЧЁТЕСЛИ(A1:A10;A1:A10))
Введите её как массив (Ctrl+Shift+Enter) в Excel 2010–2019.
Почему динамический массив не обновляется при изменении данных?
Возможные причины:
- Отключён автоматический пересчёт (
Формулы → Параметры вычислений → Автоматически). - Формула ссылается на закрытую книгу (обновите ссылки).
- В диапазоне есть ошибки (например,
#ДЕЛ/0!), которые блокируют пересчёт.
Решение: нажмите F9 для принудительного пересчёта или проверьте настройки в Файл → Параметры → Формулы.