- Кратко
- Где встречается
- Самые частые причины
- Функции, которые чаще всего вызывают #ВЫЧИС!
- Почему возникает ошибка?
- Как диагностировать ошибку (Алгоритм)
- Разбор реальных примеров и пошаговые способы решения
- Пример 1: ФИЛЬТР возвращает пустой массив (самый частый случай)
- Пример 2: ПОСЛЕДОВ с нулевым аргументом
- Пример 3: СОРТ на пустом диапазоне
- Пример 4: ЛЯМБДА-функция с внутренней ошибкой
- Пример 5: УНИК на пустом диапазоне
- Пример 6: MAP или BYROW с некорректной логикой
- Ошибка #CALC! в Google Sheets
- FAQ: Часто задаваемые вопросы
- Профилактические меры
- Похожие ошибки
- Итоги
Кратко
| Параметр | Описание |
|---|---|
| Ошибка | #ВЫЧИС! |
| Что означает | Формула встречает ошибку вычисления в контексте динамического массива или функции. |
| Чаще всего возникает | ФИЛЬТР, СОРТ, УНИК, формулы массивов, ЛЯМБДА-функции |
| Сложность | ★★★★☆ |
| Исправляется | Да |
Где встречается
Ошибка #ВЫЧИС! — одна из самых молодых в семействе Excel, появилась вместе с полноценной поддержкой динамических массивов:
✓ Excel 365
✓ Excel 2024
✓ Excel 2021 — ограниченно, не для всех сценариев
✗ Excel 2019 — не поддерживает динамические массивы, ошибка не возникает
✗ Excel 2016 — ошибка отсутствует
✓ Google Sheets — частично, для функций вроде FILTER с пустым результатом
В англоязычных версиях отображается как #CALC! (Calculation error). Это специализированная ошибка для эпохи динамических массивов.
Самые частые причины
Ошибка #ВЫЧИС! почти всегда связана с динамическими массивами или новыми функциями:
✓ ФИЛЬТР возвращает пустой массив — условие фильтрации не пропускает ни одной строки, и функция не знает, что показать.
✓ СОРТ или УНИК на пустом диапазоне — нечего сортировать или нет уникальных значений.
✓ ЛЯМБДА-функция или тьюринг-конструкции — ошибка внутри пользовательской функции, созданной через ЛЯМБДА.
✓ Некорректный аргумент в формуле массива — формула ожидает массив, а получает одиночное значение.
✓ Функция ПОСЛЕДОВ (SEQUENCE) с нулевым или отрицательным аргументом — нельзя создать последовательность из 0 или -5 строк.
Функции, которые чаще всего вызывают #ВЫЧИС!
Ошибка привязана к новому поколению функций динамических массивов и пользовательских функций.
| Функция | Частота #ВЫЧИС! | Типичная причина |
|---|---|---|
| ФИЛЬТР (FILTER) | Очень часто | Ни одна строка не соответствует условию |
| СОРТ (SORT) | Часто | Пустой или некорректный диапазон |
| УНИК (UNIQUE) | Умеренно | Нет данных для извлечения уникальных |
| ПОСЛЕДОВ (SEQUENCE) | Часто | Аргумент «строки» = 0 или отрицательный |
| ЛЯМБДА (LAMBDA) | Умеренно | Ошибка внутри пользовательской функции |
| LET | Редко | Некорректное имя переменной или вычисление |
| MAP, SCAN, REDUCE, BYROW, BYCOL | Умеренно | Логическая ошибка внутри лямбда-выражения |
Почему возникает ошибка?
#ВЫЧИС! — это ошибка эпохи динамических массивов. До Excel 365 формулы возвращали одно значение в одну ячейку. Сейчас формула может «разлиться» на несколько ячеек (spill), и это создаёт принципиально новые ситуации.
Если представить классические ошибки (#ДЕЛ/0!, #Н/Д, #ССЫЛКА!) как проблемы с данными, то #ВЫЧИС! — это проблема с логикой массива: формула пытается выполнить операцию, которая не имеет смысла в контексте динамического диапазона.
Ключевые сценарии:
- Пустой результат фильтрации:
=ФИЛЬТР(A1:B10; C1:C10>100)— если ни одно значение в C не превышает 100, возвращать нечего. Раньше формула вернула бы 0 или#Н/Д, теперь —#ВЫЧИС!. - Невозможная последовательность:
=ПОСЛЕДОВ(0)— нельзя создать массив из 0 строк. - Лямбда-ошибка: пользовательская функция, созданная через
ЛЯМБДА, падает внутри — Excel оборачивает это в#ВЫЧИС!.
Эта ошибка — маркер того, что вы работаете с современным Excel и его новыми вычислительными возможностями.
Как диагностировать ошибку (Алгоритм)
- Проверьте, есть ли у формулы «разлив» (spill).
Выделите ячейку с ошибкой. Если формула окружена тонкой синей рамкой — это spill-формула. Ошибка связана с массивом. - Проверьте результат промежуточных вычислений.
Если формула содержитФИЛЬТР, временно замените условие наИСТИНА(=ФИЛЬТР(A1:B10; ИСТИНА)) и посмотрите, работает ли она вообще. - Проверьте аргументы на граничные значения.
ПОСЛЕДОВ(0)→#ВЫЧИС!.ПОСЛЕДОВ(1)→ работает. Если аргумент вычисляется из другой ячейки, проверьте, не приходит ли туда 0 или отрицательное число. - Для ЛЯМБДА — проверьте пошагово.
Замените лямбда-выражение на простую операцию и убедитесь, что входные данные корректны. - Используйте функцию ДИСП.В (SPLIT).
В 365-м Excel функция=ДИСП.В(формула)покажет, сколько ячеек занимает результат. Если 0 — это причина#ВЫЧИС!.
Разбор реальных примеров и пошаговые способы решения
Пример 1: ФИЛЬТР возвращает пустой массив (самый частый случай)
Задача: Отфильтровать заказы дороже 1000 ₽.
Формула: =ФИЛЬТР(A2:C100; B2:B100>1000)
Данные: В столбце B все значения ≤ 1000. Условие не выполняется ни для одной строки.
Результат: #ВЫЧИС!
Диагностика: Функции ФИЛЬТР нечего возвращать. Она не может вывести «ничего» — ей нужно хоть что-то.
Решение:
Используйте третий аргумент ФИЛЬТР — если_пусто. Он специально создан для этого случая:
=ФИЛЬТР(A2:C100; B2:B100>1000; "Нет заказов дороже 1000")
Можно вернуть пустую строку, ноль или любой другой заполнитель:
=ФИЛЬТР(A2:C100; B2:B100>1000; "")
=ФИЛЬТР(A2:C100; B2:B100>1000; {"Нет данных"; ""; ""}) // Для трёх столбцов
Пример 2: ПОСЛЕДОВ с нулевым аргументом
Задача: Создать нумерованный список на основе значения в ячейке D1.
Формула: =ПОСЛЕДОВ(D1)
Данные: D1 = 0 (пользователь ещё не ввёл количество).
Результат: #ВЫЧИС!
Диагностика: ПОСЛЕДОВ(0) не может создать массив. Минимальное количество строк — 1.
Решение:
Оберните формулу в проверку:
=ЕСЛИ(D1>0; ПОСЛЕДОВ(D1); "Введите количество")
Или через ЕСЛИОШИБКА:
=ЕСЛИОШИБКА(ПОСЛЕДОВ(D1); "")
Пример 3: СОРТ на пустом диапазоне
Задача: Отсортировать данные, которые появятся позже.
Формула: =СОРТ(A2:A100)
Данные: Диапазон A2:A100 полностью пуст.
Результат: #ВЫЧИС!
Диагностика: Нечего сортировать. Пустой диапазон даёт #ВЫЧИС!.
Решение:
=ЕСЛИОШИБКА(СОРТ(A2:A100); "Данные отсутствуют")
Пример 4: ЛЯМБДА-функция с внутренней ошибкой
Задача: Создать пользовательскую функцию для расчёта бонуса.
Формула:
=ЛЯМБДА(Продажи; ЕСЛИ(Продажи>10000; Продажи*0.1; Продажи*0.05))(A2)
Данные: A2 = «Нет данных» (текст).
Результат: #ВЫЧИС!
Диагностика: Лямбда пытается умножить текст на число. Внутри возникает #ЗНАЧ!, но в контексте ЛЯМБДА она оборачивается в #ВЫЧИС!.
Решение:
Добавьте обработку ошибок внутрь лямбды:
=ЛЯМБДА(Продажи; ЕСЛИОШИБКА(ЕСЛИ(Продажи>10000; Продажи*0.1; Продажи*0.05); "Некорректные данные"))(A2)
Пример 5: УНИК на пустом диапазоне
Задача: Получить список уникальных категорий.
Формула: =УНИК(B2:B100)
Данные: Столбец B пока не заполнен.
Результат: #ВЫЧИС!
Решение:
=ЕСЛИОШИБКА(УНИК(B2:B100); "Список пуст")
Пример 6: MAP или BYROW с некорректной логикой
Задача: Применить расчёт к каждой строке массива.
Формула: =BYROW(A2:C10; ЛЯМБДА(строка; МАКС(строка)/МИН(строка)))
Данные: В одной из строк все значения равны нулю. МИН(строка) = 0 → деление на ноль.
Результат: #ВЫЧИС! (вместо #ДЕЛ/0!, потому что контекст лямбда-массива).
Решение:
=BYROW(A2:C10; ЛЯМБДА(строка; ЕСЛИОШИБКА(МАКС(строка)/МИН(строка); "Деление на ноль")))
Ошибка #CALC! в Google Sheets
Google Sheets частично поддерживает концепцию #CALC!, но использует её иначе.
Что важно знать:
- В Google Sheets функция
FILTERна пустой результат возвращает#N/A, а не#CALC!. SORTна пустом диапазоне может вернуть пустоту или#VALUE!.SEQUENCE(0)в Google Sheets вызывает#VALUE!, а не#CALC!.- Лямбда-функции в Google Sheets (
LAMBDA,MAP,REDUCE) при внутренней ошибке могут вернуть#CALC!, но поведение нестабильно и зависит от контекста.
Пример для Google Sheets:
=FILTER(A2:C100; B2:B100>1000)
При пустом результате Google Sheets выдаст #N/A, и защита строится через IFNA:
=IFNA(FILTER(A2:C100; B2:B100>1000); "Нет данных")
Таким образом, #CALC! в Google Sheets — редкость. Основной массив сценариев покрывается другими ошибками. При переносе файлов между Excel и Google Sheets учитывайте эту разницу.
FAQ: Часто задаваемые вопросы
В: Чем #ВЫЧИС! отличается от #ЗНАЧ!?
О: #ЗНАЧ! — неправильный тип данных (текст вместо числа). #ВЫЧИС! — ошибка логики массива (пустой результат фильтрации, невозможная последовательность). Первое про тип, второе про структуру.
В: Можно ли просто игнорировать #ВЫЧИС! через ЕСЛИОШИБКА?
О: Да, и это частое решение. =ЕСЛИОШИБКА(ФИЛЬТР(...); "") — рабочий подход. Но лучше использовать встроенный третий аргумент ФИЛЬТР, так как он точнее и не скрывает другие возможные ошибки.
В: Почему формула работала вчера, а сегодня #ВЫЧИС!?
О: Скорее всего, изменились данные. Все значения перестали удовлетворять условию фильтрации, или диапазон стал пустым. Проверьте источник.
В: Как отловить #ВЫЧИС! отдельно от других ошибок?
О: Используйте функцию =ТИП.ОШИБКИ(ячейка). Для #ВЫЧИС! она возвращает число 14 (в Excel 365). Можно построить проверку: =ЕСЛИ(ТИП.ОШИБКИ(формула)=14; "Ошибка вычисления"; формула).
В: Влияет ли #ВЫЧИС! на другие формулы?
О: Да, как и любая ошибка, она «заражает» зависимые ячейки. Если A1 содержит #ВЫЧИС!, то =СУММ(A1) тоже вернёт #ВЫЧИС!.
Профилактические меры
- Всегда используйте третий аргумент ФИЛЬТР.
Это главная профилактика. Возьмите за правило: пишетеФИЛЬТР— добавляете; "Не найдено"в конце.excel =ФИЛЬТР(диапазон; условие; "Нет данных") - Проверяйте входные данные для ПОСЛЕДОВ.
Если количество строк дляПОСЛЕДОВберётся из другой ячейки, оберните формулу в=ЕСЛИ(строка>0; ПОСЛЕДОВ(строка); ""). - Обрабатывайте ошибки внутри ЛЯМБДА.
Лямбда-выражения должны быть самодостаточными и включатьЕСЛИОШИБКАдля всех вычислений. - Используйте функцию ДИСП.В для отладки.
Перед построением финальной формулы проверьте, сколько строк и столбцов возвращает промежуточный массив.=ДИСП.В(массив)покажет размерность. - Тестируйте на пустом диапазоне.
После создания формулы очистите исходный диапазон и проверьте, не падает ли формула в#ВЫЧИС!. Это имитирует ситуацию «данные ещё не внесены». - Не смешивайте старые и новые функции без проверки.
Комбинация ВПР с ФИЛЬТР или СОРТ с СУММЕСЛИ может дать неожиданный#ВЫЧИС!. Проверяйте каждый компонент по отдельности.
Похожие ошибки
Ошибка #ВЫЧИС! связана с вычислениями в массивах и новых функциях. Если вы столкнулись с ней, возможно, вам пригодятся эти руководства:
| Ошибка | Описание |
|---|---|
| #ЗНАЧ! | Неправильный тип данных в аргументе функции |
| #Н/Д | Значение не найдено функциями поиска (ВПР, ПОИСКПОЗ) |
| #ПОЛЕ! | Ссылка на несуществующее поле в типе данных или массиве |
| #ДЕЛ/0! | Деление на ноль или пустую ячейку |
| #ССЫЛКА! | Неверная ссылка на диапазон (удалены данные, выход за границы) |
| #ЧИСЛО! | Числовое значение выходит за допустимые пределы |
| #ИМЯ? | Неизвестное имя функции или диапазона |
Итоги
Ошибка #ВЫЧИС! — это продукт современного Excel, неразрывно связанный с динамическими массивами и лямбда-функциями. Её главная причина — формула пытается вычислить массив, но результат оказывается пустым или логически невозможным. В отличие от классических ошибок, #ВЫЧИС! лечится не исправлением данных, а добавлением обработчика пустого результата: третий аргумент ФИЛЬТР, проверка аргументов ПОСЛЕДОВ, обёртка в ЕСЛИОШИБКА. Если вы активно используете Excel 365 — знание этой ошибки обязательно. Если работаете в Google Sheets — будьте готовы к тому, что те же сценарии вызовут другие ошибки.








