Взгляд на тысячи ячеек: почему планы и бюджеты в Excel 一 ад для крупных компаний и что с этим всем делать

от автора

Всем привет! Меня зовут Никита Гусев, я руковожу направлением EPM в компании «Инфосистемы Джет».

Если вы когда-нибудь видели, как финансист или аналитик ставит себе ТРЕТИЙ монитор, чтобы формулы помещались на экране, то сложности работы Excel в крупных компаниях примерно представляете. В статье расскажу, почему еще планирование в табличках — это больно, и по какому пути идут наши заказчики.

Просто пишите формулы

Сразу оговорюсь, сам по себе Excel шикарен, в хозяйстве вещь незаменимая.

Да и кроме формул инструментов достаточно. Использовать можно что угодно 一 от макросов до Power Query и Power Pivot. Не говоря уже о поддержке JavaScript и сотнях других надстроек на любой вкус, цвет и задачу.

Огромное количество возможностей делает Excel практически универсальным инструментом. Там теперь даже ведут каналы и общаются вместо мессенджеров (в Google Sheets, если быть точным). Это, конечно, уже из разряда юмора, но лишний раз подчеркивает: Excel 一 это буквально для всего.

Если еще не видели, зацените, как умелец сделал для таблиц старый добрый Doom.

Есть еще машина Тьюринга, о ней до нас подробно писали вот здесь.

А еще в таблицу уместили бюджет системы здравоохранения Новой Зеландии, хоть и не без косяков. О косяках поговорим отдельно.

И если раньше всеми возможностями владели только матерые профессионалы и завсегдатаи Планеты Excel, с развитием ИИ наступает «золотой век» Excel. Достаточно просто попросить у LLM формулу, и порог входа в зеленые таблички волшебным образом снижается настолько, что руками делать ничего не нужно.

Вообще агентский режим уже доступен в лицензиях Microsoft Copilot 365. Он очень старается, но не без приколов:

Так что лучше спросить скрепку Clippy, к нему доверия больше.

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

Одновременная работа

Технически работать в одной книге Excel с помощью shared workbook можно. На практике начинаются конфликты правок. Excel блокирует диапазоны ячеек, ведет журнал изменений в скрытых листах, но не дает механизмов разрешения конфликтов. В итоге ты либо ждешь, пока коллега закроет файл, либо сохраняешь локальную копию (которую потом все равно нужно подружить с основным файлом).

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

Когда одновременная работа дает сбой, крупные компании переходят на классический workflow — раздельные файлы и их консолидация. Но начинается ОН.

Версионный ад

Бессмертная классика: рассылка шаблона по email с просьбой заполнить и вернуть до определенной даты. Куча файлов с чем-то в стиле «финальный_финал» в названии — это родное.

Но один филиал отправляет годовой план в старом шаблоне, потому что «так делали в прошлом году». Другой добавляет свой столбец с расчетами и ломает сводные формулы. Теперь все это нужно не просто свести, а сначала привести к единому стандарту.

Согласование бюджета превращается в одну большую потерю времени, потому что нужно:

  • собрать файлы

  • привести все возможные версии к утвержденному шаблону

  • свести данные

  • и только потом согласовать бюджет со всеми стейкхолдерами

Немного суровой реальности: один из наших заказчиков из логистики две недели согласовывал план на … месяц. Это может быть незаметно при годовом планировании, когда на подготовку, согласования и корректировки закладывают несколько месяцев. Но когда нужно быстро отреагировать на внешние изменения или согласовать бюджет на квартал, классический workflow уже не справляется. 

Макросы и формулы хороши, но все зависит от прямоты рук

Формулы и макросы чувствительны к установленным версиям самого Excel. Если эксперт написал макрос с использованием возможностей 2019 года или новой структуры меню Ribbon, в Excel 2016 файл просто выдаст ошибку. А еще корректность работы сильно зависит от настроек Excel на конкретной машине.

Так вот в любой крупной компании за десятки лет существования бюджетов в Excel таблицы рано или поздно обрастают макросами и формулами. Вариаций может быть множество, в зависимости от фантазии и навыков энтузиастов.

И если энтузиаст увольняется, автоматизация слетает с первыми изменениями в структуру данных.

Так получилось у одного из наших заказчиков: в таблице годового бюджета формулы расчета себестоимости 19000 SKU написал сотрудник, который уволился за 3 месяца до сборки годового бюджета. Человек ушел, структура бюджета изменилась, формулы никто не исправил — они начали ссылаться на несуществующие диапазоны и выдавать грустное #ССЫЛКА!.

Аудит изменений

В отличие от Google Sheets, в Excel нет инструмента централизованного аудита, который бы работал на всех платформах, не ломал бы функциональность и не зависел от доброй воли пользователя (включил ли он макросы).

Встроенный инструмент “track changes” требует отката до формата .xls, а это значит никаких Compare Workbooks, Power Query и динамических массивов. Макросы любой пользователь может отключить перед началом работы с книгой, и аудит превращается в необязательную опцию.

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

Контроль качества и целостности данных

Чистый человеческий фактор против встроенных инструментов Excel. Защита листа и проверка данных в теории защищают от отрицательных значений и текста в поле с выручкой или удаления формул.

На практике в большинстве случаев все происходит наоборот:

  • ничего не работает по умолчанию, и авторы таблиц просто забывают включить валидацию данных и защиту листа

  • уязвимость к копипасту ячеек: новая ячейка вставляется поверх той, для которой написаны правила

  • авторы таблиц просто спешат согласовать бюджет и забивают на валидацию данных и защиту листов

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

Если коротко, в Excel защита от «дурака» не встроена в фундамент архитектуры и не спасает от особо изобретальных. Это опция, которую нужно настраивать, и ее все равно можно обойти.

