Недавно на созвоне финансовый аналитик показывал мне свою Excel-модель. Двенадцать листов, формулы ссылаются друг на друга через три уровня вложенности, именованные диапазоны вместо переменных, и INDIRECT, который динамически собирает адреса ячеек из строк. Я смотрел на это и думал: чувак, ты же написал компилятор. Ты просто не знаешь об этом.

750 миллионов человек используют Excel. Для сравнения — на Python пишут примерно 15 миллионов, на JavaScript — около 17. Excel обгоняет их всех вместе взятых раз в двадцать. И вот что забавно: подавляющее большинство этих людей искренне считают, что они «просто работают с таблицами». Заполняют ячейки. Делают отчёты.

Нет, они программируют.


Формулы — это функции. Буквально.

Возьмём обычную формулу:

=СУММ(A1:A10) * (1 + B2)

Что здесь происходит? Вызов функции СУММ с аргументом-диапазоном, результат умножается на выражение в скобках. Никаких побочных эффектов, формула не меняет другие ячейки. При одинаковых входных данных всегда возвращает одинаковый результат. Композиция — результат одной функции подставляется в другую.

Это же чистые функции. Это же, простите, функциональное программирование.

И я не натягиваю сову на глобус. Саймон Пейтон-Джонс — один из создателей Haskell, если кто вдруг не в курсе — работал в Microsoft Research и прямо говорил, что Excel самый успешный функциональный язык в истории. Ну, справедливости ради, он ещё добавлял «к сожалению» — но это уже детали )

Подумайте: каждая ячейка — это привязка имени к выражению. B5 — это не «ячейка», это переменная. =A1+A2 — это не «формула», это определение функции без аргументов. Лист — пространство имён. Книга — модуль.


VLOOKUP — это hash table lookup

=ВПР(E2; A:B; 2; ЛОЖЬ)

Переведём на человеческий: «найди значение E2 в первом столбце диапазона A:B, верни соответствующее значение из второго столбца, точное совпадение». Это dict.get(key) в Python. Это map.find(key) в C++. Это lookup в хеш-таблице.

А ИНДЕКС + ПОИСКПОЗ? Это тот же lookup, но с разделённой адресацией — сначала находим позицию, потом по позиции достаём значение. Двухфазный поиск, как в базах данных с отдельным индексом.

Гипотетический бухгалтер Марина из соседнего отдела, которая «просто делает сводную табличку», на самом деле пишет запросы к структурам данных. Марина — программист. Марина об этом не знает, и лучше ей пока не говорить (она и так нервничает перед квартальным отчётом).


IF(AND(...)) — привет, pattern matching

=ЕСЛИ(И(A1>100; B1="Москва"); "VIP"; ЕСЛИ(A1>50; "Стандарт"; "Эконом"))

Вложенные ЕСЛИ — это switch/case. Или, если посмотреть с определённого ракурса, pattern matching. Не самый элегантный, конечно. Семь уровней вложенности ЕСЛИ — это то ещё зрелище, и я видел двенадцать.

Но ведь работает же.

А SWITCH, добавленный в Office 365:

=SWITCH(A1; 1;"Январь"; 2;"Февраль"; 3;"Март"; "Неизвестно")

Это уже просто нормальный switch-case, без вложенности. Даже с дефолтным значением.

IFS, MAXIFS, COUNTIFS — всё это фильтрация с предикатами. =СЧЁТЕСЛИ(A:A; ">100") — это filter(lambda x: x > 100, data).count(). Просто записано через ячейки вместо кода.


LAMBDA: момент, когда Excel перестал притворяться

В 2021 году Microsoft добавила LAMBDA в Excel. И вот тут всё стало совсем серьёзно.

=LAMBDA(x; y; x^2 + y^2)(3; 4)

Анонимная функция. Принимает два аргумента, возвращает сумму квадратов. Вызывается сразу с аргументами 3 и 4. Результат — 25.

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

ГИПОТЕНУЗА = LAMBDA(a; b; КОРЕНЬ(a^2 + b^2))

Теперь =ГИПОТЕНУЗА(3; 4) возвращает 5. Пользовательская функция. Без VBA, без макросов, без единой строчки «настоящего» кода.

А ещё LAMBDA может вызывать сама себя. Рекурсия. В Excel.

ФАКТОРИАЛ = LAMBDA(n; ЕСЛИ(n<=1; 1; n * ФАКТОРИАЛ(n-1)))

