Недавно на созвоне финансовый аналитик показывал мне свою 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)

lz961
18.03.2026 10:34Все-таки скрипт на Питоне отличается от электронной таблицы. В отличие от скрипта последняя содержит кроме инструкций данные и результаты вычислений.
Кстати, на примере, Маткада можно утверждать, что в структурно более сложных вычислениях эта концепция "не взлетела".
Okeu
18.03.2026 10:34все-таки скрипт на Питоне отличается от электронной таблицы
скрипты могут быть разные. Например можно "перекладывать json" и результатом скрипта внезапно будет содержать данные и результаты вычислений) а то и вовсе окажется таблица))

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

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

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

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

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

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

bomitau
18.03.2026 10:34Кому интересно: никакой питон в подметки не годится vba. Питон надо устанавливать туда, где vba уже обжился. А это проблема с тем же сисадмином.
А я сисадмин и встречал столько проблем с Excel, что установка python даже в подмётки им не годится. Для прототипирования Excel незаменим, но когда от него начинает зависеть работа предприятия - это кошмар. Даже с 1С проще, так как там есть ответственный программист, клиент-серверная архитектура, а что там наворотят в своих таблицах сотрудники - словами не описать.
Сам тоже начинал с Excel и VBA, но давно уже забыл их, как страшный сон. Разве что какой-нибудь разовый расчёт там сделаю, отдам руководству и удалю навсегда.

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

bomitau
18.03.2026 10:34Ексел это типа "личный калькулятор". Работу предприятия вешать на него понятно - неправильно.
Личный калькулятор - это какой-нибудь бюджет домашний.
А на работе очень мало кто воспринимает свою табличку как свой личный проект и свою же проблему, если что-то не так. Сразу начинается не "это я тупой и не могу выполнять свои обязанности", а "компьютер не работает".

IAmBogdan
18.03.2026 10:34Из-за политики фирмы, где я сейчас прохожу стажировку, на компьютер нельзя ничего своего ставить, включая python. Пытался я решить достаточно простые задачи в VBA - это боль. VBA застрял в 2000 годах. Для программистов старой закалки может быть и ок, но мне не зашло.
(в оправдание exel скажу, что там стояла 32 битная версия 2016 года на 64 битном компьютере! Причем очень нормальном компьютере! Я не знаю что с этими людьми не так)

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

Surrogate
18.03.2026 10:34автокаде связь с EXCEL уже реализована (приходилось выводить данные в таблицы из чертежей, но комп нужен мощный)
Можно поподробнее, что за встроенный инструмент и какие данные можно вытянуть? Это реальная боль!

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

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

APetrMP
18.03.2026 10:34Вы много не понимаете. vba язык живой. потому что:
уже установлен везде, где есть "офис"
легко доступен и с простыми (при простых потребностях) правилами
с огромным сообществом
На производительность плевать. Самая долгая задача в моей практике длится четыре секунды. Ну пусть будет двадцать на каком ни будь неспешном компе у кого ни будь.
Питон туп. Доказательство: его нет ни на моей машине ни у кого из коллег. Что бы завести это животное, надо написать не одну докладную с обоснованием.
Но я знаю чем Вас порадовать. Когда работали на ACAD то много прикладных задач писал на lisp. Он тоже являлся составной частью системы. Питон намного быстрее инрепретатора lisp :) Я так думаю, не сравнивал правда. По крайней мере с ним проще.

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

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

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

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

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

entze
18.03.2026 10:34Не VBA единым. Есть же офигенский PowerQuery для манипуляции данными. Не самый удобный, но покорежить таблицы самое то.
Еще интересно, что развитие не останавливается как в самом Excel так и со стороны нейросетей с плагинами для Excel.

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

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

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

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

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

Astroscope
18.03.2026 10:34А ещё — и это, кажется, главное — пользователи Excel не идентифицируют себя как программистов.
Верное наблюдение. Я не считаю себя программистом. Однако посыл статьи совершенно правильный - Excel это полноценное, без оговорок, программирование. Просто в силу традиции мы, "программисты на Excel", ни сами себя таковыми не считаем, ни "настоящие" программисты нас таковыми не считают. Ну и не надо, значит.

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

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

Astroscope
18.03.2026 10:34Можно наверное и ОС написать на Excel чтобы Doom запустить
Ничего лишнего не нужно, просто запускаете и оно работает.

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

Kahelman
18.03.2026 10:34Microsoft, кажется, понимает ситуацию. LAMBDA и функции высшего порядка — это попытка дать Excel-программистам (да, программистам) более мощные инструменты, не заставляя их уходить из привычной среды.
Не соглашусь с Автором. похоже MS забит на развитие Excel.
За столько лет могли бы сделать нормальный редактор форму а не то убожество которое с 18хх года используют.
Все что они осилили: убрали лимит на 65000 строчек и прикрутили «резиновую» панель управления вместо нормального toolbox решение спорное/ на любителя но в приципе ничего не решает.
Да еще вроде как можно опрашивать источник данных боле-менее регулярно. Но это тоже давно и не факт что нормально работает.
Чего реально не хватает: версии под Linux. А учитывая их стремление в clouds где версия excel не та что на десктопе … перспективы вообще так себе.

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

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

