Я работаю в офисе (вспоминается песня «Ленинграда»), и моим основным рабочим инструментом уже очень долгое время является Excel. Рискую показаться предвзятым, но, на мой взгляд, Excel — это лучший продукт Microsoft. И вообще, электронные таблицы как класс приложений — это абсолютно гениальное изобретение человечества. Наверное, многие считают их злом, в особенности люди из IT, но давайте пройдемся по фактам:

  • Электронные таблицы были именно той киллер‑фичей, из‑за которой многие покупали персональные компьютеры, когда те только появились в 70-х/80-х.

«На самом деле, было два „реальных взрыва“, которые толкнули вперед всю индустрию. Первый произошел в 1977, и это были электронные таблицы — Стив Джобс»

  • Более 1,1–1,5 миллиарда активных пользователей: По общим оценкам, число людей, регулярно использующих Excel по всему миру, находится в этом диапазоне.

  • Свыше 200 миллионов коммерческих лицензий: Только корпоративная настольная версия (Microsoft 365 Apps for enterprise) насчитывает более 200 млн активных лицензированных пользователей по всему миру.

  • Более половины (54%) всех предприятий в мире официально используют Excel в качестве основного инструмента для управления данными и финансового анализа.

  • Excel упоминается примерно в 14,68% всех объявлений о работе на LinkedIn. Для сравнения, его ближайший конкурент Google Sheets фигурирует лишь в 2,9% вакансий.

Считаю что это более чем впечатляющий список для программы, выпущенной более 40 лет назад. Сегодня, в 2026 году, у нас SaaS’ы, облака, ИИ — а эксель и другие таблицы всё ещё являются основным инструментом во многих компаниях.

Кстати, история появления и развития электронных таблиц от первого приложения VisiCalc до распространения Excel и его конкурентов интересно описана в статье «Ода Excel: 34 года волшебства».

Сразу оговорюсь, что электронные таблицы — это не только Excel, но именно он стал де‑факто стандартом отрасли. Далее, говоря «эксель», я в первую очередь буду иметь ввиду саму программу от Microsoft. Однако в отдельных случаях это понятие можно отнести ко всем электронным таблицам в целом.

Секрет такой популярности Excel в его безумной гибкости и адаптируемости. Excel можно встроить практически в любой бизнес‑процесс. Именно это, в первую очередь, обусловило его быстрое распространение в бизнесе, особенно в том, что связано с финансами. Как тут ни вспомнить известные мемы, что вся мировая финансовая система держится на Excel.

Тем самые мемы, в которых есть изрядная доля правды
Тем самые мемы, в которых есть изрядная доля правды

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

Тёмная сторона Excel

Как известно, у каждой медали есть обратная сторона. И главное преимущество экселя — гибкость и адаптируемость — оборачиваются его же кошмаром, потому что пользователи творят в нём всё, что захотят. В любых других ИТ‑системах есть какая‑то структура для данных и алгоритмов. В Excel же никакой структуры нет по определению. Он является конструктором по своей идеологии.

Это приводит к тому, что расчеты и данные переплетаются создавая, порой, ужасную мешанину. Конечно, существуют подходы, которые дают рекомендации, как правильно размещать данные, как маркировать переменные и формулы и так далее. Например в финмоделировании самая известная методология называется FAST — Flexible (Гибкий), Appropriate (Подходящий), Structured (Структурированный) и Transparent (Прозрачный). Также компании, которые работают с экселем, как правило имеют свои готовые шаблоны, которые адаптируются мере необходимости.

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

Бизнес-план, где результат зависит более чем от сотни входных параметров
Бизнес‑план, где результат зависит более чем от сотни входных параметров

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

Эта сложность, плюс вкрапление данных в расчеты, создает проблему такого рода, что конечные пользователи модели часто не имеют возможность ей пользоваться напрямую. Модель всегда имеет своих конечных пользователей, то есть тех кто принимает решение на её основе. Это могут быть руководители внутри организации, либо внешние пользователи (инвесторы и заказчики). Модель в данном понимании — это не обязательно финансовая модель. Какой‑нибудь продукт может иметь сложное ценообразование, зависящее от многих параметров — в таком случае его прайс тоже представляет собой модель, конечным пользователем которого является покупатель. Или инженерный расчет в экселе — на основе которого из 10 входных параметров, получается какой‑то один.

Как получать результаты расчетов?

Можно пересчитать модель на самых интересных вариантах и как‑то отфиксировать результаты заранее. Часто так и делают — рассчитывают и фиксируют результаты в статичных артефактах — например, презентациях, отчетах, графиках.

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

  1. Преобразовать модель в код.

  2. Передать сам исходный файл.

Первый способ возможен, но не всегда оправдан. Можно преобразовать модель например в код на JavaScript или Python, чтобы сделать красивый веб‑интерфейс, спрятав все вычисления от пользователя. Но тогда теряется основное преимущество, которым обладала исходная модель на Excel, — гибкость, возможность самостоятельно легко менять исходные данные и уточнять расчеты.

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

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

Поэтому долгое время я мечтал том, чтобы появился инструмент, с помощью которого можно было бы легко опрашивать модели. И главное, давать возможность это делать внешним пользователям. С обязательным условием, чтобы именно исходный файл служил источником расчетов. Я представлял себе это как диалог в формате: «Эй, если у нас цена вырастет на 10%, а закупки сократятся на 5% и основновной поставщик еще поднимет цены на 7% в конце следующего квартала, то на какую выручку мы выйдем в конце года?»

Как-то так я себе представлял взаимодействие с моделью
Как‑то так я себе представлял взаимодействие с моделью

Архитектура сервиса

