Как рассчитать выполнение плана в Excel: 5 проверенных способов с формулами и примерами

Введение: зачем считать выполнение плана в Excel и какие ошибки допускают 90% пользователей

Расчет выполнения плана в Microsoft Excel — одна из самых востребованных задач в бизнес-аналитике, финансовом контроле и управленческом учете. Казалось бы, что может быть проще: разделил фактические данные на плановые, умножил на 100% — и готово. Но на практике даже опытные пользователи сталкиваются с искаженными результатами, когда формулы выдают 105% выполнения при фактическом провале или, наоборот, показывают 80% там, где план перевыполнен втрое.

Проблема кроется в трех ключевых моментах: неправильном выборе формулы (например, использование простого деления вместо МИН/МАКС для учета перевыполнения), игнорировании нулевых значений в плановых показателях и неверной обработке отрицательных чисел. Например, если план по продажам был –100 тыс. руб. (убыток), а факт составил –50 тыс. руб., то классическая формула =Факт/План*100% покажет 50% выполнения, хотя на самом деле убыток сократился вдвое — это 100% улучшение относительно плана!

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

  • 📊 Вычислять процент выполнения с учетом перевыполнения и невыполнения плана
  • 🔍 Избегать ошибок при работе с нулевыми и отрицательными значениями
  • 📈 Строить динамические дашборды для мониторинга KPI
  • ⚡ Автоматизировать расчеты с помощью Power Query и VBA
📊 Как часто вы рассчитываете выполнение плана в Excel?
Ежедневно
Еженедельно
Ежемесячно
Реже
Никогда

Способ 1: Базовая формула для положительных значений плана

Если ваши плановые и фактические показатели всегда положительные (например, объем продаж, количество клиентов, выручка), достаточно использовать простейшую формулу:

=Факт/План*100%

Где:

  • 📌 Факт — ячейка с фактическим значением (например, B2)
  • 📌 План — ячейка с плановым значением (например, C2)

Пример: если план по продажам на месяц — 500 единиц товара (C2=500), а фактически продано 450 единиц (B2=450), формула вернет 90% (недовыполнение на 10%).

