← Все моделиОткрыть живое демо →

Excel как рабочее место: план-факт бюджета 2026 года

1. Главный месседж для заказчика

Решение показывает, как сохранить Excel привычным рабочим окном финансового аналитика, но вынести из отдельных файлов саму модель: данные, правила расчёта, структуру статей, календарь и запись изменений. Пользователь продолжает работать с ячейками — строит отчёт, вводит факт, раскрывает кварталы и статьи, — а полная многомерная координата, расчётные правила и история неподтверждённых изменений ведутся в единой панели EPM.

Фактически приложенный контур состоит из двух частей. Сценарий build.mjs задаёт отдельный куб xls_plan для бюджета 2026 года, детерминированный набор исходных сумм и четыре правила план-факт расчёта. Отчёт PREV-GENERATOR.md описывает реализованный модуль VBA версии 2026.08.07.2, в котором объединены построение представления, ввод, контроль конфликтов, редактор правил и работа с иерархиями. Статическая проверка этого модуля завершена без ошибок и предупреждений.

Граница результата при этом существенна. Независимый аудит подтвердил исходные суммы и обе иерархии, но не принял расчётный слой: отсутствующий факт сейчас считается нулём, отклонения создаются одновременно под версиями «План» и «Факт», а частично заполненный месяц способен сформировать фиктивный итог. В приложенном архиве также нет самой книги Excel, модуля .bas, манифеста фактической серверной сборки, ответов чтения ячеек и журнала успешного сквозного прогона. Поэтому кейс описывает то, что подтверждено материалами: построенную структуру рабочего места, воспроизводимый набор данных и выявленные пределы текущего расчёта, а не полностью принятую промышленную модель.

2. Что именно считает решение

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

План рассчитывается для всех двенадцати месяцев. Для каждой листовой статьи задана базовая месячная сумма, которая умножается на единый сезонный коэффициент месяца и округляется до двух знаков до загрузки. Последовательность коэффициентов с января по декабрь: 0,92; 0,95; 1,02; 1,00; 1,03; 1,06; 0,98; 0,94; 1,05; 1,08; 1,02; 0,95. Их сумма равна 12, поэтому годовой план совпадает с двенадцатью базовыми месяцами.

Факт создан только за первые восемь месяцев. Он получается умножением уже рассчитанного месячного плана на постоянный коэффициент конкретной статьи: продукция — 1,04, услуги — 0,97, материалы — 1,06, труд — 1,01, персонал — 1,02, аренда — 1,00, маркетинг — 1,12. В результате загружено 84 плановых адреса и 56 фактических, всего 140 строк. На сентябрь–декабрь приходится ещё 28 сочетаний «статья × месяц», для которых фактического значения нет.

Платформа должна выполнять три вида расчёта:

По самим исходным данным годовой план составляет 72 000,00 тыс. ₽ выручки, 36 360,00 тыс. ₽ валовой прибыли и 11 760,00 тыс. ₽ EBITDA. На сопоставимой базе января–августа плановая EBITDA равна 7 742,00 тыс. ₽, фактическая — 7 182,68 тыс. ₽, отклонение — −559,32 тыс. ₽, или −7,224490 %.

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

3. Модель данных в бизнесовых терминах

Бизнес-объектФизический объектФактически заданное содержание
Статьи управленческого отчётаxls_item12 элементов: 7 листовых статей и 5 итоговых узлов. Дерево: EBITDA → валовая прибыль и операционные расходы; валовая прибыль → выручка и себестоимость; выручка → продукция и услуги; себестоимость → материалы и труд; операционные расходы → персонал, аренда и маркетинг.
Календарьxls_month17 элементов: 12 месяцев, 4 квартала и итог «2026 год». Иерархия «год → кварталы → месяцы».
Версия данныхxls_version2 элемента: PLAN — «План» и FACT — «Факт». Иерархии нет; при отсутствии версии на оси или в листовом фильтре значения складываются.
Куб бюджетаxls_planТри измерения: статья × месяц × версия. Название в сценарии сборки — «Бюджет 2026 — ввод из Excel».
Исходная суммамера amountЗагружаемая сумма в тыс. ₽. План присутствует по 7 статьям и 12 месяцам; факт — по 7 статьям и 8 месяцам.
Абсолютное отклонениемера var_absВычисляемая мера «факт минус план». В текущей реализации создаётся и под PLAN, и под FACT, что приводит к двойному счёту при свёртке версии.
Процентное отклонениемера var_pctВычисляемое отношение var_abs / PLAN × 100. Для затрат положительный процент означает рост отрицательной суммы расхода, а не благоприятный результат. Отдельного признака «благоприятно/неблагоприятно» нет.
Правила расчёта4 правила кубаБазовое и агрегирующее правило для абсолютного отклонения, базовое и агрегирующее правило для процента. Предложенная позднее безопасная схема из 6 мер и 8 правил в build.mjs не внедрена.
Исходный наборрезультат buildRows()140 строк: 84 PLAN и 56 FACT; дубликатов адресов нет, суммы имеют не более двух знаков после запятой.
Рабочее место Excelмодуль VBA 2026.08.07.2По отчёту о поставке — 4 851 физическая строка, 229 процедур, 41 именованный диапазон и 6 служебных листов; статический прогон дал errors: [] и warnings: []. Сам модуль в текущий архив не включён.

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

4. Бизнес-логика расчёта

ШагБизнесовый смысл и фактическая реализация
1. Задание базового месячного планаДля семи листовых статей заданы суммы: продукция 4 200, услуги 1 800, материалы −1 850, труд −1 120, персонал −1 450, аренда −320, маркетинг −280 тыс. ₽.
2. Применение сезонностиБазовая сумма умножается на коэффициент месяца. Один и тот же профиль сезонности применяется ко всем семи статьям.
3. Округление до загрузкиКаждый адрес округляется до двух знаков в генераторе, поскольку в языке правил платформы нет функции округления.
4. Формирование фактаЗа январь–август план каждой статьи умножается на её постоянный коэффициент факта. Сентябрь–декабрь остаются без фактических строк.
5. Сложение отчёта по статьямОтрицательные расходы позволяют получить Выручка, Себестоимость, Валовая прибыль, Операционные расходы и EBITDA обычным сложением по иерархии. Отдельные формулы для этих пяти строк не нужны.
6. Сложение по времениМесяцы агрегируются в кварталы и год по календарной иерархии. Для денежной суммы такое сложение корректно.
7. Абсолютное отклонениеТекущее базовое правило рассчитывает amount[FACT] − amount[PLAN]. Отдельное правило складывает результат по деревьям статей и времени.
8. Процентное отклонениеТекущее правило делит абсолютное отклонение на план и умножает на 100. На родительских узлах процент должен пересчитываться из итоговых числителя и знаменателя, а не складываться из процентов листьев.
9. Ввод из ExcelПользователь меняет входную сумму, видит старое и новое значение и отправляет набор изменений. Вычисляемые меры должны быть заблокированы для ручного ввода и перечитаны после серверного пересчёта.
10. Конкурентная записьПеред отправкой клиент перечитывает координату. Если другой пользователь уже изменил значение, показывается сравнение «исходное / серверное / локальное», после чего аналитик выбирает, какое значение сохранить.
11. Изменение формул и дереваБазовое правило и правило свода представлены как один расчёт меры; формулы проходят локальную и серверную проверку. Для дерева проверяются циклы, дубликаты, неизвестные родители, самоссылки и изменение состава.
12. Контроль результатаИсходные строки независимо пересчитываются по всем месяцам, кварталам, году и обеим версиям. В текущем архиве такой контроль подтвердил суммы и иерархии, но выявил ошибки расчётных мер.

Текущие четыре правила не различают настоящий ноль и отсутствие факта: язык правил не умеет проверять пустое значение, а отдельная загружаемая мера наличия факта отсутствует. Поэтому открытые месяцы включаются в отклонение как нулевой факт. Кроме того, правила не ограничены координатой версии PLAN, из-за чего одинаковый результат записывается под обеими версиями и удваивается при их свёртке.

Предложенная в PREV-RASCHET.md исправленная логика — явный признак наличия факта, сопоставимый план, сопоставимый факт и восемь связанных правил — является проектом доработки, а не фактически собранным состоянием build.mjs. Контроля полноты месяца также нет: система не проверяет, заполнены ли все семь обязательных статей до расчёта итоговой EBITDA.

5. Описание ключевых показателей

Подтверждённые суммы исходного набора, тыс. ₽:

ПоказательПлан на 2026 годСопоставимый план январь–августФакт январь–августОтклонениеОтклонение, %
Выручка72 000,0047 400,0048 300,60+900,60+1,900000
Себестоимость−35 640,00−23 463,00−24 428,38−965,38+4,114478
Валовая прибыль36 360,0023 937,0023 872,22−64,78−0,270627
Операционные расходы−24 600,00−16 195,00−16 689,54−494,54+3,053659
EBITDA11 760,007 742,007 182,68−559,32−7,224490

Годовая плановая валовая рентабельность равна 50,5 %, плановая рентабельность по EBITDA — 16,333333 %. Эти доли одинаковы во всех месяцах, поскольку один сезонный коэффициент одновременно применяется к выручке и всем расходам. Фактическая рентабельность по EBITDA за январь–август составляет 14,870788 %; это расчётное следствие подтверждённых сумм 7 182,68 / 48 300,60.

На уровне исходных статей фактические отклонения заданы постоянными коэффициентами: выручка от продукции +4 %, выручка от услуг −3 %, материалы +6 %, труд +1 %, персонал +2 %, аренда 0 %, маркетинг +12 %. Для затрат знак процента требует пояснения: например, +6 % по материалам означает, что расход стал на 6 % больше по модулю; абсолютное отклонение при этом отрицательное.

Расхождения, выявленные в текущем расчётном слое:

Срез EBITDAЧто показывает текущее правилоСопоставимый результат по имеющемуся факту
Сентябрь−1 029,00; −100 %Факта нет; отклонение не должно рассчитываться как нулевой факт.
III квартал−1 164,94; −40,024050 %−135,94; −7,224702 % по июлю–августу.
IV квартал−2 989,00; −100 %Факта нет; сопоставимые суммы равны нулю.
2026 год−4 577,32; −38,922789 %−559,32; −7,224490 % по январю–августу.

Из 204 сочетаний «12 статей × 17 календарных элементов» абсолютное отклонение неверно на 84 срезах: по всем статьям за сентябрь–декабрь, III квартал, IV квартал и год. При свёртке версии отклонение дублируется: например, для выручки от продукции за январь правильные 154,56 тыс. ₽ и 4 % превращаются в 309,12 тыс. ₽ и 8 %. Свёрнутая исходная сумма EBITDA за год становится 18 942,68 тыс. ₽, то есть складывает полный план 11 760,00 и неполный факт 7 182,68.

Есть и риск частичного ввода. Если в сентябре первой записать только фактическую выручку от продукции 4 586,40 тыс. ₽, а остальные шесть статей ещё не заполнить, текущая модель немедленно покажет фактическую EBITDA 4 586,40 тыс. ₽, отклонение +3 557,40 тыс. ₽ и +345,714286 %. Это не финансовый результат периода, а следствие сложения одной введённой строки с отсутствующими затратами.

6. Как формируются витрины

В целевой организации работы Excel не хранит самостоятельные формулы отчёта. Клиент получает из куба координаты и значения, раскладывает их по листу и сохраняет служебное соответствие между видимой ячейкой и адресом «статья × месяц × версия × мера». Благодаря этому перестановка строк или колонок не превращает адрес Excel вроде G17 в часть серверной формулы.

Витрина или рабочая областьИсточникЧто получает финансовый директорПодтверждённая граница
Управленческий отчётxls_plan, иерархии xls_item и xls_monthВыручку, себестоимость, валовую прибыль, операционные расходы и EBITDA по месяцам, кварталам и году; план, факт и отклонения.Исходные суммы и иерархические итоги воспроизведены независимо. Расчёт отклонений для открытых месяцев и свёрнутой версии неверен.
Сетка вводаПлоское представление «статья × месяц × версия», меры в колонкахЛистовые значения amount, доступные для ввода; var_abs и var_pct как вычисляемые поля.В build.mjs тест представления использует measures.position.index = 0 при пустых колонках. В api.md такой запрос зафиксирован как ошибочный; рабочее значение — 1. Ошибка только записывается в замечания и не останавливает сборку.
Инспектор ячейкиСкрытая карта координат книгиПолный многомерный адрес, происхождение значения и причину, по которой ячейка разрешена или запрещена для ввода.Функция заявлена реализованной в отчёте о модуле; исполняемый модуль в архиве отсутствует.
Набор измененийИсходное, серверное и локальное состоянияВсе неподтверждённые правки, старое и новое значение, дельту и конфликт с изменением другого пользователя.Статическая проверка кода пройдена; сквозная запись против стенда в приложенном комплекте не показана.
Редактор расчёта мерыРеестр правил кубаБазовую формулу и связанную политику свода на одном экране, локальные предупреждения, позицию серверной ошибки и безопасную публикацию с восстановлением исходного правила при неудаче.Реализация описана в отчёте о модуле; числового предварительного расчёта до публикации сервер не предоставляет.
Менеджер справочника и дереваЭлементы и версии иерархийДобавление элемента, редактирование атрибутов, перенос ветки, сравнение и публикацию версии дерева с проверкой циклов и потери элементов.Реализация описана в отчёте; фактический журнал изменения справочника не приложен.
Проверка моделиЛокальные правила контроля и серверная проверка формулОшибки синтаксиса, неизвестные объекты, отсутствие правила свода, опасное деление, неполный VIEW и другие известные ограничения движка.Статические проверки модуля прошли; проверка числового результата текущего куба выявила блокирующие дефекты.

По отчёту о поставке модуль предусматривает два видимых листа — EPM и EPM_View — и четыре скрытых служебных листа для состояния, координат, исходных значений и журнала. Однако отдельная готовая книга Excel, её снимки и журнал установки в приложенном архиве отсутствуют. Поэтому в кейсе заявляется логика формирования рабочего места и подтверждённые расчётные срезы, но не окончательно принятый внешний вид книги.

7. Ценность подхода для заказчика

Первое — Excel остаётся привычным инструментом, но перестаёт быть единственным хранилищем логики. Финансовый аналитик работает в знакомой сетке, а данные, структура статей и правила расчёта находятся в централизованной модели. Это снижает зависимость от копий файлов и скрытых формул в отдельных ячейках.

Второе — ввод становится управляемым. Каждая редактируемая ячейка связана с полной многомерной координатой. Перед записью можно увидеть набор изменений, сравнить исходное, серверное и локальное значение и отдельно разрешить конфликт двух пользователей, не теряя остальные правки.

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

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

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

Шестое — независимая проверка выявляет ошибки, которые обычное равенство итогов не показывает. В этом демо исходные суммы и общий отчёт сходятся, но 84 план-факт среза отвечают на неправильный вопрос, а свёртка версии удваивает расчёт. Такая проверка полезна именно тем, что отделяет арифметически сбалансированную модель от экономически корректной.

Текущий контур нельзя представлять заказчику как завершённый промышленный план-факт процесс. До повторной приёмки необходимо внедрить явный признак наличия факта и контроль полноты семи статей месяца, заменить три меры и четыре правила на безопасный набор из шести мер и восьми правил, считать расчётные показатели только в одной версии, исправить конфигурацию плоского представления, сделать ошибки представления фатальными, перечитывать контрольные ячейки после публикации и запретить свёртку amount без листового выбора версии. Дату закрытого периода также нужно параметризовать: в исходнике от 7 августа 2026 года постоянная CLOSED_MONTHS = 8 уже считает август закрытым. Для реалистичной демонстрации потребуется и менее синтетический профиль данных: сейчас одна сезонность применяется ко всем статьям, а месячные рентабельности плана постоянны.

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

8. Готовый текст для презентации заказчику

Мы построили прототип, в котором Excel остаётся рабочим местом финансового аналитика, а данные и расчётная логика находятся в централизованной модели EPM. Пользователь может сформировать управленческий отчёт, ввести факт, увидеть полную координату ячейки, проверить набор изменений, разрешить конфликт с правкой другого пользователя и работать с формулами и деревом статей из единой панели.
В демонстрационном кубе бюджета 2026 года используются 12 статей отчёта, 17 элементов календаря и две версии — план и факт. Загружено 140 исходных строк: 84 плановых значения за двенадцать месяцев и 56 фактических значений за январь–август. Годовой план показывает выручку 72,00 млн ₽, валовую прибыль 36,36 млн ₽ и EBITDA 11,76 млн ₽.
На сопоставимой базе января–августа выручка выросла с 47,40 до 48,30 млн ₽, а EBITDA снизилась с 7,742 до 7,183 млн ₽. Отклонение EBITDA составляет минус 559,32 тыс. ₽, или минус 7,224490 %. Исходные суммы, знаки расходов и агрегирование по статьям и календарю независимо воспроизведены.
При этом независимая проверка показала, что текущие правила отклонений ещё не готовы к приёмке: отсутствующий факт за открытые месяцы трактуется как ноль, расчёт дублируется под двумя версиями, а частично заполненный месяц способен показать фиктивную EBITDA. В приложенном комплекте также нет книги Excel и серверного снимка ячеек, поэтому мы не выдаём проектный замысел и статическую проверку клиента за подтверждение полного сквозного процесса.
Для заказчика уже продемонстрирован сам принцип: Excel может быть управляемым окном к единой модели, а не местом, где логика размножается по файлам и формулам. Следующий обязательный шаг — исправить правила сопоставимости, добавить контроль полноты периода и подтвердить запись и перечитывание контрольных ячеек на стенде. После этого решение сможет надёжно объединить анализ, ввод, расчёт, изменение формул и управление структурой отчёта в одном рабочем контуре.