Вместе с LAMBDA завезли MAP, REDUCE, SCAN, MAKEARRAY, BYROW, BYCOL. Это полноценные функции высшего порядка. MAP применяет лямбду к каждому элементу массива. REDUCE свёртывает массив в скаляр. Это буквально map и reduce из любого функционального языка, только в ячейках с рамочками.

Haskell-программисты сейчас либо плачут, либо обновляют резюме на «Senior Excel Developer».


Доказательство Тьюринг-полноты: Rule 110 в ячейках

Окей, но «похоже на программирование» и «Тьюринг-полон» — разные вещи. Можно ли на Excel вычислить всё, что вычислимо?

Можно. И это доказано.

Rule 110 — одномерный клеточный автомат, про который Мэтью Кук доказал Тьюринг-полноту в 2004 году. Правило простое: берём ячейку и двух её соседей (три бита → восемь комбинаций), для каждой комбинации определяем, будет ли ячейка живой в следующем поколении. «110» — это двоичное представление таблицы переходов: 01101110.

Реализация в Excel выглядит так (и это не шутка):

Строка 1 — начальное состояние. Одна ячейка = 1, остальные = 0.

Каждая последующая строка — новое поколение. Формула в ячейке B2:

=ЕСЛИ(ИЛИ(
  И(A1=1;B1=1;C1=1;0);
  И(A1=1;B1=1;C1=0;1);
  И(A1=1;B1=0;C1=1;1);
  И(A1=0;B1=1;C1=1;1);
  И(A1=0;B1=1;C1=0;1);
  И(A1=0;B1=0;C1=1;1);
  И(A1=0;B1=0;C1=0;0)
); 1; 0)

(Да, можно записать компактнее. Но так нагляднее.)

Копируем вправо и вниз. Включаем условное форматирование: 1 = чёрный, 0 = белый. И получаем характерный фрактальный треугольник Rule 110 — прямо в таблице.

Rule 110 — Тьюринг-полна. Excel реализует Rule 110. Следовательно, Excel — Тьюринг-полон.

Если вам кажется, что это слишком просто, то есть и другие подходы. Построение машины Тьюринга напрямую через ячейки (лента = строка, состояния = столбец, переходы через VLOOKUP). Реализация лямбда-исчисления через LAMBDA. Построение тега-систем. Все дороги ведут к одному: Excel вычисляет всё, что вычислимо.

(правда, он при этом может сожрать 16 гигабайт оперативки и зависнуть на полчаса, но это уже детали реализации)


Ужас из корпоративного мира

Знаете, что интересно? Не то, что Excel Тьюринг-полный язык. А то, что на этом Тьюринг-полном языке работает мировая финансовая система.

По разным оценкам, от 80% до 95% финансовых моделей в мире живут в .xlsx файлах. Инвестиционные банки. Хедж-фонды. Страховые компании. Центральные банки. Бюджеты государств. Всё это формулы в ячейках, без version control, без тестов, без code review.

И это ломается. Регулярно. Иногда эпически.

JPMorgan, 2012. Трейдер по прозвищу «Лондонский кит». Модель оценки рисков — Excel. Ошибка: в одной формуле вместо деления суммы на среднее стояло деление суммы на сумму. Copy-paste, забыли поправить. Результат — $6.2 миллиарда убытков. Из-за одной ячейки.

Расследование показало ещё кое-что: модель частично работала через ряд связанных Excel-файлов, и часть данных между ними передавалась copy-paste вручную. Вы представляете? Риск-модель банка с активами в $2.6 триллиона на copy-paste.

MI5, 2011. Британская контрразведка. Excel-таблица с телефонными номерами подозреваемых. Формат номера автоматически конвертировался — лишние цифры отбрасывались. Результат: прослушивали не тех людей.

Barclays, 2008. При покупке активов Lehman Brothers скрытые строки в Excel не были замечены при конвертации в PDF. Barclays случайно включил в сделку 179 контрактов, которые не собирался покупать.

И мой любимый жанр — «генетика vs. Excel». Десятки научных статей содержали ошибки, потому что Excel услужливо конвертировал названия генов в даты. SEPT2 (Septin 2) → 2-Sep. MARCH1 → 1-Mar. В 2020 году научное сообщество сдалось и переименовало 27 генов. Не Excel поправили, а гены переименовали. Видимо Excel победить невозможно.


Почему мы не относимся к этому серьёзно

Есть такой когнитивный фокус: мы не воспринимаем Excel как язык программирования, потому что у него нет атрибутов «настоящего» программирования. Нет текстового редактора с подсветкой синтаксиса (ну, формулы подсвечиваются, но это не считается, да?). Нет git. Нет Stack Overflow-тредов с пометкой [excel-lang].

