Pull to refresh

Comments 172

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

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

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

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

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

макросы прошлый век. Сейчас там рулит DAX

Когда рядовой пользователь откроет Jupiter и всякие panda то он забудет что такое Эксель как страшный сон. Ну и к тому же отваливать ежегодно баблосики старому другу Эпштейна ( а Эксель нельзя купить, можно только подписаться) не очень хочется.

Если так сильно надо в таблички поиграться и нет секретных данных то гугль щит рулит. Хотя бы тем что там встроенная нейронка.

никогда "Jupiter и всякие panda" не заменят экселя. Порог входа на порядок сложнее

Согласен не заменят.

Даже альтернативы Pluto - с реактивными расчетами в ноутбук - все это сложно для рядового пользователя. Требует сервера - удобно только для экспертов со сложными моделями.

Excel - не победим :)

я переодически перехожу на Google Sheets, когда команда и все данные уже на Google Drive.

Но на локале делаю модели в Excel , делаю charts для финальных отчетов - т к знаю как там это быстрее сделать.

и купить разово можно

Как, и главное, зачем, мне во всяких panda вести обычные домашние таблички типа расходы на квартиру/ипотеку, портфельчик с акциями и прочую мелочуху?

Порог входа намного выше

Технических знаний надо больше

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

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

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

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

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

Microsoft Office Specialist: Excel Expert

экзамен: MO-201

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

32- битная версия 2016 года на 64 битном компьютере

А в чем криминал? Я про разрядность. Разницы в работе не замечено. Если не ворочать 50-мегабайтные файлы, конечно.

Сам, кстати, сижу на 2016 офисе до сих пор, т. к. есть лицензия, а новой, увы, не предвидится.

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

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

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

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

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

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

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

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

До сих пор пишу на 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 насколько помню, прямо в машинных кодах и пишешь, ассемблер в голове автоматом эту нехитрую мнемонику добавляет.

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

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

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

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

еще есть DAX

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

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

Это у вас не version control в экселе, это он же в плюсах. Речь у автора именно о такой ситуации, когда нужная работа выполняется в экселе (не для всего же плюсы?), и нет возможности понять, кто что и зачем и когда изменил в этом экселе.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Zoomable-графиков не хватает! Проанализировать загруженные большие временные ряды в экселе - это боль!

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

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

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

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

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

Пусть надо ввести некоторое расстояние (размер), в каких единицах - мм, км, попробуй вспомнить не подписав... Я про это и не только. Тест очень простой, выдадим документ другому человеку, без объяснений что и куда вводить, задача - сделать расчёт.

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

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

Всё само

Как-то это вот прям очень знакомо...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

верить расчётам, в которые могут случайно вноситься изменения.

Защитить листы/книги религия не позволяет? Да и верить надо не расчетам, а тому, кто их производит. Если сам их делаешь, то откуда случайные изменения?

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

"Защитить листы/книги ..." в общем фикция.
Я согласен, что специальный софт не гарантирует отсутствие ошибок, а всего лишь снижает вероятность ошибки. В этом случае специалист может сделать проверку на EXCEL, не для всего объёма вычислений, а самый минимум.

в общем фикция.

Вопрос: от кого защищаемся? От нерадивого сотрудника, который случайно сбил формулу? Или злобный хакер хочет поменять + на - в отчете о продажах?

Мы же вроде об этом:

в которые могут случайно вноситься изменения.

Если что, я сам регулярно снимаю защиту в эксель (когда такие приходят и есть необходимость в этом), но при этом важные книги у меня защищены от изменений (без защиты листов) паролем "1". Вот чисто от случайных изменений. А сотрудникам объяснил, что когда открываешь книгу, думай для чего открываешь. Хочешь действительно что-то изменить, или только посмотреть? Ткнуть "Только для чтения" быстрее, чем набирать пароль.

Это и есть основной вопрос - есть или нет необходимость контроля. Расчёты в EXCEL (документы) я делаю только для себя, не передаю другим.

основной вопрос - есть или нет необходимость контроля

Тогда почему такой вывод:

в общем фикция

?

