Обновить

Самый популярный язык программирования — Excel. И он Тьюринг-полный

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели19K
Всего голосов 66: ↑65 и ↓1+75
Комментарии43

Комментарии 43

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

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

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

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

Microsoft Office Specialist: Excel Expert

экзамен: MO-201

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

"Uses python for main code"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Функционал Эксель, ограничивается только фантазией человека.

У меня батя, строительные чертежи в Эксель делает, так как не хочет во всяких CAD-ах разбираться 😁

У меня батя, строительные чертежи в Эксель делает

Фрагмент кабельной канализации г. Новосибирска

Знакомые ребята присылали 7 лет назад, говорили у них на тот момент пол-города в Excel нарисовано. Может уже весь город забацали 🤣

Вы просто не владеете отьектной моделью MS Office.

Чего не хватает табличным редакторам:
- стандартизации функций между разными вендорами разных продуктов. Сейчас все во все стороны потянулись придумывать, раньше хоть только за Excel подсматривали.
- системы проверки формул в столбце на идентичность соседним строкам (или столбцам)
- адекватного импорта-экспорта данных во внешние API
- возможности назначать права на видимость столбцов данных для различных пользователей
- возможность создавать некие представления таблицы - например, отдел А видит определенный набор столбцов, отдел Б - другие столбцы. Сейчас для этого предлагается городить всякие NoCode системы, весьма ущербные по сравнению с сабжем.

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

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

VLOOKUP — это hash table lookup

да, есть только одна проблема! hash table делает это за O(1), а VLOOKUP это O(n) и они различаются как бы на 2 поколения по скорости.
Именно поэтому потолок автоматизации на чистых формулах очень быстро достигается. Вот когда пересчет формул занимает несколько минут, когда от автопересчета уже давно отказались и запускают его отдельной кнопкой и идут пить чай.

На сколько помню, кроме VBA они ещё и встроенный Питон недавно завезли

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации