Excel не считает логарифм: причины и решения для функций ЛОГ, ЛОГ10, LN

Вы ввели в ячейку Excel формулу =ЛОГ(100;10) или =LN(5), но вместо ожидаемого результата (2 и 1.609 соответственно) получаете ошибку #ЗНАЧ!, #ЧИСЛО! или пустое значение? Проблема не в ваших математических навыках — 90% случаев связаны с неправильным синтаксисом, региональными настройками или скрытыми символами в данных. Даже опытные пользователи упускают, что в Excel 2019 и новее функция LOG требует обязательного указания основания, а в старых версиях работала иначе.

Первое, что нужно проверить: не перепутали ли вы точку с запятой в аргументах функции. В русской версии Excel разделителем является точка с запятой (;), а не запятая — это самая частая причина ошибки #ЗНАЧ!. Второй по частоте баг — попытка вычислить логарифм от отрицательного числа или нуля (функции ЛОГ, ЛОГ10, LN работают только с положительными аргументами). Ниже разберём все возможные сценарии с пошаговыми решениями и примерами.

1. Ошибка #ЗНАЧ!: неправильный синтаксис функции

Если Excel выдаёт #ЗНАЧ! при расчёте логарифма, в 95% случаев виноват синтаксис. Рассмотрим типичные ошибки:

  • 🔹 Разделитель аргументов: В русской версии Excel используется ; (точка с запятой), а не , (запятая). Например, =ЛОГ(100,10) не сработает — нужно =ЛОГ(100;10).
  • 🔹 Отсутствует основание: В Excel 2019+ функция LOG требует двух аргументов: LOG(число; основание). В старых версиях второй аргумент был опциональным (по умолчанию 10).
  • 🔹 Лишние пробелы или символы: Проверьте, нет ли невидимых пробелов или кавычек в ячейках с данными. Например, если в ячейке A1 вместо числа 100 записано "100 " (с пробелом), формула вернёт ошибку.
  • 🔹 Использование английской функции в русской версии: Если вы скопировали формулу с английского источника, замените LOG на ЛОГ, а LN на ЛН.

Чтобы быстро проверить синтаксис, введите формулу вручную, не копируя из интернета. Например:

=ЛОГ(100;10)  → вернёт 2 (логарфм 100 по основанию 10)

=ЛН(EXP(1)) → вернёт 1 (натуральный логарифм от e)

⚠️ Внимание: В Excel Online и Excel для Mac разделителем аргументов может быть запятая (,) даже в русской версии. Проверьте региональные настройки в Файл → Параметры → Язык.
📊 Какую ошибку вы видите чаще всего при работе с логарифмами в Excel?
#ЗНАЧ!
#ЧИСЛО!
#ДЕЛ/0!
Формула возвращает 0
Другое

2. Ошибка #ЧИСЛО!: логарифм от отрицательного числа или нуля

Функции ЛОГ, ЛОГ10 и ЛН работают только с положительными числами. Если аргумент равен нулю или отрицателен, Excel вернёт #ЧИСЛО!. Например:

=ЛОГ(-10;10) → #ЧИСЛО! (аргумент -10 отрицательный)

=ЛН(0) → #ЧИСЛО! (аргумент 0)

Как исправить:

  • 📊 Проверьте исходные данные с помощью функции =ЕСЛИОШИБКА:
    =ЕСЛИОШИБКА(ЛОГ(A1;10); "Ошибка: число ≤ 0")
  • 🔍 Используйте =ЕЧИСЛО и =ЕПУСТО для валидации:
    =ЕСЛИ(И(A1>0; ЕЧИСЛО(A1)); ЛОГ(A1;10); "Некорректное значение")
  • 🛠 Если вам нужно обработать ноль, добавьте маленькое число (например, 0.0001) к аргументу:
    =ЛОГ(A1 + 0,0001; 10)
    Осторожно: это исказит результат, но устранит ошибку.
