NUM в Excel: что означает ошибка #NUM! и как её устранить

Ошибка #NUM! в Microsoft Excel или Google Таблицах сигнализирует о проблеме с числовыми вычислениями в формуле — например, когда функция пытается обработать недопустимое значение, выйти за пределы диапазона или выполнить невозможную математическую операцию. Чаще всего эта ошибка возникает при работе с СТЕПЕНЬ(), КОРЕНЬ(), ЛОГ(), а также в финансовых функциях вроде НОРМ.РАСП() или ВСД(), где аргументы выходят за рамки допустимых значений. Если вы видите #NUM! в ячейке, это не просто "сбой программы", а конкретное указание на то, что Excel не может вычислить результат из-за некорректных входных данных или логической ошибки в формуле.

В отличие от ошибок #ДЕЛ/0! (деление на ноль) или #ЗНАЧ! (неверный тип данных), #NUM! всегда связана с невозможностью выполнить математическую операцию — будь то извлечение корня из отрицательного числа, переполнение памяти при вычислении слишком большого значения или использование недопустимого аргумента в статистических функциях. Например, формула =КОРЕНЬ(-16) вернёт #NUM!, потому что квадратный корень из отрицательного числа в реальных числах не существует (для этого нужны комплексные числа, которые Excel не поддерживает по умолчанию).

Что именно означает ошибка #NUM! в Excel

Термин NUM в контексте Excel — это сокращение от английского "numeric" (числовой), и ошибка указывает на проблему с числовыми вычислениями. Она появляется в трёх основных случаях:

  • 🔢 Некорректный аргумент функции: например, отрицательное число в ЛОГ() или значение вне диапазона [0;1] в НОРМ.ОБР().
  • 📏 Переполнение диапазона: результат вычислений превышает максимальное допустимое число в Excel (~1.8×10308) или слишком мал.
  • 🔄 Итеративные расчёты не сходятся: в формулах с циклическими ссылками или при включённом режиме итераций (Файл → Параметры → Формулы).

Важно понимать, что #NUM! не равнозначна ошибке #ЧИСЛО! (которая появляется при преобразовании текста в число). Первая связана с математической невозможностью операции, вторая — с несовместимостью типов данных. Например, формула =СУММ("текст";5) вернёт #ЗНАЧ!, а =СТЕПЕНЬ(999;999)#NUM! из-за переполнения.

Топ-5 причин появления #NUM! и как их исправить

Разберём самые распространённые сценарии, при которых Excel выдаёт эту ошибку, и способы их устранения.

ПричинаПример ошибкиКак исправить
Отрицательное число под корнем или логарифмом=КОРЕНЬ(-25)
=ЛОГ(-100)
Используйте АБС() для модуля или проверьте исходные данные на отрицательные значения.
Слишком большое/малое число=ФАКТР(171) (превышает 1.8×10308)Разбейте вычисления на части или используйте логарифмы для больших чисел.
Некорректные аргументы в финансовых функциях=ВСД({-100;200;-300}) (неоднородные знаки)Убедитесь, что все платежи имеют одинаковый знак (например, только отрицательные).
Ошибка в матричных вычислениях=МУМНОЖ(A1:B2;C1:D3) (несовпадение размеров)Проверьте, чтобы количество столбцов первой матрицы совпадало с количеством строк второй.
Циклические ссылки без итераций=A1+1, где A1 ссылается сама на себяВключите итерации (Файл → Параметры → Формулы → Включить итеративные вычисления).

Если ошибка возникает в сложной формуле с несколькими функциями, разделите её на части, чтобы выявить проблемный фрагмент. Например, вместо =ЕСЛИОШИБКА(СТЕПЕНЬ(A1;B1);"Ошибка") проверьте сначала =СТЕПЕНЬ(A1;B1) отдельно.

📊 С какой функцией у вас чаще всего возникает ошибка #NUM!?
СТЕПЕНЬ/КОРЕНЬ
ЛОГ/ЛОГ10
Финансовые (ВСД, ПС и др.)
Матричные (МУМНОЖ, МОБР)
Другое

Как найти все ячейки с #NUM! на листе

