Как интерполировать числа в Excel: 5 работающих методов с примерами

Если в вашей таблице Excel отсутствуют промежуточные значения между известными данными (например, температурные показатели за пропущенные часы или финансовые метрики за кварталы без ежемесячной разбивки), интерполяция чисел позволит восстановить эти пробелы с математической точностью. Наиболее частая ошибка пользователей — попытка вручную рассчитать среднее арифметическое между соседними ячейками, что приводит к искажению тренда. В 90% случаев достаточно встроенных функций ПРЕДСКАЗ (или FORECAST в английской версии) и ЛИНЕЙН, но для нелинейных зависимостей потребуется полиномиальная аппроксимация или инструмент «Линия тренда» на графике.

Ключевое отличие интерполяции от экстраполяции: первая восстанавливает значения внутри известного диапазона (например, найти стоимость акции на 15-е число, если есть данные на 10-е и 20-е), а вторая прогнозирует за его пределами (цена на 25-е при тех же исходных). В этой статье разберём оба варианта, но с акцентом на интерполяцию — с формулами, которые работают в Excel 2010–2023 и Microsoft 365, включая веб-версию. Особое внимание уделим типичным ошибкам: #Н/Д в функции ПРЕДСКАЗ и искажению результатов при неверном выборе типа зависимости.

Что такое интерполяция и когда она нужна в Excel

Интерполяция в Excel — это метод восстановления пропущенных значений на основе существующих данных с использованием математических зависимостей. Например, у вас есть таблица с ростом продаж по месяцам, но данные за апрель и август отсутствуют. Вместо того чтобы оставлять пустые ячейки или заполнять их нулями (что исказит аналитику), вы можете:

  • 📊 Восстановить значения по линейному тренду (если продажи растут равномерно).
  • 📈 Применить полиномиальную аппроксимацию (если динамика нелинейная, например, сезонные скачки).
  • 🔄 Использовать сплайновую интерполяцию (для плавных кривых без резких изломов).

Основные сценарии применения:

  • 📅 Восстановление пропущенных дат в временных рядах (например, дневные температуры с пропусками).
  • 💰 Финансовый анализ: расчёт промежуточных значений между квартальными отчётами.
  • 📏 Технические расчёты: определение параметров материала при отсутствии экспериментальных данных для некоторых точек.
  • 📉 Построение графиков с плавными кривыми вместо «рваных» линий.

Важно: интерполяция даёт точные результаты только если исходные данные следуют чёткой закономерности. Например, для хаотичных колебаний (например, курсы валют) метод может дать ошибочные значения. В таких случаях лучше использовать СРЗНАЧ или медиану.

📊 Как часто вы сталкиваетесь с пропущенными данными в Excel?
Еженедельно
Раз в месяц
Редко
Никогда

Метод 1: Линейная интерполяция с помощью функции ПРЕДСКАЗ

Функция ПРЕДСКАЗ (или FORECAST.LINEAR в новых версиях Excel) — самый простой способ линейной интерполяции. Она подходит для данных, где зависимость между X и Y близка к прямой линии. Синтаксис:

=ПРЕДСКАЗ(x; известные_значения_y; известные_значения_x)

Пример: у вас есть температура воздуха в 8:00 (15°C) и 12:00 (22°C), а нужно найти значение на 10:00. Формула будет:

=ПРЕДСКАЗ(10; {15;22}; {8;12})

Результат: 18.5°C — именно это значение функция рассчитает как промежуточное между двумя известными точками.

Время (X)Температура (Y)Формула
8:0015
10:00=ПРЕДСКАЗ(10;B2:B3;A2:A3)18.5
12:0022
⚠️ Внимание: Если известные значения X не упорядочены по возрастанию, функция ПРЕДСКАЗ может вернуть ошибку #Н/Д. Всегда сортируйте исходные данные перед интерполяцией.

Убедитесь, что значения X и Y расположены в соседних столбцах|Отсортируйте данные по X по возрастанию|Проверьте, что нет пустых ячеек в диапазонах|Используйте абсолютные ссылки ($A$2:$A$10) для копирования формулы-->

Метод 2: Функция ЛИНЕЙН для сложных зависимостей

Если данные имеют более сложную зависимость (например, квадратичную или кубическую), используйте функцию ЛИНЕЙН (LINEST). Она возвращает массив коэффициентов для уравнения вида y = mx + b (или y = ax² + bx + c для полинома 2-й степени). Синтаксис:

=ЛИНЕЙН(известные_значения_y; известные_значения_x; константа; статистика)

Пример для квадратичной интерполяции (полином 2-й степени):

  1. Введите функцию как формулу массива (в новых версиях Excel просто нажмите Enter, в старых — Ctrl+Shift+Enter):
    =ЛИНЕЙН(B2:B10; A2:A10^{1,2}; ИСТИНА; ИСТИНА)
  2. Excel вернёт коэффициенты a, b и c для уравнения y = ax² + bx + c.
  3. Используйте эти коэффициенты в отдельной формуле для расчёта интерполированных значений.

Для автоматизации процесса создайте вспомогательный столбец с формулой:

=$D$2*A2^2 + $D$3*A2 + $D$4

где $D$2, $D$3, $D$4 — ячейки с коэффициентами из функции ЛИНЕЙН.

⚠️ Внимание: Функция ЛИНЕЙН чувствительна к выбросам (резким отклонениям в данных). Перед её использованием удалите аномальные значения или применяйте ТРЕНД для сглаживания.
Как проверить качество интерполяции?

Сравните рассчитанные значения с реальными (если они есть) с помощью функции СУММКВРАЗН — чем меньше результат, тем точнее модель. Также постройте график с исходными данными и интерполированной линией: они должны визуально совпадать.

Метод 3: Интерполяция с помощью графика и линии тренда