А ещё — и это, кажется, главное — пользователи Excel не идентифицируют себя как программистов. Финансист не скажет «я пишу код». Он скажет «я строю модель». HR не скажет «я поддерживаю legacy-систему». Она скажет «я обновляю табличку с отпусками».

Но если мы применим формальные критерии:

  • Переменные? Ячейки.

  • Функции? Формулы. С LAMBDA — пользовательские функции с рекурсией.

  • Условная логика? IF, IFS, SWITCH.

  • Циклы? Ну, формально — через рекурсию в LAMBDA и через протягивание формул вниз (итерация по массиву).

  • Структуры данных? Таблицы, именованные диапазоны, массивы.

  • Ввод-вывод? Ячейки ввода, ячейки вывода, Power Query для чтения данных.

  • Тьюринг-полнота? Доказана.

Это язык программирования. Просто с очень необычным IDE.

(Кстати, хоть и необычным, но удивительно удобным для определённого класса задач. Мгновенная визуализация данных, zero deployment, отладка через тыканье в ячейки — попробуйте получить такой feedback loop в Python.)


Спагетти из ячеек

Каждый, кто наследовал чужой Excel-файл, знает это чувство. Открываешь, а там 47 листов. Формулы ссылаются на другие файлы, которых нет. Именованные диапазоны с именами типа xlnm.PrintArea. Циркулярные ссылки, которые «так и задумано». Условное форматирование на 200 правил. И где-то на листе «Лист3 (2) — копия» — та самая формула, от которой зависит весь квартальный отчёт.

Это же спагетти-код. Это буквально спагетти-код, только в ячейках. И самое грустное — к нему применимы все те же проблемы, от которых страдает обычный legacy: нет документации, автор уволился, никто не понимает почему оно работает, и все боятся что-то менять.

Только в обычном программировании мы хотя бы придумали инструменты: линтеры, тесты, CI/CD, code review. В Excel-мире этого (почти) нет. PwC делали исследование — 88% корпоративных таблиц содержат ошибки.

Мы бы ни за что не допустили такой уровень багов в продакшен-коде. Но в Excel — пожалуйста, вот ваш бюджет на 2026 год, в строке 847 формула ссылается не на тот столбец, удачи.


Что с этим делать

Можно, конечно, сказать «перепишите всё на Python». Ага. Скажите это финансовому директору, который 20 лет строит модели в Excel и чей мозг в буквальном смысле думает ячейками. Он вас вежливо пошлёт. И будет прав — его Excel-модель, при всех её проблемах, работает прямо сейчас, а ваш Python-скрипт надо ещё написать, протестировать, задокументировать, и убедить двадцать человек им пользоваться.

Microsoft, кажется, понимает ситуацию. LAMBDA и функции высшего порядка — это попытка дать Excel-программистам (да, программистам) более мощные инструменты, не заставляя их уходить из привычной среды. Power Query — это ETL прямо в Excel. Power Pivot — OLAP. Типы данных — это, по сути, структуры.

Может, правильный подход — не вытаскивать людей из Excel, а принести в Excel практики нормальной разработки? Тестирование, модульность?

А может, стоит просто признать очевидное. 750 миллионов людей пишут код каждый день. Они используют функциональный, Тьюринг-полный язык с графическим интерфейсом и мгновенным feedback loop. Этот язык запускает мировую финансовую систему, корпоративное планирование и половину научных исследований.