Я имею ввиду, что реальной защиты от изменения кода нет. В случае неверных расчётов крайним останется автор (разработчик). Если нет необходимости контроля, т.е. кто считает тот и отвечает, то нет проблемы, но это только при любительском подходе (для себя).

что реальной защиты

Мне кажется, что мы ходим по кругу. От кого "реальная" защита?

Другими словами - минимизация вероятности ошибок результата расчётов. Вопрос "от кого защита" не звучит совсем.

минимизация вероятности ошибок результата расчётов

Для этого достаточно пароля "1". И я не понимаю, почему для этих целей Вы считаете "реальной защиты от изменения кода нет" и "в общем фикция".

любой код, доступный на изменение, уязвим. Даже "простое" изменение типа (формат ячейки) может привести к изменению результата. Пишу "может", потому что может и не привести. Например, если формат текст без апострофа и в ячейке число, excel воспринимает ячейку как число, если с апострофом, то как текст. И такое "поведение" приводит к ошибочным результатам вычисления.

любой код, доступный на изменение, уязвим.

Мы уже защитили его паролем. Или только компиляция в ехешник спасет его от изменений? Ой, а ехешник можно бинарным патчем поправить, он тоже уязвим?

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

Вы бы разобрались сначала с типами и с неявным преобразованием типов в экселе, прежде чем говорить об "ошибочных результатах". В JS уже сколько статей про 2 + '2', но у него не ошибочное, а в экселе ошибочное?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вы просто не умеете готовить ;-) Давно сделано через довольно несложные макросы

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

Не знаю в тему для Вас или нет, у меня есть надстройка, пилил в своё время (на C#), общего назначения. Если есть идеи полезных функций - заведите issue (ну или присоединяйтесь к разработке). Может кому-то пригодится, да и мне мотивация, что это кому-то вообще интересно =)

https://github.com/navferty/NavfertyExcelAddIn

Вряд ли Ваша проблема

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

общая настолько, чтобы писать статью для всех.

Рекомендую обратиться с вопросом на Планету Excel. Если соблюдать их правила (несложные), там помогут.

Когда-то написал макрос для отдела кадров, который по некоторому шаблону в Word и выгрузке с данными персонала из 1С в Excel лепил кучу допников к трудовому договору в Word. Или кучу уведомлений. Или еще кучу всего.

VLOOKUP — это hash table lookup

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

Если vlookup по сортированному столбцу, то за log(N). Еще и параллелится автоматически.

Принято. Но сортированным получится держать только один столбец. Другими словами это некоторый аналог кластерного индекса mssql. Как только нужно искать по 2м разным столбцам таблицы независимо - то ой: нужны отдельные таблицы-индексы, а тут такое не завезли. На vba можно и такое написать, естественно, но это будет созданием мини субд на коленке.

Сортироать можно и несколько столбцов сразу, аналог order by 1,2,3...

Есть специальная форма для настройки сортировки (тип, направление).

С точки зрения ускорения vlookup только "1". На "2" и "3" он будет ошибаться, потому что их значения не находятся в возрастающем порядке (в них сортировка внутри группы строк из "1", а значит, алгоритм попрыгает по разным группам и из случайной выдаст чуть меньшее значение).

Мне приходится работать в exel 2016 года, так что могу быть не в курсе нововведений, но log(n) работает только если поставить в vlookup в конце 1 - т.е. делать неточный поиск. А это неприемлемо.

К тому же на сортировку каждого столбца уйдет не меньше времени, чем на обычный О(n).

Я правда не понимаю почему они не сделали это по нормальному и как же я горел, когда из-за политики фирмы не мог просто загнать данные хотя бы в sqlite и все посчитать в нем. Он у меня жалкие 500 тыс. строк 1 час считал! Я дома работаю с БД на 11 млн. строк и postgresql их обрабатывает за 2 минуты

А на работе, на секунду, компьютер мощнее моего домашнего

Абсолютно согласен! Лично я считаю, что Excel - зло, которое нельзя использовать в официальных техпроцессах.

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

Да, я понимаю о чём вы говорите. Я часто пользуюсь Excel для "сиюминутных" проверок (расчётов), но не для использования в бизнес задачах.
"Критикуя предлагай":
Основное требование в бизнес процессах - гарантия качества, включая "правильность" расчётов. Добиваются этого только испытанием (тестирование в разработке ПО). Все предложения исходя из этого требования - защита кода от случайного или намеренного изменения. Средств разработки много, на разные случаи (требования), нет смысла перечислять.

Прошу прощения, но вы, видимо, не совсем умеете готовить эксель =) С 500 тысячами строк, эксель, коненчо, справляет туго. Но кто-то отменил сводные таблицы? Оптимицазию формул? SUMIFS? И разбивку данных на составные части? Есть множество замечательных возможностей упростить задачу. И это ещё до PowerQuerry