Ручный поиск ошибок в больших таблицах неэффективен. Вот как автоматизировать процесс:

  1. Нажмите Ctrl + F, в поле поиска введите #NUM! и нажмите "Найти все".
  2. Используйте Условное форматирование:
    • Выделите диапазон → Главная → Условное форматирование → Создать правило.
    • Выберите "Форматировать только ячейки, которые содержат".
    • В поле "Форматировать только ячейки с" выберите "Ошибки" и укажите цвет заливки.
  • Для анализа зависимостей используйте Формулы → Зависимости формул → Влияющие ячейки.
  • Если ошибок много, экспортируйте данные в Google Таблицы и используйте функцию =ФИЛЬТР() для отображения только проблемных строк:

    =ФИЛЬТР(A1:Z100; ЕОШИБКА(ПОИСК("#NUM!"; ТЕКСТ(A1:Z100))))

    1. Проверьте исходные данные на отрицательные значения (для корней/логарифмов).

    2. Убедитесь, что аргументы финансовых функций имеют корректные знаки.

    3. Разбейте сложные формулы на промежуточные этапы.

    4. Включите итерации, если есть циклические ссылки.

    5. Проверьте размеры матриц в функциях МУМНОЖ или МОБР.

    -->

    Особенности ошибки #NUM! в Google Таблицах

    В Google Sheets ошибка #NUM! ведёт себя аналогично Excel, но есть нюансы:

    • 📊 Большая точность: Google Таблицы поддерживают числа до 1.8×10308, как и Excel, но некоторые функции (например, POWER) могут выдавать #NUM! при меньших значениях из-за особенностей JavaScript.
    • 🔄 Итерации по умолчанию выключены: Чтобы включить, перейдите в Файл → Настройки вычислений и установите флажок "Итеративные вычисления".
    • 📈 Отсутствует функция БДРАЗМАХ: В финансовых расчётах используйте XNPV вместо ЧИСТНЗ.

    В Google Таблицах также есть полезная функция =ИНФОРМ("точность"), которая возвращает текущую точность вычислений (по умолчанию 15 знаков). Если ваши расчёты требуют большей точности, это может быть причиной #NUM!.

    Как в Google Таблицах имитировать комплексные числа (для корней из отрицательных значений)

    Используйте формулу вида =КОМПЛЕКС(0; КОРЕНЬ(ABS(A1))) & "i", где A1 — отрицательное число. Это вернёт текстовое представление комплексного числа (например, "5i" для A1=-25).

    Продвинутые методы обработки #NUM!

    Для опытных пользователей есть способы не только исправить ошибку, но и интегрировать её обработку в логику таблицы:

    1. Замена на ноль или пустую строку:
      =ЕСЛИОШИБКА(Ваша_формула; 0)
      

      =ЕСЛИОШИБКА(Ваша_формула; "")

    2. Условная логика с ЕОШИБКА:
      =ЕСЛИ(ЕОШИБКА(КОРЕНЬ(A1)); "Отрицательное число"; КОРЕНЬ(A1))
    3. Использование ДВССЫЛ для динамических проверок:
      =ЕСЛИ(ЕОШИБКА(ДВССЫЛ("A"&1)); "Ошибка в A1"; ДВССЫЛ("A"&1))

    Для финансовых моделей полезно комбинировать ЕСЛИОШИБКА с проверкой знаков:

    =ЕСЛИОШИБКА(ВСД(A1:A10);
    

    ЕСЛИ(СУММЕСЛИ(A1:A10; "<0")=АБС(СУММ(A1:A10)); "Некорректные потоки"; "Другая ошибка");

    ВСД(A1:A10))

    Частые ошибки при работе с #NUM! и как их избежать

    Даже опытные пользователи иногда упускают ключевые детали. Вот типичные ловушки:

    ⚠️ Внимание: Функция СТЕПЕНЬ() может возвращать #NUM! не только для отрицательных оснований, но и для дробных степеней (например, =СТЕПЕНЬ(-8; 1/3)). В этом случае результат — комплексное число, которое Excel не отображает.
    • Игнорирование единиц измерения: Например, в формуле =СТЕПЕНЬ(1000; 2) вы забыли, что 1000 — это метры, а результат (1 000 000) должен быть в м². Проверяйте размерности!
    • 🔍 Скрытые символы в данных: Ячейка может выглядеть как число, но содержать неразрывный пробел или апостроф. Используйте =ЧИСТ() для очистки.
    • 📉 Неучтённые граничные условия: В функции НОРМ.РАСП() аргумент "интегральная" должен быть ИСТИНА или ЛОЖЬ. Опечатка приведёт к #NUM!.

    Ещё одна распространённая ошибка — использование РАДИАНЫ() или ГРАДУСЫ() для преобразования углов без проверки диапазона. Например, =СИН(РАДИАНЫ(1000)) вернёт корректное значение, но если вы ожидали градусы от 0 до 360, результат будет бессмысленным (хотя и без #NUM!).

    Альтернативы функциям, вызывающим #NUM!

    Если стандартные функции Excel не подходят для вашей задачи, рассмотрите эти обходные пути:

    Проблемная функцияАльтернативаПример
    КОРЕНЬ(отрицательное)Использовать АБС() + текстовое пояснение=ЕСЛИ(A1<0; "Корень из " & A1 & " = " & КОРЕНЬ(ABS(A1)) & "i"; КОРЕНЬ(A1))
    ФАКТР(большое число)Логарифм факториала (ЛН(ФАКТР()))=ЕСЛИ(A1>170; EXP(ГАММАЛН(A1+1)); ФАКТР(A1))
    МОБР() для вырожденной матрицыПсевдообратная матрица (требует VBA или Power Query)См. документацию по МОБР.ПСЕВДО() в надстройках.
    ВСД() с некорректными потокамиРучной расчёт с проверкой знаков=ЕСЛИ(СУММЕСЛИ(потоки; "<0")=0; "Нет отрицательных потоков";ВСД(потоки))

    Для работы с комплексными числами в Excel придётся использовать надстройки (например, Analysis ToolPak) или переходить на специализированное ПО вроде MATLAB или Python с библиотекой numpy.

    Как в Excel эмулировать комплексные числа без надстроек

    1. Создайте две колонки: "Реальная часть" и "Мнимая часть".

    2. Для операций (сложение, умножение) используйте формулы:

    - Сложение: =A1+C1 (реальная) и =B1+D1 (мнимая).

    - Умножение: =(A1*C1)-(B1*D1) (реальная), =(A1*D1)+(B1*C1) (мнимая).

    FAQ: Частые вопросы про #NUM! в Excel

    Почему формула =ЛОГ(0) возвращает #NUM!, а не бесконечность?

    Логарифм нуля математически стремится к минус бесконечности, но Excel не поддерживает бесконечные значения в арифметических операциях. Поэтому вместо -БЕСКОНЕЧНОСТЬ() (которая существует как функция) возвращается ошибка.

    Можно ли отключить появление #NUM! для конкретной формулы?

    Да, оберните формулу в ЕСЛИОШИБКА():

    =ЕСЛИОШИБКА(Ваша_формула; "Замена")

    Например, =ЕСЛИОШИБКА(КОРЕНЬ(A1); "Некорректное значение").

    Почему =СТЕПЕНЬ(-2; 0.5) даёт #NUM!, хотя математически корень существует?

    Excel не поддерживает комплексные числа по умолчанию. Корень из отрицательного числа — это комплексное число (например, √−2 = 1.414i). Для работы с такими числами нужны надстройки или внешние инструменты.

    Как исправить #NUM! в функции ИНДЕКС()?

    Ошибка возникает, если индекс выходит за пределы диапазона. Проверьте:

    • Число строк/столбцов в аргументах.
    • Отсутствие пустых ячеек в диапазоне.

    Пример исправления: =ЕСЛИ(ИЛИ(A1>СЧЁТЗ(B:B); A1<1); "Ошибка"; ИНДЕКС(B:B; A1)).

    В чём разница между #NUM! и #ДЕЛ/0!?

    #NUM! — ошибка числовых вычислений (невозможная операция), а #ДЕЛ/0! — попытка деления на ноль. Первая требует проверки аргументов функции, вторая — проверки делителя.