Но интересно, что самый массовый язык программирования в истории — тот, чьи пользователи не знают, что они программисты.

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


  1. wintikcistemny
    18.03.2026 10:34

    Ясно, почему я не могу врубиться что я должен делать в Excel, и зачем мне это надо. Войти в айти через Excel, вот это вызов)


    1. starfair
      18.03.2026 10:34

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


      1. vladkorotnev
        18.03.2026 10:34

        Раньше байка ходила: в микрософте хотели оптимизировать и упростить эксель. Провели исследования и выяснили, что в среднем юзер использует только 10% от функциональности. Беда, правда, была в том, что каждый юзер использовал разные 10% :-)


      1. Galkihtuw
        18.03.2026 10:34

        Да, эксель стал монополистом и стандартом де факто) Конкуренты вроде гугл шитс и либре офис могут быть где-то удобнее в коллаборации или бесплатны, но когда дело доходит до тяжелых моделей с Power Pivot и макросами на 50 мегабайт, альтернатив экселю просто не существует


        1. starfair
          18.03.2026 10:34

          Хмм, это что же за такие макросы в 50Мб? Хотя, если сложные формы со всякой графикой то конечно можно и такие наваять :)


    1. APetrMP
      18.03.2026 10:34

      Это нормально, только использовать надо и vba и "надстройки" и тому подобные расширяющие пряники. Там узнаешь и про API и всего разного. Тогда вход будет естественным и по потребностям. По молодости я и в ассемблер скатывался, следуя этой тропинкой


    1. Ndochp
      18.03.2026 10:34

      У меня первая оплаченная программа - таблица в Supercalc :)


    1. edyforest
      18.03.2026 10:34

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


  1. dimsoft
    18.03.2026 10:34

    Microsoft Office Specialist: Excel Expert

    экзамен: MO-201


  1. lz961
    18.03.2026 10:34

    Все-таки скрипт на Питоне отличается от электронной таблицы. В отличие от скрипта последняя содержит кроме инструкций данные и результаты вычислений.

    Кстати, на примере, Маткада можно утверждать, что в структурно более сложных вычислениях эта концепция "не взлетела".


    1. Okeu
      18.03.2026 10:34

      все-таки скрипт на Питоне отличается от электронной таблицы

      скрипты могут быть разные. Например можно "перекладывать json" и результатом скрипта внезапно будет содержать данные и результаты вычислений) а то и вовсе окажется таблица))


      1. lz961
        18.03.2026 10:34

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


        1. Okeu
          18.03.2026 10:34

          Если скрипт передает данные по API в какой-то процесс, это считается?
          И вообще, кто тут первый форточку закрыл? :)


        1. Dr_Faksov
          18.03.2026 10:34

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

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


        1. andyblaster
          18.03.2026 10:34

          Можно добавить немного специй, и приправить питон маркдауном, взяв на рассмотрение скрипт на юпитер-ноутубке, который будет удовлетворять требованиям)


          1. lz961
            18.03.2026 10:34

            нет не получится. В jupyter нет автоматического пересчета зависимых ячеек, и вряд ли когда-нибудь появится.


            1. etareduction
              18.03.2026 10:34

              А вот в livebook есть


  1. APetrMP
    18.03.2026 10:34

    По мне, это очевидно "язык". Помню как показал коллеге, как просто (относительно Ексел) создавать нужную "функцию" на vba. Он ответил: "я не намерен программировать". ! И по сей день пишет то самое на чистом Ексел. :) Некоторые файлы настолько эпичны, что не перестаю завидовать и гибкости ума коллеги, и его усидчивости, и его внимательности... За то, как люди реализуют на чистом Ексел простую "интерполяцию таблицы" - уже можно бы медаль давать...

    Кому интересно: никакой питон в подметки не годится vba. Питон надо устанавливать туда, где vba уже обжился. А это проблема с тем же сисадмином.


    1. bomitau
      18.03.2026 10:34

      Кому интересно: никакой питон в подметки не годится vba. Питон надо устанавливать туда, где vba уже обжился. А это проблема с тем же сисадмином.

      А я сисадмин и встречал столько проблем с Excel, что установка python даже в подмётки им не годится. Для прототипирования Excel незаменим, но когда от него начинает зависеть работа предприятия - это кошмар. Даже с 1С проще, так как там есть ответственный программист, клиент-серверная архитектура, а что там наворотят в своих таблицах сотрудники - словами не описать.

      Сам тоже начинал с Excel и VBA, но давно уже забыл их, как страшный сон. Разве что какой-нибудь разовый расчёт там сделаю, отдам руководству и удалю навсегда.


      1. APetrMP
        18.03.2026 10:34

        Ексел это типа "личный калькулятор". Работу предприятия вешать на него понятно - неправильно. Но и добавлять питон, когда есть встроенное средство - так же неверно. Я пишу на vba разные фрагменты расчетов, предписанные СводамиПравил. Чтобы распространить по коллегам вполне достаточно штатного файла Екселя. Ну плюс одной "надстройки" иногда, тоже штатный файл.

        Коллега делал то же на питон. Ради своего "роста". В итоге полдюжины, а то и больше файлов, которые надо еще "правильно" установить на каждой машине. Без сисадмина такое не решить.


        1. bomitau
          18.03.2026 10:34

          Ексел это типа "личный калькулятор". Работу предприятия вешать на него понятно - неправильно.

          Личный калькулятор - это какой-нибудь бюджет домашний.

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


    1. IAmBogdan
      18.03.2026 10:34

      Из-за политики фирмы, где я сейчас прохожу стажировку, на компьютер нельзя ничего своего ставить, включая python. Пытался я решить достаточно простые задачи в VBA - это боль. VBA застрял в 2000 годах. Для программистов старой закалки может быть и ок, но мне не зашло.

      (в оправдание exel скажу, что там стояла 32 битная версия 2016 года на 64 битном компьютере! Причем очень нормальном компьютере! Я не знаю что с этими людьми не так)


      1. Dmitry_8791
        18.03.2026 10:34

        Это называется: "Зачем нам буржуйский Автокад, у нас же Нанокад (недоделанный) есть!" Такая же история: вот просто ЗАПРЕЩЕНО, а не технически неосуществимо. При этом - равноценного (по функционалу) российского софта просто нет, натягивайте носок через голову и не стесняются спрашивать после этого: "Почему так долго?! Надо быстрее работать!" - а чайной ложкой вместо экскаватора котлован выкопать не желаете?

        Ответ на вопрос: "Что с этими людьми не так?" - прост до изумления: Вы программированию учились 5 (пять) лет в ВУЗе, и полагаете, что бухгалтер учился 3 года зря? А может всё же сделать: 1) распознавание (машинным зрением) с бумажных носителей в 1С (ведь люди ошибаются, вводя тексты и цифры вручную); 2) весь документооборот соединить с 1С (вместо посторонних сервисов); 3) распознавание и проверка подписей (сотрудников, ответственных за подписание накладных и т.п. сопроводительных документов); 4) нормальную связь (а не а-ля факс из 1990-х по РФ). Что происходит в Москве - неделю интернет в лёжку лежит... Ещё телефон запретят, так придётся барабаны из Африки привозить - хоть морзянкой сообщения пересылать... Как бы программирование: это формализация процессов (всех), приходилось даже встречать автокраны и прочие грузоподъёмные машины (в autoLISP сделаны) для удобства разработчика проектов производства работ (но наша компания отказалась этот модуль покупать - про "буржуйский автокад" выше писал, в нанокад такого нет и не предвидится, энтузиасты - это не система, свой кран нарисовал, все прочие делайте как и что хотите) и создание доступа к этим процессам из интерфейса, в котором пользователь УЖЕ СЕЙЧАС РАБОТАЕТ. Извините за много букв, но вот все претензии к нанокаду: 1) он дороже автокада; 2) функционал меньше; 3) 3D модуль в нанокад - заплати отдельно (за гранью здравого смысла, это дикий капитализм). Куда-то не туда программирование свернуло получается - вместо облегчения труда, "давайте, ребята, вы тоже будете программирование учить!" - а программисты тогда для чего?! И в автокаде связь с EXCEL уже реализована (приходилось выводить данные в таблицы из чертежей, но комп нужен мощный), в нанокаде - пока всё печально.


        1. Surrogate
          18.03.2026 10:34

          автокаде связь с EXCEL уже реализована (приходилось выводить данные в таблицы из чертежей, но комп нужен мощный)

          Можно поподробнее, что за встроенный инструмент и какие данные можно вытянуть? Это реальная боль!


      1. APetrMP
        18.03.2026 10:34

        Вот вот!


      1. navferty
        18.03.2026 10:34

        Вообще, VBE очень крутая среда для своего времени. Да в принципе, даже сейчас я могу сказать, что там есть большинство функций, которые я использую регулярно в своей работе в современной Visual Studio (кроме наверно редактирования текста, например alt-вверх/вниз чтобы переставить строки и multiple carets фичи). Там есть достойная навигация по коду (go to definition), есть окна locals, watches, свой REPL-терминал, можно ctrl-tab'аться по открытым вкладкам с модулями и много чего ещё.

        Если Вам приходится работать в VBA, я очень рекомендую изучить продвинутые способы работы с ним, тогда и работать будет намного легче и приятнее: следуя принципу "знай свой инструмент".


    1. Galkihtuw
      18.03.2026 10:34

      Заявление из разряда "тележка лучше грузовика, потому что для тележки права не нужны") VBA мертвый язык из 90х, однопоточный, с ужасной стандартной библиотекой и отвратительной производительностью на больших массивах данных. Питон рвет его на куски в любой задаче сложнее перекрашивания ячеек


      1. APetrMP
        18.03.2026 10:34

        Вы много не понимаете. vba язык живой. потому что:

        • уже установлен везде, где есть "офис"

        • легко доступен и с простыми (при простых потребностях) правилами

        • с огромным сообществом

        На производительность плевать. Самая долгая задача в моей практике длится четыре секунды. Ну пусть будет двадцать на каком ни будь неспешном компе у кого ни будь.

        Питон туп. Доказательство: его нет ни на моей машине ни у кого из коллег. Что бы завести это животное, надо написать не одну докладную с обоснованием.

        Но я знаю чем Вас порадовать. Когда работали на ACAD то много прикладных задач писал на lisp. Он тоже являлся составной частью системы. Питон намного быстрее инрепретатора lisp :) Я так думаю, не сравнивал правда. По крайней мере с ним проще.


  1. Khayol
    18.03.2026 10:34

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

    Сейчас я пишу на разных языках программирования, но мои первые проекты были именно в Excel VBA.

    Excel — хороший инструмент.


    1. maxscitech
      18.03.2026 10:34

      Я тоже начинал с VB и VBA. Даже как - то давно писал код на VBA для считывания данных по нескольким сom-портам и их прямой обработке в Excel с автоматической отрисовкой графиков, отчетами, дальнейшей печатью и прочими плюшками. Непосредственно использовались и формулы в ячейках. Очень удобно, гибко, наглядно и все в одном флаконе.


    1. Feedman
      18.03.2026 10:34

      "писать на vba" это обычное программирование. Автор все же пишет о другом.


    1. shlmzl
      18.03.2026 10:34

      Сейчас я пишу на разных языках программирования, но мои первые проекты были именно в Excel VBA.

      Первый программатор микроконтроллеров был на VBA из Excel четверть века назад. На VBA можно линиями COM порта управлять. Преобразователи уровней сигналов на MAX232 стоили копейки. Алгоритм программирования PIC16F простой и был очень подробно описан в даташите. Чем тратить время на изучение какие есть программаторы, было проще соорудить свой. Инструкции кода пишешь в ячейках Excel, VBA код их берет оттуда и прошивает в PIC16F. Даже ассемблер был не нужен на небольших программах, всего 35 инструкций у PIC16F насколько помню, прямо в машинных кодах и пишешь, ассемблер в голове автоматом эту нехитрую мнемонику добавляет.


    1. mkv66
      18.03.2026 10:34

      Посмотрите на Visual Studio Community | Скачать последнюю бесплатную версию , если не использовали, то будете приятно удивлены уровнем "комфорта" при использовании инструмента. Языки можно использовать разные, под разные задачи (операционные системы). Бейсик - нет препятствий... Наличие модульных тестов - существенное повышение качества кода.


      1. navferty
        18.03.2026 10:34

        Есть такая штука - Rubberduck. Надстройка для visual basic editor. Так в том числе есть и юнит-тесты. В каких-то версиях там даже была интеграция с git, но почему-то её выпилили.


  1. entze
    18.03.2026 10:34

    Не VBA единым. Есть же офигенский PowerQuery для манипуляции данными. Не самый удобный, но покорежить таблицы самое то.

    Еще интересно, что развитие не останавливается как в самом Excel так и со стороны нейросетей с плагинами для Excel.


  1. VashKO
    18.03.2026 10:34

    Прикольная статья.
    Я об этой концепции написал в своем курсаче в 1989 году. Правда тогда это был еще не Excel а Framework III для DOS.
    Но тоже и язык был и возможность строить сложные многообъектные документы и прочая и прочая.


  1. old_gamer
    18.03.2026 10:34

    На самом деле проблема тестов и вершн контроля в экселе очень даже видна и решается уже давно во многих компаниях. У нас делается так: на каждом рабочем месте по умолчанию в эксель интегрирован адд-он, который пишется квантами на С++ и добавляет в эксель формулы для инхаус моделей.
    Новая модель прототипируется в экселе, и, после первоначального тестирования пользователем, который ее разработал, идет к квантам, которые ее верифицируют, переписывают на плюсах и включают в библиотеку. Так пользователь и продолжает работать в экселе, но вся модель теперь доступна через новые втроенные функции, а вершн контрол и все тесты делаются на библиотечных функциях.
    Вин-вин получается.


  1. GorkyUser
    18.03.2026 10:34

    10 лет назад с придыханием смотрел ролик, как в Excel автор рисовал айфон. Получился даже 3D айфон - при экспорте в картинку не отличишь от поделия 3D редактора.


    1. Wizard_of_light
      18.03.2026 10:34

      Был какой-то японский художник, который Ехсеl как растровый редактор использовал.


      1. stanced
        18.03.2026 10:34

        Tatsuo Horiuchi, довольно неплохие работы)


      1. GorkyUser
        18.03.2026 10:34

        По моим воспоминаниям художник-айфонист карандашом не пользовался. Только формы, заливки... т.е. рисовал в парадигме векторной графики.


  1. Astroscope
    18.03.2026 10:34

    А ещё — и это, кажется, главное — пользователи Excel не идентифицируют себя как программистов.

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


  1. Neusser
    18.03.2026 10:34

    Самое главное доказательство!

    Скрытый текст


  1. bolk
    18.03.2026 10:34

    Тут были статьи про неплохие игры на Экселе и, если не ошибаюсь, 3Д-движок, так что не удивлён.


  1. JobManKazakh
    18.03.2026 10:34

    Можно наверное и ОС написать на Excel чтобы Doom запустить


    1. Kahelman
      18.03.2026 10:34

      По моему уже было. По крайней мере алгоритм визуализации лабиринта как в Doom делали.


      1. Int_13h
        18.03.2026 10:34

        Doom был встроен в виде пасхалки


    1. Astroscope
      18.03.2026 10:34

      Можно наверное и ОС написать на Excel чтобы Doom запустить

      Ничего лишнего не нужно, просто запускаете и оно работает.


      1. DanielKross
        18.03.2026 10:34

        "Uses python for main code"


  1. solderman
    18.03.2026 10:34

    Хэх, начинал в кодах ассемблируя по таблицам и помещении оных в контроллер тумблерами :))) ну в экселе можно и выкрутиться чисто ячейками, но иногда проще и в вба написать.

    Чем отличается фея от ведьмы? Настроением :)))


  1. Kahelman
    18.03.2026 10:34

    Microsoft, кажется, понимает ситуацию. LAMBDA и функции высшего порядка — это попытка дать Excel-программистам (да, программистам) более мощные инструменты, не заставляя их уходить из привычной среды.

    Не соглашусь с Автором. похоже MS забит на развитие Excel.

    За столько лет могли бы сделать нормальный редактор форму а не то убожество которое с 18хх года используют.

    Все что они осилили: убрали лимит на 65000 строчек и прикрутили «резиновую» панель управления вместо нормального toolbox решение спорное/ на любителя но в приципе ничего не решает.

    Да еще вроде как можно опрашивать источник данных боле-менее регулярно. Но это тоже давно и не факт что нормально работает.

    Чего реально не хватает: версии под Linux. А учитывая их стремление в clouds где версия excel не та что на десктопе … перспективы вообще так себе.


  1. Sqwair
    18.03.2026 10:34

    Тоже мне открытие. Я в экселе ещё лет 10 назад наделал такихх формул с условными операторами, чтоб быстрее и удобнее считать было. Забиваешь размеры на сколь угодно большое количество позиций, толшину стекла, наличие отверстий, шлифовку или ее отсутствие и т.д. И выводится общая стоимость, стоимость отверстий, обработки, самого стекла... Тут даже программирование изучать не нужно, всё делается средствами самой таблицы. Но если уж очень надо что-то эдакое, можно макросов нафигачить на встроенном VBA.

    Но так-то сравнивать программирование и расчеты с графиками в таблицах некорректно. Это совершенно разные инструменты и для разных целей.

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


    1. mkv66
      18.03.2026 10:34

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


  1. itGuevara
    18.03.2026 10:34

    Может быть есть фреймворк для разработки web приложений, где база на excel, но вместо vba - js.

    Можно конечно использовать js библиотеки парсинга excel, но может есть что-то комплексное.

    Пара ссылок из недавнего excel-образного:

    А какая чудесная связка была: excel + visio, жаль, что visio забросил MS, а если бы довел до web - приложений (без своего SP), то можно было бы строить крутые графические системы с репозитарием на excel.

    До excel работал в Supercalc.


    1. Sergostan
      18.03.2026 10:34

      Excel add-in tutorial - Office Add-ins
      learn.microsoft.com


      1. itGuevara
        18.03.2026 10:34

        Может (не разобрался). Полагаю, что на браузерном js это не сработает. Под браузерный js (или универсальный вариант js / node.js) есть что-то?


    1. mkv66
      18.03.2026 10:34

      Есть, от Microsoft - Сервер отчётов (SQL Server Reporting Services Что такое службы SQL Server Reporting Services? - SQL Server Reporting Services (SSRS) | Microsoft Learn ) умеет работать с таблицами Excel, только без  js, но особо и не надо, можно "мышкой натыкать".


    1. Surrogate
      18.03.2026 10:34

      В Visio есть таблицы свойств a.k.a ShapeSheet это более похоже на язык программирования! Эта электронная таблица содержит такие сведения, как высота, ширина, угол, цвет и другие атрибуты, определяющие внешний вид и поведение фигуры. Можно использовать параметрические зависимости…


      1. diverdm
        18.03.2026 10:34

        Во FreeCAD параметры модели так и задаются, в табличном редакторе. Не excel, конечно, но похоже)


  1. bbc_69
    18.03.2026 10:34

    Несколько ортогональная мысль: большинству экселя волне хватает и программирование им вообще не нужно.

    А может, стоит просто признать очевидное. 750 миллионов людей пишут код каждый день

    Подозреваю, что большая часть из этих людей ничего сложнее =A1+B1 не пишет. Реально крутые штуки делает куда меньшее количество людей. Но они бы и программирование освоить смогли бы.


    1. K0styan
      18.03.2026 10:34

      Смогли бы. Но тут кривая входа совсем другая. Какой-нибудь бухгалтер в первый день на первой работе запускает Excel и пишет там =A1+B1 - и это уже полезно в рамках его простой и маленькой задачи. Через неделю условие. Потом vlookup. Потом сводную. И так очень-очень плавно выходит на вот эти чудеса - не покидая окна с зелёной рамкой и серой сеткой.

      А программирование ему придётся именно осваивать. Дополнительно, с нуля, ломая привычки (точнее, создавая новые). Это отдельная работа.

      Притом Hello, World! в отличие от его самого первого =A1+B1 никому особо не нужен, а до получения такого кода, который можно будет использовать в уже сложившейся инфраструктуре, ему учиться и учиться.


      1. mkv66
        18.03.2026 10:34

        Потом бухгалтер увольняется... И никто не знает откуда что взялось. Любительские поделки на Excel абсолютно не надёжны, даже в рамках небольших расчётов - как проверить правильность результата?


        1. GodAdministrator
          18.03.2026 10:34

          Ну как вам сказать.... Человек из сферы Экселя просто проскачет по формулам и всё поймёт. Лично я понимаю расчёт любой таблицы Эксель (если не использовался код в расчёте). Любой степени сложности.


      1. RedSurh
        18.03.2026 10:34

        Было дело. Именно как какому-нибудь бухгалтеру приспичило проверить с помощью Excel правильность насчитанных (в программе) предшественниками за годы сумм амортизации. Оказалось, часть позиций действительно не совпала. Незначительно, но я, как перфекционист, если не понимаю происхождения копейки, начинаю переживать за миллионы. Пришлось найти, что ещё эти позиции объединяет и вычислить, что считала машина. И уже с этими данными обращаться за внесением изменений в программу.


      1. bbc_69
        18.03.2026 10:34

        Через неделю условие. Потом vlookup. Потом сводную. И так очень-очень плавно выходит на вот эти чудеса - не покидая окна с зелёной рамкой и серой сеткой.

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

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

        Потому что бизнесу нужен готовый инструмент, а не набор "сделай сам". В том и наш хлеб. А вообще, мысль интересная: можно ли начать программировать (и на чём) в текущих условиях с минимумом оверхеда. Ведь все эти гиты, CI и прочее - заморочки программистов. Не безосновательные, но может и не нужные в условиях бизнеса.

        Самое ближайшее: макросы получаются.


        1. navferty
          18.03.2026 10:34

          Так vlookup (он же - ВПР в рус. версии) - это и есть формула. И на моём опыте - знал 10 лет назад немало коллег (в гос. учреждении), которые неплохо им владели, наряду с другими формулами (но тут мой anecdotal evidence против Вашего).


          1. qyix7z
            18.03.2026 10:34

            Обычно те, кто освоил =ВПР(), уже пишут в резюме "продвинутый пользователь" эксель


          1. bbc_69
            18.03.2026 10:34

            Поддержу оратора выше. Я работал в обычной коммерческой конторе и там о таком слыхом не слыхивали и даже не пытались. Как-то сделал так, чтобы сумма прописью сама правильно прописывалась с учётом всех склонений. Так меня чуть ли не Пророком объявили.


            1. qyix7z
              18.03.2026 10:34

              чтобы сумма прописью сама правильно прописывалась с учётом всех склонений

              Делали собственную реализацию или готовую в инете взяли?


              1. bbc_69
                18.03.2026 10:34

                Ой, да уж и не вспомню - давно это было. Скорее всего в интернете, плюс сам подправил чего по мелочи.