⚠️ Внимание: Эта формула не работает, если план равен нулю (#ДЕЛ/0!) или если фактические данные превышают план более чем в 2 раза (например, при плане 100 и факте 300 формула покажет 300%, что может вводить в заблуждение).
Факт (B2) План (C2) Формула Результат Интерпретация
450 500 =B2/C2 90% Невыполнение на 10%
500 500 =B2/C2 100% План выполнен ровно
600 500 =B2/C2 120% Перевыполнение на 20%

Способ 2: Учет перевыполнения и невыполнения (формула с МИН/МАКС)

Если вам нужно ограничить максимальное значение выполнения плана (например, чтобы при перевыполнении показывалось не 150%, а ровно 100%), используйте комбинацию функций МИН и МАКС:

=МИН(Факт/План; 1)

Эта формула вернет:

  • 🔹 1 (100%), если факт ≥ плана (даже если перевыполнение в 10 раз)
  • 🔹 Факт/План, если факт < плана (например, 0.8 для 80% выполнения)

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

=МАКС(Факт/План; 1)

Пример: если план по сокращению издержек — 100 тыс. руб., а факт составил 80 тыс. руб., формула =МАКС(80/100; 1) вернет 1 (100%), так как цель достигнута. Если же факт составил 120 тыс. руб., результат будет 1.2 (120%), сигнализируя о превышении лимита.

1. Убедитесь, что плановые значения не равны нулю

2. Проверьте формат ячейки (должен быть "Процентный" или "Общий")

3. Тестируйте формулу на крайних значениях (факт = 0, факт >> плана)

4. Используйте условное форматирование для визуализации отклонений-->

Способ 3: Работа с нулевыми и отрицательными значениями

Ошибка #ДЕЛ/0! возникает, когда план равен нулю. Чтобы избежать сбоя, добавьте проверку с помощью функции ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(Факт/План; 0)

Но этот подход не идеален: если план нулевой, а факт ненулевой, формула вернет 0%, что некорректно. Лучше использовать:

=ЕСЛИ(План=0; ЕСЛИ(Факт=0; 1; 0); Факт/План)

Логика:

  • 🔸 Если план = 0 и факт = 0 → 100% (цель "не ухудшить" достигнута)
  • 🔸 Если план = 0, но факт ≠ 0 → 0% (план не выполнен, так как любое ненулевое значение противоречит нулевому плану)
  • 🔸 Во всех остальных случаях → стандартный расчет Факт/План

Для работы с отрицательными значениями (например, плановые убытки) используйте формулу:

=ЕСЛИ(План<0; Факт/План; ЕСЛИ(План=0; ЕСЛИ(Факт=0; 1; 0); Факт/План))
⚠️ Внимание: При отрицательных плановых значениях интерпретация результата инвертируется. Например, если план –100 (убыток), а факт –50, то выполнение составит 50%, но это означает, что убыток сократился на 50% — то есть цель выполнена лучше, чем на 100%!

Как интерпретировать отрицательные планы?

При плановом убытке (–100) и фактическом убытке (–80):

- Формула вернет 80% (–80/–100), но реальное улучшение — 20% (убыток сократился на 20 единиц).

- Чтобы получить "истинный" процент выполнения, используйте формулу:

=ЕСЛИ(План<0; (План-Факт)/АБС(План); Факт/План)

Для примера выше: (–100 – (–80))/100 = 20% улучшения.

Способ 4: Динамический расчет с условным форматированием

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

  1. Выделите диапазон с результатами (например, D2:D100).
  2. Перейдите на вкладку Главная → Условное форматирование → Создать правило.
  3. Выберите Форматировать только ячейки, которые содержат.
  4. Задайте условия:
    • 🟢 Зеленый для значений ≥ 1 (план выполнен)
    • 🟡 Желтый для значений от 0.8 до 0.99 (близко к плану)
    • 🔴 Красный для значений < 0.8 (значительное невыполнение)

Для более гибкой настройки используйте формулы в правилах. Например, чтобы выделить ячейки, где факт превышает план на 20%:

=И($B2/$C2>=1,2; $C2<>0)

Совместите это с гистограммами в ячейках (вкладка Условное форматирование → Гистограммы), чтобы создать интерактивную панель мониторинга:

Способ 5: Автоматизация расчетов с Power Query и VBA

Если вам нужно рассчитывать выполнение плана для тысяч строк или объединять данные из нескольких источников, используйте Power Query:

  1. Импортируйте данные в Power Query (Данные → Получить данные → Из таблицы/диапазона).
  2. Добавьте пользовательский столбец с формулой:
    = [Факт] / [План]

    (замените [Факт] и [План] на названия ваших столбцов).

  3. Замените ошибки (#DIV/0!) на 0 или "N/A" с помощью Table.ReplaceErrorValues.
  4. Загрузите данные обратно в Excel.
  5. Для периодических отчетов создайте макрос на VBA:

    Sub CalculatePlanExecution()
    

    Dim ws As Worksheet

    Set ws = ThisWorkbook.Sheets("Отчет")

    Dim lastRow As Long

    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

    For i = 2 To lastRow

    If ws.Cells(i, 3).Value <> 0 Then

    ws.Cells(i, 4).Value = ws.Cells(i, 2).Value / ws.Cells(i, 3).Value

    ws.Cells(i, 4).NumberFormat = "0.0%"

    Else

    ws.Cells(i, 4).Value = "N/A"

    End If

    Next i

    End Sub

    Этот макрос:

    • 🖥️ Проходит по всем строкам листа "Отчет" (начиная со 2-й)
    • 🔢 Рассчитывает выполнение плана для столбцов B (факт) и C (план)
    • 📝 Записывает результат в столбец D с форматом процентов
    • ⚠️ Пропускает строки, где план равен нулю (пишет "N/A")

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

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

    Ошибка Причина Как исправить
    #ДЕЛ/0! Деление на ноль (план = 0) Используйте ЕСЛИ(План=0; 0; Факт/План)
    150% при плане 100 и факте 150 Формула не ограничивает максимальное значение Примените МИН(Факт/План; 1)
    Отрицательный процент (например, –200%) План и факт имеют разные знаки Добавьте проверку: =ЕСЛИ(План*Факт<0; "Ошибка"; Факт/План)
    Некорректное округление (например, 99.999% отображается как 100%) Формат ячейки с недостаточным количеством знаков после запятой Установите формат "Процентный" с 2-мя десятичными знаками

    Еще одна распространенная проблема — неверная интерпретация результатов. Например, если план по сокращению дебиторской задолженности был 100 тыс. руб., а факт составил 50 тыс. руб., то:

    • 🔴 Ошибка: "Выполнение плана — 50%" (кажется, что цель не достигнута)
    • 🟢 Правильно: "Задолженность сокращена на 50 тыс. руб. — план перевыполнен на 100%" (так как цель была уменьшить задолженность).
    ⚠️ Внимание: Всегда уточняйте, что означает "выполнение плана" в вашем контексте:

    - Для роста (продажи, доходы) → факт должен быть ≥ плана.

    - Для сокращения (издержки, убытки) → факт должен быть ≤ плана (или ≤ по модулю для отрицательных значений).

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

    Как рассчитать выполнение плана, если план менялся в течение периода?

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

    =СУММПРОИЗВ(Факт_по_месяцам; План_по_месяцам)/СУММ(План_по_месяцам)
    Можно ли рассчитать выполнение плана для нечисловых данных (например, дат)?

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

    =ЕСЛИ(Факт_дата<=План_дата; 1; План_дата/Факт_дата)

    Где Факт_дата и План_дата — это ячейки с датами в формате Excel (например, 45000 для 01.01.2023). Формула вернет:

    • 100% — если задача выполнена в срок
    • <100% — если просрочка (например, 0.5 для двукратной просрочки)
    Как посчитать выполнение плана в Excel Online или Google Sheets?

    Формулы работают аналогично, но в Google Sheets есть нюансы:

    • 📌 Для условного форматирования используйте Custom formula is (например, =B2/C2>=1)
    • 📌 Функция ЕСЛИОШИБКА называется IFERROR
    • 📌 Для Power Query используйте Data → Data cleanup → Power Tools

Пример формулы для Google Sheets:

=IFERROR(B2/C2, 0)
Как визуализировать выполнение плана на графике?

Создайте комбинированную диаграмму:

  1. Выделите данные (план и факт).
  2. Вставьте Вставка → Гистограмма с группировкой.
  3. Щелкните правой кнопкой по ряду "План" и выберите Изменить тип диаграммы для ряда → Линия.
  4. Добавьте вторичную ось для линии (план).

В результате план будет отображаться линией, а факт — столбцами, что наглядно покажет отклонения.

Можно ли автоматически отправлять отчет по выполнению плана по email?

Да, с помощью VBA и Outlook. Пример кода для отправки отчета:

Sub SendPlanReport()

Dim OutApp As Object, OutMail As Object

Set OutApp = CreateObject("Outlook.Application")

Set OutMail = OutApp.CreateItem(0)

With OutMail

.To = "email@example.com"

.Subject = "Отчет по выполнению плана на " & Format(Date, "dd.mm.yyyy")

.Body = "Добрый день!" & vbCrLf & vbCrLf & _

"Выполнение плана за текущий период: " & _

Worksheets("Отчет").Range("D2").Value * 100 & "%"

.Attachments.Add ThisWorkbook.FullName

.Send 'или .Display для проверки перед отправкой

End With

Set OutMail = Nothing

Set OutApp = Nothing

End Sub

⚠️ Перед использованием настройте Outlook и проверьте параметры безопасности макросов.