Pull to refresh

Comments 97

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

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

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

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

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

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

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

Microsoft Office Specialist: Excel Expert

экзамен: MO-201

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

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

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

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

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

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

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

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

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

По мне, это очевидно "язык". Помню как показал коллеге, как просто (относительно Ексел) создавать нужную "функцию" на 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, я очень рекомендую изучить продвинутые способы работы с ним, тогда и работать будет намного легче и приятнее: следуя принципу "знай свой инструмент".

Заявление из разряда "тележка лучше грузовика, потому что для тележки права не нужны") 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.

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

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

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

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

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

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

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

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

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

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

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

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

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.

Комплексное на js? Может это:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Та ладно! А Word?

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

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

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

Всем, кто комментит "ах этот ужасный 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 и Word вредными программами.

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

Такие дела.

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

Sign up to leave a comment.

Articles