Можно попробовать сортировать виртуальным рекордсетом. Создаёшь объект ADODB.Recordset накидываешь свои данные и делаешь селект.

почему они не сделали это по нормальному

так сделали. Прикрутили inmemory субд, шуструю аки демон, быстрее всяких sqlite. VertiPaq называется (её PowerPivot юзает в том числе)

Но язык к ней отдельный - DAX. И там например есть LOOKUPVALUE  для того же самого, да и вообще много чего это язык с SQL сравнимый по возможностям

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

Работал на одном проекте. Когда я туда пришел, то там CD-процесс был реализован через excel. Выбираешь артифак, выбираешь БД на которую хочешь накатить миграция, выбираешь целевое окружение и жмешь кнопочку.

Странно что там CI был не в экселе. Не довели до совершенства немного

Тьюринг-полный и увы вендор-локнутый...

Microsoft прекратила поддержку vba из соображений безопасности: на vba можно достучаться до любых низкоуровневных сервисов системы и повлиять на их работу в корыстных целях. Была попытка пересадить разработчиков на js/ts по написанию макросов/кода. Но она имеет довольно сложный порог входа. Хотя, сама идея была неплохая - весь функционал (код) крутился на стороне разраба. А клиент(-ы) получал обработку данных не выходя за рамки экземпляра документа. Основное удобство было и остаётся ещё в том, что код модифицируется в одном месте, и обновления автоматом затрагивают всех, кто использует функционал. Без необходимости ходить везде и обновлять у всех файл с макросом. Плюс, исходники, априори, скрыты - модифицировать код клиенту не удастся.

Excel самая глючная программа в составе MS Office. Отличается реализацией, например, библиотека типов в исполняемом файле, выглядит так, что изначально делалась отдельно.

И вообще, в программе, позиционирующейся как калькулятор, не реализовано обычное математическое правило округления! При необходимости приходится использовать встроенный бейсик. На всякий случай, если кто не помнит правило, пример:
1,5 до целых = 2;
2,5 до целых = 2.

Эксель - самая зверская программа в Офисе несмотря на свои глюки. Эксель умрёт последним. Вот вообще последним. Виндоус станет нейроинтерфейсом, Яблоки уйдут в какие-нибудь нереальные дали, компьютеры заменятся голосовым интерфейсом с супероблаком! Всё изменится! А эксель будет жить =))

И математически правильное окргуление - последнее, что будет заботить пользователей ;-)

Кстати, roundup и rounddown в помощь

По поводу ROUND - добавьте текст в файл с расширением vbs, запустите:
msgbox round(1.5)
msgbox round(2.5)

Получите два результата с "2", так реализовано в профессиональном ПО. Это математическое правило округления, "стандартное" для всего мира и, до недавнего времени, и России. К сожалению неучи добрались до учебников, всё выглядит целенаправленным оболваниванием начиная со школы. Например, такая фраза попалась в учебнике для углублённого изучения математики: "Окружность не может быть графиком функции." Как?...
Вопрос округления не последний, например, когда программы по одинаковым данным выдают разный результат, из-за разного округления, как быть? Какая программа "правильная"?

Если не лениво посмотрите ROUND из BASIC в Excel.

“Окружность не может быть графиком функции.” Как?

Элементарно. Функция (в данном случае) это отображение R -> R (с учетом ОДЗ). И в какую точку отображается точка 0,5 для окружности радиуса 1 (с центром в начале координат).

Или другими словами - функция есть, а графика нет?!

В исходной постановке было “окружность не является графиком функции” то есть картинка есть, а функции, для которой она была бы графиком - нет.