А workflow вообще отсутствует как класс. Он не встроен в архитектуру Excel. Скорее наоборот: мы пытаемся встроить зеленые таблички в существующий бизнес-процесс.

Учитывая функциональные ограничения и человеческий фактор, в больших масштабах и проявляются описанные проблемы.  

От таблиц спасает куб

И нет, это не жуткий куб из одноименного фантастического триллера.

Динамический куб данных (OLAP) — это объект системы, где информация организована в виде гиперкуба с произвольным числом измерений.

Суть технологии OLAP In-Memory — хранение многомерных кубов данных непосредственно в оперативной памяти (RAM), а не на медленном диске (HDD/SSD).

Что это дает:

1. Мгновенную скорость запросов — нет операций ввода-вывода к диску, вычисления идут на высоких скоростях шины памяти;

2. Высокую степень сжатия — данные в памяти оптимизируются (столбцовое хранение, битовые индексы), это позволяет хранить и быстро пересчитывать большие объемы;

3. Непредрасчитанные агрегаты — можно считать скользящие итоги или произвольные срезы «на лету» без предварительной подготовки всех вариантов сумм.

Такие кубы доступны в системах класса EPM (Enterprise Performance Management или система управления эффективностью предприятия), например, IBM Planning Analytics, Anaplan, Oracle Hyperion или российские Cubix, Optimacros, Форсайт, Планум и др.

Основные различия показал в таблице (ну да, что поделать).

Характеристика

Традиционный подход (MS Excel)

Многомерная модель (OLAP-кубы)

Структура

Двумерная (строки и столбцы)

Многомерная (оси-измерения)

Хранение

Файловое (дублирование файлов)

Единая централизованная база

Пустые ячейки

Утяжеляют файл, замедляют работу

Игнорируются (разреженные матрицы)

Агрегация

Ручное прописывание формул =СУММ()

Автоматическая по иерархии справочников

Контроль доступа

Пароли на листы

Ролевая модель на уровне пересечения осей

От плоской таблицы к многомерному массиву

В Excel мы ограничены двумя измерениями.

В кубе данных измерения (они же «оси» или «аналитики») — это независимые справочники с собственными иерархиями.

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

●      ЦФО (структура: Корпорация → Макрорегион → Филиал → Склад);

●      ФЦО (функциональные центры: Логистика, ИТ, HR);

●      Ресурсы, что потребляет функция (материалы, электроэнергия, ФОТ);

●      Продукты, что функция производит (номенклатура);

●      Контрагенты (поставщики, перевозчики);

●      Годы;

●      Периоды (иерархия времени: Квартал → Месяц → День);

●      Версии (План / Факт / Прогноз / Уточнённый план).

Каждое измерение — это полноценная иерархия. В измерении «Периоды» январь и февраль — это детальные элементы, которые базовый движок куба автоматически консолидирует в «Квартал 1» без каких-либо формул.

А еще куб учитывает особенности методологии заказчика, например, продукты одной функции, которые одновременно являются ресурсами для другой.

Срез данных: когда куб становится таблицей

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

Например, можно «разрезать» куб так: в строках — филиалы, в столбцах — месяцы, а в контексте жестко зафиксировано: ФЦО = «Логистика», Версия = «План», Ресурс = «Дизельное топливо». Таких срезов можно создавать бесконечное множество, «вращая» куб в пространстве и перемещая измерения в строки или столбцы и обратно. Финансовый директор смотрит бюджет в разрезе макрорегионов, а категорийный менеджер — в разрезе SKU.

И это не разные разрозненные файлы, которые нужно искать в почте или корпоративном хранилище. Это консистентные проекции одних и тех же исходных данных.

Разреженные матрицы: почему 19 000 SKU не весят терабайты

19 000 товарных позиций × 71 склад × 42 филиала — это миллионы возможных комбинаций. Если попытаться собрать такую матрицу в Excel, система рухнет: в одном листе физически не может быть больше 1 миллиона строк.

Кубы решают это через технологию разреженных матриц (sparse matrix optimization). Система хранит в памяти только ячейки с данными (это актуально как минимум для Oracle Hyperion и IBM Planning Analytics). Филиал в Калининграде никогда не делает отгрузки со складов Владивостока, а склад №47 не использует 90% из 19 000 SKU. В многомерной СУБД пустая комбинация — это отсутствие записи в базе, она ничего не весит.

In-Memory вычисления и единое информационное пространство

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

В EPM-системах офисным железякам живется проще.

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

Workflow и аудит как фундамент платформы

Вместо пересылки файлов с приписками вроде «Бюджет_Финал_v3_копия.xlsx», EPM-системы используют встроенный workflow. Статус согласования — отдельное системное измерение. Перевод статуса из «Черновика» в «На согласовании» автоматически блокирует права на редактирование для отдельной категории или для всех пользователей и оставляет только право на чтение.

Аудит реализован на уровне ядра: система непрерывно пишет лог транзакций: кто, когда, с какого IP-адреса и какое значение изменил. Это неотключаемый механизм контроля, который страхует бизнес-процесс от случайных ошибок и делает планирование более прозрачным.

Что в итоге

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

При таком масштабе недостатки зеленых табличек просто не успеют повлиять на качество планирования. С двумя-тремя ЛПРами можно легко договориться о схеме рабочего процесса и сильно не мучиться с версиями и их сведением. Ломающиеся формулы все еще будут раздражать, но нет смысла вкладываться в переход на EPM-системы.

В enterprise риски намного выше, поэтому EPM с кубами данных здесь полностью оправдан. В следующей статье расскажу, какие решения сейчас доступны на российском рынке, что лучше и почему.

ссылка на оригинал статьи https://habr.com/ru/articles/1029132/