itGuevara
18.03.2026 10:34Может быть есть фреймворк для разработки web приложений, где база на excel, но вместо vba - js.
Можно конечно использовать js библиотеки парсинга excel, но может есть что-то комплексное.
Пара ссылок из недавнего excel-образного:
excel-online https://github.com/bpmbpm/excel-online/tree/main/ver1
family-tree https://github.com/bpmbpm/family-tree/tree/main/ver7
А какая чудесная связка была: excel + visio, жаль, что visio забросил MS, а если бы довел до web - приложений (без своего SP), то можно было бы строить крутые графические системы с репозитарием на excel.
До excel работал в Supercalc.

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

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

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

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

K0styan
18.03.2026 10:34Смогли бы. Но тут кривая входа совсем другая. Какой-нибудь бухгалтер в первый день на первой работе запускает Excel и пишет там =A1+B1 - и это уже полезно в рамках его простой и маленькой задачи. Через неделю условие. Потом vlookup. Потом сводную. И так очень-очень плавно выходит на вот эти чудеса - не покидая окна с зелёной рамкой и серой сеткой.
А программирование ему придётся именно осваивать. Дополнительно, с нуля, ломая привычки (точнее, создавая новые). Это отдельная работа.
Притом Hello, World! в отличие от его самого первого =A1+B1 никому особо не нужен, а до получения такого кода, который можно будет использовать в уже сложившейся инфраструктуре, ему учиться и учиться.

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

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

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

bbc_69
18.03.2026 10:34Через неделю условие. Потом vlookup. Потом сводную. И так очень-очень плавно выходит на вот эти чудеса - не покидая окна с зелёной рамкой и серой сеткой.
Я вот не знаю ни одного человека, который использовал бы vlookup. Все как-то формулами обходятся. Потому и говорю, что мало кто им пользуется на всю катушку. Что не отменяет того факта, что эксель - мощная штука и даёт возможность много чего делать.
а до получения такого кода, который можно будет использовать в уже сложившейся инфраструктуре, ему учиться и учиться.
Потому что бизнесу нужен готовый инструмент, а не набор "сделай сам". В том и наш хлеб. А вообще, мысль интересная: можно ли начать программировать (и на чём) в текущих условиях с минимумом оверхеда. Ведь все эти гиты, CI и прочее - заморочки программистов. Не безосновательные, но может и не нужные в условиях бизнеса.
Самое ближайшее: макросы получаются.

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

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

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

wintikcistemny
Ясно, почему я не могу врубиться что я должен делать в Excel, и зачем мне это надо. Войти в айти через Excel, вот это вызов)
starfair
Это не вызов, а норма. Причем, я так понимаю это везде. Просто Excel для разного рода аналитики, это тоже самое, что Photoshop для обработки растровых изображений. А именно - инструмент с уже заранее заложенным ооочень большим набором возможностей, которые можно и не использовать, но они есть из коробки. А вот когда рядовой пользователь начинает это понимать - то тут и понеслась. Ну а когда он открывает для себя что есть ещё и возможность писать макросы и формочки лепить - то все, приехали в прикладное программирование скриптовыми языками.
vladkorotnev
Раньше байка ходила: в микрософте хотели оптимизировать и упростить эксель. Провели исследования и выяснили, что в среднем юзер использует только 10% от функциональности. Беда, правда, была в том, что каждый юзер использовал разные 10% :-)
Galkihtuw
Да, эксель стал монополистом и стандартом де факто) Конкуренты вроде гугл шитс и либре офис могут быть где-то удобнее в коллаборации или бесплатны, но когда дело доходит до тяжелых моделей с Power Pivot и макросами на 50 мегабайт, альтернатив экселю просто не существует
starfair
Хмм, это что же за такие макросы в 50Мб? Хотя, если сложные формы со всякой графикой то конечно можно и такие наваять :)
APetrMP
Это нормально, только использовать надо и vba и "надстройки" и тому подобные расширяющие пряники. Там узнаешь и про API и всего разного. Тогда вход будет естественным и по потребностям. По молодости я и в ассемблер скатывался, следуя этой тропинкой
Ndochp
У меня первая оплаченная программа - таблица в Supercalc :)
edyforest
У меня куча расплодилось, книг , сделанных мною, я уже про них забыл , им лет по 20 . Вас тётушки на куски порвут за них . Это надёжный механизм, быстро настраиваемый.