Вы утверждаете, что функция есть - вам и доказывать. Напишите ее например. y(x) = нечто, и чтобы было однозначно и получилась окружность. Обычно выкручиваются либо через “Множество точек, являющееся решением уравнения с двумя переменными” либо через 2 функции x(t) и y(t). Но вот функции из x в y и чтобы окружность получилась - нет.

Полярные координаты - одна переменная на входе - одно значение на выходе. Радиус - константа.

Все-таки в рассматриваемых “графиках функций” в том разделе учебника, где написано про то, что окружность не является функцией рассматриваются графики R->R путем отражения X->Y И ваша функция R(x) = const будет горизонтальной прямой, а не окружностью.

Да и вообще, полярные координат та ещё бяка для графиков. Вот захотите спираль нарисовать R(x)=x, как отличать будете аргументы, отстоящие на 2Pi? Не, в топку полярные. Примерно до комплексных чисел, где мы начинаем плоскость на плоскость отображать.

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

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

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

Ломается введение функции и координатной плоскости как графического представления функций. Она насколько я помню буквально вводится как “нарисуем 2 оси и будем над каждым X откладывать соответствующее значение Y(x)”

Это уже потом “соберем пучок векторов и натянем на него пространство, для пучка из двух перпендикулярных единичных векторов получим давно знакомую координатную плоскость” . В школе вообще много нестрогих приколов, типа неявного введения интеграла как площади под графиком в физике (равноускоренное движение) за полтора года до появления производных (и тем более интегралов) в “алгебре и началах анализа”.

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

У меня дочка в 10 классе, так что воспоминания свежи.

Когда у меня сын учился, я даже узнал что то новое:)

Excel самая глючная программа в составе MS Office

Та ладно! А Word?

"Ты суслика видишь, нет, а он есть..."
Когда расчёты неверные, как проверить? Если только линия тренда на графике совсем не совпадает с точками?

Таки да, среди 8 вариантов округления в Excel 2016 такого нет.
Есть раздельно =ОКРВВЕРХ.МАТ(A1) и =ОКРВНИЗ.МАТ(A1)
Вопрос, а зачем оно нужно?

 "Справочник по элементарной математике" Выгодского М.Я.:

  • Правило 1. Если первая из отбрасываемых цифр больше чем 5, то последняя из сохраняемых цифр усиливается, т. е. увеличивается на единицу. Усиление совершается и тогда, когда первая из отбрасываемых цифр равна 5, а за ней есть одна или несколько значащих цифр. (О случае , когда за отбрасываемой пятеркой нет цифр, см. ниже, правило 3.)

  • Правило 2. Если первая из отбрасываемых цифр меньше чем 5, то усиления не делается.

  • Правило 3. Если отбрасывается цифра 5, а за ней нет значащих цифр, то округление производится на ближайшее чётное число, т.е. последняя сохраняемая цифра оставляется неизменной, если она четная, и усиливается, если она нечетная.

Вопрос, а зачем оно нужно?

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

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

Само округление нужно когда? Чаще всего - ПОСЛЕ вычислений. А в числах, что обрабатывает компьютер имеется перевод в двоичные с плавающей точкой, а затем для вывода пользователю - перевод назад. И вот здесь вероятность получить именно .5 а не какой-нибудь .50012232728191 - очень мала.

Ну и логика округления до чётного - тоже какой-то аттавизм. Типа чтоб сумма совпадала? А почему не произведение? А что с суммой, включающей в себя числа, заканичвающиеся не только на .5, но и на .6 и на .4?

В общем, нам в советской школе уже преподавали математическое округление вверх и другим мы не пользовались. Потом я ~40 лет программировал разное и вот только сегодня узнал об округлении до чётного. И ну не вижу в нём смысла!

Извините


PS: и кстати, если говорить не о сумме округлённого, а о графике из округлённых точек, то округление вверх будет более правильным - график будет повторять оригинал - но в среднем приподнят. А с округлением до чётного будет так: 100 точек приподнято и 1 из них почему-то опущена. Почему? Потому что одна такая попала на точное окончание на .5 и ещё и на чётное вниз.

А что с суммой, включающей в себя числа, заканичвающиеся не только на .5, но и на .6 и на .4?