Визуальный метод подходит для быстрой оценки без формул. Алгоритм:

  1. Выделите данные (столбцы X и Y) и создайте точечную диаграмму (Вставка → Диаграмма → Точечная).
  2. Щёлкните правой кнопкой по любой точке графика → Добавить линию тренда.
  3. В настройках линии тренда выберите тип:
    • 📏 Линейная — для равномерных изменений.
    • 📈 Полиномиальная (укажите степень, например, 2 или 3).
    • 🔄 Экспоненциальная — для данных с ускоряющимся ростом.
  • Отметьте галочки Показать уравнение на диаграмме и Поместить на диаграмму величину достоверности аппроксимации (R²).
  • Используйте полученное уравнение (например, y = 2.5x + 10) для ручного расчёта промежуточных значений.
  • Преимущество метода: наглядность и возможность оценить коэффициент детерминации R² (чем ближе к 1, тем точнее модель). Недостаток: требует ручного ввода формулы для интерполяции.

    Тип трендаКогда использоватьПример уравнения
    ЛинейныйРавномерный рост/падениеy = 2x + 5
    Полиномиальный (степень 2)Изгибы, «горбы» на графикеy = 0.5x² – 3x + 10
    ЭкспоненциальныйУскоряющийся рост (например, вирусное распространение)y = 10e0.2x

    Метод 4: Интерполяция с помощью функции ТЕНДЕНЦИЯ

    Функция ТЕНДЕНЦИЯ (TREND) аналогична ЛИНЕЙН, но сразу возвращает интерполированные значения, а не коэффициенты. Синтаксис:

    =ТЕНДЕНЦИЯ(известные_значения_y; известные_значения_x; новые_значения_x; константа)

    Пример: у вас есть продажи за 1, 3 и 5 месяцы (100, 150, 220 единиц), а нужно восстановить данные за 2, 4 месяцы и спрогнозировать 6-й. Формула:

    =ТЕНДЕНЦИЯ(B2:B4; A2:A4; A2:A6)

    Введите её как формулу массива (в новых версиях Excel просто нажмите Enter), и она заполнит пропущенные значения. Результат для 2-го и 4-го месяцев: 125 и 185 единиц соответственно.

    Отличие от ПРЕДСКАЗ:

    • ТЕНДЕНЦИЯ работает с массивами данных (может заполнить несколько ячеек сразу).
    • ✅ Поддерживает нелинейные зависимости при использовании с ЛИНЕЙН.
    • ❌ Требует одинаковый шаг между значениями X (иначе результаты будут неточными).

    Метод 5: Ручная интерполяция (без формул)

    Если данных мало (2–3 точки), можно обойтись без формул:

    1. Рассчитайте шаг изменения между соседними значениями Y:
      (Y2 – Y1) / (X2 – X1).
    2. Умножьте шаг на разницу между целевым X и предыдущим значением X.
      шаг * (X_целевой – X1).
    3. Прибавьте результат к предыдущему Y:
      Y1 + (шаг * (X_целевой – X1)).

    Пример: между точками (10; 50) и (20; 150) нужно найти Y для X=15.

    1. Шаг: (150 – 50) / (20 – 10) = 10.
    2. Разница X: 15 – 10 = 5.
    3. Интерполированное Y: 50 + (10 * 5) = 100.
    ⚠️ Внимание: Ручной метод даёт точные результаты только для линейной зависимости. Для кривых используйте полиномиальную интерполяцию (метод 2).

    Типичные ошибки и как их избежать

    Ошибка 1: #Н/Д в функции ПРЕДСКАЗ.

    • 🔍 Причина: Значения X не отсортированы или содержат текст.
    • 🛠 Решение: Отсортируйте данные по X по возрастанию или используйте ЕСЛИОШИБКА:
    =ЕСЛИОШИБКА(ПРЕДСКАЗ(10; B2:B10; A2:A10); "Ошибка данных")

    Ошибка 2: Интерполированные значения сильно отличаются от реальных.

    • 🔍 Причина: Неправильно выбран тип зависимости (например, линейная вместо полиномиальной).
    • 🛠 Решение: Постройте график и визуально оцените тренд. Если линия изогнута, используйте ЛИНЕЙН со степенью 2–3.

    Ошибка 3: Функция ЛИНЕЙН возвращает некорректные коэффициенты.

    • 🔍 Причина: В данных есть выбросы (резкие скачки).
    • 🛠 Решение: Удалите аномальные точки или используйте ТРЕНД с параметром константа=ЛОЖЬ.
    ОшибкаПричинаРешение
    #ЧИСЛО! в ЛИНЕЙНСлишком большая степень полиномаУменьшите степень до 2–3
    #ЗНАЧ! в ТЕНДЕНЦИЯДиапазоны X и Y разного размераПроверьте количество ячеек в аргументах
    Низкое R² (< 0.7)Модель не подходит даннымПопробуйте другой тип тренда

    FAQ: Ответы на частые вопросы

    Можно ли интерполировать данные по датам в Excel?

    Да, но предварительно преобразуйте даты в числовой формат с помощью функции ДАТАЗНАЧ или просто отнимите начальную дату (например, =A2-$A$1), чтобы получить дни от начала периода. Затем применяйте ПРЕДСКАЗ или ТЕНДЕНЦИЯ к числовым значениям.

    Как интерполировать данные с пропусками в обеих осях (X и Y)?

    В этом случае сначала восстановите пропущенные X (например, с помощью арифметической прогрессии), а затем применяйте интерполяцию по Y. Альтернатива — использование ИНДЕКС-ПОИСКПОЗ для приближённого поиска.

    Какая функция точнее: ПРЕДСКАЗ или ТЕНДЕНЦИЯ?

    ПРЕДСКАЗ точнее для одиночных значений, так как учитывает только соседние точки. ТЕНДЕНЦИЯ строит модель по всему массиву данных, что лучше для глобальных трендов, но может давать погрешности на локальных участках.

    Как интерполировать данные в Google Sheets?

    В Google Таблицах используйте те же функции, но с английскими названиями:

    • FORECAST (аналог ПРЕДСКАЗ)
    • TREND и LINEST (аналоги ТЕНДЕНЦИЯ и ЛИНЕЙН)

    Синтаксис идентичен Excel.

    Можно ли автоматизировать интерполяцию для больших массивов данных?

    Да, с помощью Power Query (Данные → Получение данных → Из таблицы/диапазона). В редакторе используйте Column.FromList и List.Generate для создания промежуточных строк, а затем примените пользовательскую функцию интерполяции.