Long story short, c появлением нейросетей это стало возможно реализовать. Я начал делать себе небольшую кастомную надстройку (Excel addin), а в итоге это вылилось в полноценный веб‑сервис с фронтендом, бэкендом и даже мобильной частью (в формате миниаппов). К миниаппам я пришел в процессе. Оказалось удобно с их помощью реализовать другой способ общения с книгой (помимо изначально задуманного чата), мини‑калькуляторы.

Калькулятор к книге. Для расчетов используется настоящий живой Excel файл
Калькулятор к книге. Для расчетов используется настоящий живой Excel файл

Об устройстве этого сервиса я и хотел рассказать более подробно рассказать.

Упрощённо сервис выглядит так:

Упрощенная схема потока вычислений
Упрощенная схема потока вычислений

Точкой входа для пользователя является либо веб‑страница с калькулятором и чатом, либо миниапп в мессенджере (в настоящее время поддерживаются Telegram и MAX, скоро будет whatsapp). Далее расчеты могут идти по одному из двух возможных режимов: облачный (на сервере) или локальный (на машине пользователя). Результаты расчетов

В облачном режиме файл загружается на сервер. Отдельный бэкенд сервис на.NET 8 открывает книгу библиотекой EPPlus, подставляет значения во входные диапазоны, пересчитывает формулы и возвращает выходные значения либо готовый файл с результатами.

Почему движок вынесен из веб‑приложения:

  • расчёт книги — ресурсоёмкая и специфичная задача;

  • его жизненный цикл не должен зависеть от рендеринга страниц;

  • для него нужны собственные ограничения параллелизма, таймауты и кэш;

  • такую часть проще отдельно профилировать и в дальнейшем масштабировать.

Движок на.NET намеренно не знает о браузерных сессиях, Telegram и Excel‑надстройке. Он получает идентификатор владельца и команду на работу с книгой. Пользователей и правила доступа ведёт веб‑приложение, а связь между сервисами защищена server‑to‑server ключом и не выставлена напрямую в интернет.

У серверного расчёта есть ограничение: например, библиотека умеет пересчитывать формулы, но не исполняет VBA‑макросы. Для макросов нужна полноценная среда Excel и для таких книг возможен только локальный режим.

Локальный режим

Не все модели можно или хочется загружать в облако (по соображениям конфиденциальности, например). Поэтому у сервиса есть локальный режим, при котором книга остается у владельца. Сервер хранит только описание переменных и настройки публикации, но не саму книгу.

Excel‑надстройка (addin) на компьютере владельца поддерживает соединение с облаком. Когда посетитель меняет параметры калькулятора, команда передаётся надстройке, расчёт выполняется локальным Excel, а наружу возвращаются только нужные результаты.

Для канала к надстройке используется Server‑Sent Events. Здесь SSE оказался практичнее WebSocket: соединение в основном однонаправленное, технология работает поверх обычного HTTP и хорошо проходит через reverse proxy. Ответ на расчёт надстройка отправляет отдельным HTTPS‑запросом.

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

У этого режима есть очевидные недостатки: когда Excel владельца книги закрыт, то расчеты становятся недоступными.

Зачем понадобилась надстройка (Excel addin)

Надстройкой (addin) в Excel называют внешний плагин. Надстройка решает две задачи. Во‑первых, помогает размечать модель прямо внутри Excel. Пользователь выделяет ячейку, задаёт понятное название, отмечает её как вход или результат и при необходимости настраивает единицы, границы и шаг изменения.

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

Внешний вид установленной надстройки в Excel
Внешний вид установленной надстройки в Excel

Надстройка рассчитана на настольный Excel под Windows. Она написана на C#, использует Excel‑DNA для интеграции с лентой и WPF для боковой панели. Это не самый модный стек, но в данном случае технологию выбирает среда исполнения: нужно работать внутри Excel и обращаться к его объектной модели.

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

Разметка хранится внутри самой книги. Если файл перенести на другой компьютер, описания переменных путешествуют вместе с ним, а не остаются в локальных настройках надстройки.

Веб‑приложение и мобильные интерфейсы

Веб‑часть написана на Next.js, React и TypeScript. Она отвечает за личный кабинет, публичные калькуляторы, доступ пользователей, настройки публикации и выбор способа расчёта.

Те же калькуляторы можно открыть как мини‑приложения в Telegram и MAX. Я не стал делать для каждого канала отдельную копию продукта. Общими остаются расчёт, правила доступа и большая часть интерфейса. Отличается только обвязка конкретного мессенджера: авторизация, тема, кнопка «Назад» и возможность поделиться ссылкой.

Пользовательские данные хранятся в PostgreSQL. Для входа используется код из письма, без пароля. Для обмена событиями между частями приложения применяется Supabase Realtime. Сам набор Supabase развёрнут рядом с приложением в сокращённом виде: только база, авторизация и события, без сервисов, которые проекту не нужны.

Где в системе находится AI

Чат использует Alice AI LLM через Yandex AI Studio, но нейросеть не вычисляет результат и не интерпретирует формулы книги.

Её задача уже и безопаснее:

  1. сопоставить фразу пользователя с опубликованными входными переменными;

  2. извлечь значения в структурированном формате;

  3. при неоднозначности задать уточняющий вопрос;

  4. передать данные обычному вычислительному контуру.

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

Что в итоге

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

Для него решается два главных вопроса:

  • как поделиться книгой не делясь зашитыми в неё предпосылками и логикой расчетов;

  • как сделать так, чтобы его самого поменьше дергали на предмет пересчета модели.

Под капотом работают, по сути, три самостоятельных продукта: веб‑платформа, headless‑движок Excel и Windows‑надстройка. Сейчас первые два компонента работают на одном VPS, а вычислительный движок ограничивает число одновременных расчётов примерно по числу доступных CPU‑ядер.

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

Комментарии (0)