Так с .6 и .4 и другими как раз такой проблемы нет.

В общем, нам в советской школе уже преподавали математическое округление вверх и другим мы не пользовались. Потом я ~40 лет программировал разное и вот только сегодня узнал об округлении до чётного. И ну не вижу в нём смысла!

Вот из книги Брадиса "Как надо вычислять" 1965 года:

Скрытый текст
Как надо вычислять. В.М.Брадис. 1965.
Как надо вычислять. В.М.Брадис. 1965.

Как надо вычислять, Брадис, 1965 — Яндекс Диск

2,5 округляется до 3, а не до 2!

вот 2,4 - да, округляется до 2

Посмотрите соответствующие статьи на других языках, например:
Rundung – Wikipedia
Symmetrisches Runden - Симметричное (или геодезические, математически, неискажённые, научные)

добавьте текст в файл с расширением vbs, запустите:
msgbox round(1.5)
msgbox round(2.5)

Получите два результата с "2", так реализовано в профессиональном ПО.

Если вы 1985 г.р, то в учебнике по математике, по которому вы учились, так и написано, в современном нет, похоже на скрытую диверсию.

 обычное математическое правило округления! 

Это необычное правило. Обычное правило там как раз реализовано.

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

Да, вы правы. Посмотрел малую энциклопедию по математике, изданную в Германии в 1965 году. Там написано, что если заканчивается на 5, то "принято" округлять до четной цифры.

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

VBA это "классический язык программирования", который MS пытается удушить уже лет надцать, да все никак не получается у них.

А формулы в ячейках - это базовая фича Excel, она никуда не денется, только если с самим Excel

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

У меня в практике был классный кейс использования Excel в страховой компании.
Есть такие люди - актуарии, они умеют считать риски и строить соотвествующие модели (разумеется в Excel)
Был у нас веб-сервис "тарифный калькулятор", который позволял сделать расчет полиса. Калькулятор на Java, с мордой, дело было в начале 2010-х, но все было на актуальном стеке.
Но у актуариев был Excel. И все изменения они вносили в него. И change request был "мы тут поменяли в Excel, сделайте так же на своем Java".
Меняли, и начиналось тестирование, иногда до 2-х недель с допиливанием, пока все до копеек не сходилось с их расчетами.

А потом мы сделали новую версию продукта, которая брала переданный нам файл Excel, и запускала расчеты прямо в нем, через купленый и очень дорогой Aspose.Cells (гуглится). Ну как дорогой, тысяч 5$ за лицензию. И обновление версии калькулятора свелось к подкладыванию через админку нового файла Excel от актуариев за 5 минут, без необходимости тестирования, и экономией нескольких дней разработчика и тестировщика на каждый релиз.

Кликбейтно звучит про "самый популярный язык", и технически несостоятельно. Тьюринг-полнота не делает инструмент полноценным языком общего назначения. У вас нет нормальной работы с памятью, многопоточности (движок распараллеливает формулы сам, как черная коробка) и сетевого стека без костылей на VBA или Power Query

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

"Рву одежды свои, посыпаю голову пеплом", но всегда считал Excel и Word вредными программами.

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

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

Был свидетелем такой истории.

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

Поскольку речь шла о миллиардах, то начальство Новомета ринулось искать программистов, что такую программу напишут. Да вот беда. Люди нынче делятся на два вида (по кр мере в России):

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

  • те кто может посчитать двигатель, но программы писать не могут;

И эти множества почти не пересекаются. Второе множество представлено в основном 70-90 летними стариками. В чём проблема? Чтобы посчитать двигатель нужно обладать опытом в их построении и математическим аппаратом, позволяющим уметь в дифференциальные уравнения. Вернее, даже, в системы дифуравнений...

В общем помыкались они помыкались и пришли к моему руководителю по аспирантуре: нужно мол такое написать, кровь из носу, придумай как это сделать!

А тот им и говорит: "Х-м. Программы я, конечно, писать не умею, но на Excel могу попробовать набросать расчётный модуль. А уж его вы потом можете перевести в другой вид - более презентабельный...".


Ударили по рукам.


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

Посмотрел на это собственник, да решил прямо так это и продать - уж больно красиво получилось.

Продемонстрировали покупателю Excel'ку и... предприятие сменило хозяина...

Такая история. Ну а мой руководитель за это премию получил. Приличную. Хватило зубы вставить. 85 летний юбилей недавно праздновали - хвастался.

Такие дела.

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

вот что забавно: подавляющее большинство этих людей искренне считают, что они «просто работают с таблицами». Заполняют ячейки. Делают отчёты.

может потому что подавляющее число людей и правда просто работают с таблицами? А самое сложное что они писали это:

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

Я думаю половина людей даже ни разу не использовали ЕСЛИ, не говоря уже об остальном.

История с переименованием генов — лучший эпизод в тексте. Не Excel подстроили под биологию, а биологию подстроили под Excel. Это не баг и не курьёз, это показатель реального соотношения сил.

Ага.

Оптимист: стакан на 1/2 полон.
Пессимист: стакан на 1/2 пуст.
Эксель: стакан второе января.

Это вообще самое страшное, imho, что в экселе сделали. Сколько данных он так перепортил при всяких импортах, вставках и редактировании -- не пересчитать!

Аха-ха, "И я не натягиваю сову на глобус". Да именно этим вы и занимаетесь. Многие в комментариях уже написали, что "Для прототипирования Excel незаменим, но когда от него начинает зависеть работа предприятия - это кошмар". И это верно, а примеры автора статьи без ссылок и доказательств потерь в миллионах чего стоят.

С тем, что excel это "язык программирования" (именно в кавычках) можно соглашаться или не соглашаться.

Однако, есть ощущение, что без помощи галлюцинаций ИИ при подготовке статьи не обошлось.

Однако, есть ощущение, что без помощи галлюцинаций ИИ при подготовке статьи не обошлось.

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

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

Настало время охренительных историй. Поставлю закладку, завтра приду почитать другие комменты :).

У меня истории две. Первая история была когда-то очень давно, но как вспомню, так вздрогну. Это был лист, который вызывал в ячейках VBA-функцию, которая выполняла интегрирование: простая задача Коши методом Рунге-Кутты, но все интегрируемые функции обратно ссылались на ячейки листа. В которых, как вы догадались, были вызовы других VBA-функций. Удачи с отладкой, котаны!

Вторая история была совсем недавно. Одним ребятам каждый день приходилось сравнивать свой лист с 100500 строк с другим листом, каждый день приходящим с изменениями. Макрос был, два вложенных цикла, квадратичная сложность, час ожидания. Попросили помочь. На БД переходить не готовы. Покопался, нашёл в экселе словарь с быстрее-чем-линейным доступом, в пару десятков раз их код заработал быстрее. Эксель может и язык программирования, но вот те, кто на нём пишут, вообще не видят проблемы в квадратичных алгоритмах.

Удачи с отладкой, котаны!

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

И да, у меня на работе применяется такой эксель файл. Называется "Нормативно-техническая документация по топливоиспользованию". Авторства ИГЭУ. На смеси обычных формул и UDF, вызывающих другие UDF. Термодинамика, тепломассообмен, процессы горения. Сверху макросами итерационно сводится тепловой и материальный баланс. Да, ивановцы энергетику знают гораздо лучше, чем эксель. По макросам видно, что они начинались записью в макрорекордере. ВПР() им неизвестна, зато они смогли придумать аналог ее из СУММЕСЛИ(). Но они могут дать сотрудникам рабочий файл для ежедневных расчетов. Я разбирался в их коде - много неоптимального, оценил, что можно улучшить/убыстрить процентов на 20. Ну будет он считать не полминуты, а за 25 секунд. "Можно, а зачем?" ©.

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

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

Excel? Python держит свой топ-1 до сих пор.

Классная статья, спасибо! Эксель - это язык программирования, однозначно. 15 лет работаю на нём с разнообразными финмоделями. При этом знаю о git и о разнообразии CI инструментов в программировании. Мне это долго не давало покоя, как и другие проблемы экселя: хаотичность, ошибки, не самая высокая производительность на больших объемах вычислений. Даже переписывал некоторые модели на Python и R.

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

Sign up to leave a comment.

Articles