Функция Допустимый аргумент Пример ошибки Решение
ЛОГ(число; основание) число > 0, основание > 0 и ≠ 1 ЛОГ(-5;10) → #ЧИСЛО! Проверьте знак числа с =ЕСЛИ(A1>0;...)
ЛОГ10(число) число > 0 ЛОГ10(0) → #ЧИСЛО! Используйте =ЕСЛИОШИБКА для обработки
ЛН(число) число > 0 ЛН(-1) → #ЧИСЛО! Замените отрицательное число на его модуль: =ЛН(ABS(A1))

3. Ошибка #ДЕЛ/0!: основание логарифма равно 1

Математически логарифм по основанию 1 не определён (так как 1 в любой степени остаётся 1). Если второй аргумент функции ЛОГ равен 1, Excel вернёт #ДЕЛ/0!. Например:

=ЛОГ(100;1) → #ДЕЛ/0!

Решения:

  • 🔢 Проверьте значение основания с помощью =ЕСЛИ:
    =ЕСЛИ(B1<>1; ЛОГ(A1;B1); "Основание не может быть 1")
  • 📉 Если основание рассчитывается формулой, добавьте проверку:
    =ЕСЛИ(И(B1>0; B1<>1); ЛОГ(A1;B1); "Некорректное основание")

Также ошибка #ДЕЛ/0! может появляться, если основание равно 0 или отрицательное. Например:

=ЛОГ(100;0)  → #ДЕЛ/0!

=ЛОГ(100;-2) → #ЧИСЛО!

4. Пустое значение или текст в ячейке

Если формула возвращает пустое значение или #ЗНАЧ!, проверьте, не содержат ли исходные ячейки текст, пробелы или пустые значения. Например:

  • 📝 Ячейка выглядит пустой, но содержит пробел или неразрывный пробел (CHAR(160)).
  • 🔤 В ячейке записан текст (например, "100" вместо 100).
  • 🖼 Ячейка содержит ошибку (например, #Н/Д).

Как диагностировать:

  1. Выделите ячейку и посмотрите на строку формул — там могут быть скрытые символы.
  2. Используйте функцию =ТИП для проверки:
    =ТИП(A1)

    Если результат не 1 (число), данные некорректны.

  3. Примените =ЗНАЧЕН для преобразования текста в число:
    =ЛОГ(ЗНАЧЕН(A1);10)
⚠️ Внимание: Если данные импортированы из CSV или PDF, они часто сохраняются как текст. Используйте Текст по столбцам (меню Данные) для преобразования.

Убедитесь, что ячейка содержит число, а не текст|Проверьте отсутствие пробелов с помощью =ПРОБЕЛЫ(A1)=A1|Используйте =ЕЧИСЛО(A1) для валидации|Преобразуйте текст в число с =ЗНАЧЕН(A1)-->

5. Региональные настройки и языковые версии Excel

В разных версиях Excel функции логарифма могут называться по-разному, а разделители аргументов — отличаться. Это часто становится причиной ошибок при копировании формул из иностранных источников.

Язык Excel Функция ЛОГ Функция ЛН Разделитель аргументов
Русский ЛОГ ЛН ; (точка с запятой)
Английский LOG LN , (запятая)
Немецкий LOG LN ;
Французский LOG LN ;

Как изменить региональные настройки:

  1. Перейдите в Файл → Параметры → Язык.
  2. В разделе Язык редактирования выберите нужный язык (например, Русский).
  3. Перезапустите Excel, чтобы изменения вступили в силу.

Если вам нужно использовать английские функции в русской версии, добавьте перед именем функции знак равенства и английскую версию:

=LOG(100,10)  → сработает, если в настройках указан английский разделитель
Как быстро заменить запятые на точки с запятой в формулах

1. Нажмите Ctrl + H (Заменить).

2. В поле Найти введите , (запятая).

3. В поле Заменить на введите ; (точка с запятой).

4. Нажмите Заменить всё.

Внимание: это заменит все запятые в книге, включая текстовые данные!

6. Округление и точность вычислений

Иногда логарифм в Excel считается, но результат кажется неверным из-за автоматического округления или погрешностей вычислений. Например:

=ЛОГ(100;10) → возвращает 1,999999999 вместо 2

Причины и решения:

  • 🔢 Формат ячейки: Установите больше десятичных знаков. Выделите ячейку → Главная → Увеличить разрядность.
  • 📏 Погрешность вычислений: Excel использует приближённые алгоритмы. Для критичных расчётов используйте функцию =ТОЧНОСТЬ:
    =ТОЧНОСТЬ(ЛОГ(100;10); 10)
  • 🔄 Итеративные расчёты: Если логарифм используется в циклических ссылках, включите итерации в Файл → Параметры → Формулы → Включить итеративные вычисления.

Для проверки точности сравните результат Excel с калькулятором:

=ЛОГ(100;10)   → 2 (точный результат)

=ЛОГ(100,1;10) → 2,000004321 (погрешность из-за числа 100.1)

7. Альтернативные способы вычисления логарифма

Если стандартные функции не работают, попробуйте альтернативные методы:

  • 📈 Через экспоненту (для натурального логарифма):
    =ЛН(5)  → эквивалентно =EXP(ЛН(5))^0

    Но это не решит проблему, если исходная функция не работает.

  • 🔄 Через степень:
    =ЛОГ(8;2) → можно заменить на =ЛОГ(8)/ЛОГ(2)

    Это использует свойство логарифмов: logₐ(b) = ln(b)/ln(a).

  • 📊 С помощью Power Query:
    1. Загрузите данные в Power Query (Данные → Получить данные → Из таблицы/диапазона).
    2. Добавьте пользовательский столбец с формулой:
      = Math.Log([Число]) / Math.Log([Основание])
  • 💻 VBA-функция (для сложных случаев):
    Function CustomLog(num As Double, base As Double) As Double
    

    CustomLog = Log(num) / Log(base)

    End Function

    Вставьте этот код в редактор VBA (Alt + F11), затем используйте в Excel как =CustomLog(A1;B1).

  • ⚠️ Внимание: Метод с делением логарифмов (=ЛОГ(8)/ЛОГ(2)) может давать погрешности из-за ограниченной точности вычислений в Excel. Для высокоточных расчётов используйте специализированное ПО.

    FAQ: Частые вопросы о логарифмах в Excel

    Почему =ЛОГ(100;10) возвращает 2, а =LOG(100,10) — ошибку?

    В русской версии Excel функции пишутся на русском (ЛОГ), а разделитель аргументов — точка с запятой (;). LOG — это английская версия функции, которая требует запятой (,) и может не работать, если в настройках указан русский язык интерфейса.

    Можно ли в Excel вычислить логарифм от отрицательного числа?

    Нет, стандартные функции ЛОГ, ЛОГ10 и ЛН работают только с положительными числами. Для комплексных чисел потребуется надстройка Analysis ToolPak или внешнее ПО (например, Wolfram Alpha).

    Как посчитать логарифм по основанию 2 в Excel?

    Используйте формулу с делением натуральных логарифмов:

    =ЛН(A1)/ЛН(2)

    Или с 2019 года можно напрямую:

    =ЛОГ(A1;2)

    Почему результат логарифма отличается от калькулятора?

    Excel использует приближённые вычисления с плавающей запятой (IEEE 754), что может давать погрешности в 15–17 знаке после запятой. Чтобы уменьшить погрешность:

    • Увеличьте количество десятичных знаков в формате ячейки.
    • Используйте функцию =ТОЧНОСТЬ для округления.
    Как автоматически проверять корректность аргументов логарифма?

    Создайте пользовательскую функцию на VBA для валидации:

    Function SafeLog(num As Double, base As Double) As Variant
    

    If num <= 0 Or base <= 0 Or base = 1 Then

    SafeLog = "Ошибка: некорректные аргументы"

    Else

    SafeLog = Log(num) / Log(base)

    End If

    End Function

    Затем используйте в Excel как =SafeLog(A1;B1).