Как стать автором
Обновить

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

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
И его можно использовать, чтобы не писать код.
Оно ведь именно так всегда и получается
image
НЛО прилетело и опубликовало эту надпись здесь
А еще в Excel картины рисовать можно ;)

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

Согласен. Тоже так думаю. И везде так и говорю. Хотя убедился — редко, кто в это верит.

Пойду дальше в высказывании. В большем количестве фирм, где используется Excel, то со всеми в встроенными возможностями (vba, автоматизация) можно делать много чего, что будет получше, чем тонна всякого черезчур платного софта. Почти все бизнес процессы можно с Excel и Office оцифровать. А с пакетом Office 365 (Excel, Word, PowerPoint, Teams, OneNote, PowerBI etc.) так и вообще — все.

Кстати на примере с Excel я вижу как думают люди. Там сразу видно, если созданные ими конструкции нелогичны, сложные, часто не поддающие пониманию или последующему сопровождению или видоизменению итп. Это как своего рода визитная карточка. Мне сразу понятно, кто передо мной.
НЛО прилетело и опубликовало эту надпись здесь
Как у Excel с контролем версий? diff между изменениями посмотреть можно?
НЛО прилетело и опубликовало эту надпись здесь
Самое базовое в комплекте — история с возможностью отката и механизмы рецензирования (примечания). Для большего надстройки видимо нужны. Так же при совместном редактировании видно, что делает другой человек.

а как там с параллельными операциями? горизонтально отмасштабируемся, или будет искать машину помощнее? как там с ACID?

«Родные» функции параллелятся отлично, я как-то на предыдущем месте работы напряг весь офис, запустив на терминальном сервере пересчет таблицы Excel на 25 столбцов и ~40000 строк с поиском подстрок из этой таблицы в списке из ~80000 элементов (нечеткий поиск возможных банкротов-физических лиц по ФИО и ИНН из клиентских баз множества банков в общем списке банкротов Российской федерации).

Да, это было не очень оптимальное решение, но Excel радостно загрузил 32 ядра из 40 на 100%, и посчиталось всё быстро, минут за 5. Но админу позвонить по поводу неожиданных тормозов коллеги успели. В будущем админ попросил больше 4-8 процессоров не захапывать ;)

PS: А вот со встроенным VBA сложнее, пользовательские функции параллелятся плохо, а процедуры на VBA приходится запускать через OnTime, чтобы они работали хоть как-то параллельно.
Отмечу что в последнее время разработчики уделяют скорости работы много внимания. При переходе к Excel 2016 я увидел поддержку многопоточности с использованием нескольких ядер, не так давно (порядка года) переписали все функции поиска, что на больших массивах должно давать существенный прирост. В этом плане Excel существенно лучше аналогов.
Ну есть еще эмулятор энигмы, игра, клип AC/DC

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

А потом Британское правительство теряет данные о ковид-пациентах из-за ошибки в использовании Excel. И даже гены переименовывают, потому что их названия упорно заменяются названиями месяцев, потому что Excel же ж умный, ага.
Я не призываю перестать использовать Excel, просто помните, что «универсальный» — совсем не то же самое, что «наиболее подходящий».
Ексель конечно подкупает своей универсальностью.
И при выборе инструмента всегда приходится решать дилемму — искать что-нибудь под свою конкретную задачу, или попробовать быстро запилить на ексельке, если задача не большая, и возможности таблиц хватает.
И очень часто второе быстрее сделать, чем найти готовый инструмент, который бы хорошо подходил под задачу…
В ваших примерах люди, которые разрабатывали структуру хранения, просто допустили пару грубых ошибок — например, если бы поставили тип данных «текстовый», не было бы беды с заменой названий месяцев.
Поэтому вопрос об выборе инструмента все равно открытый, т.к. никто не хочет изобретать велосипеды в ексельке, когда рядом находится идеальное, подходящее по всем параметрам, и в т.ч. и цене решение.
никто не хочет изобретать велосипеды в ексельке, когда рядом находится идеальное, подходящее по всем параметрам, и в т.ч. и цене решение
Когда рядом. Иначе — всё та же универсальная платформа для велосипедов Excel.
Такие же ошибки можно сделать где угодно. Любым инструментом надо уметь пользоваться. В первом случае Excel не виноват абсолютно. Даже если б просто перешли на новую версию ошибка не возникла бы. Во втором коррекция сделана больше для удобства, так как генетиков много, многие пользуются Excel, и не все из них гарантировано могут избежать ошибок из-за автозамены, так что переименование просто экономит время.

keypressingmonkey изобрел data driven development

Если уметь пользоваться то все гуд.
Иначе только спец интерфейс с одной большой кнопкой.
не стоит ещё забывать о VBA внутри экселя. и о том, что интерфейс экселя привычен для большинства офисных работников. это позволяет очень быстро делать очень эффективные средства малой механизации для не технических сотрудников.
Еще одно достоинство, что Office+VBA вызывает гораздо меньше настороженности у безопасников, чем любая другая среда разработки. В крупных организациях, когда в твоих должностных нет написания программ — убедить, что тебе нужно установить дополнительное ПО — сложно.

А VBA позволяет реально очень много, вплоть до перемещения мыши и кликов ей через дергание системных вызовов, что позволяет заменить AutoIt — например. Ну и дергать из Word методы Outlook — удобно. Можно, например — сформировать красивый отчет по выполненным задачкам, или календарь с предстоящими событиями. Жаль, что VBA уже готовятся списать в анналы истории…
Единственно что бесит — это синтаксис VBA
Ещё больше бесит встроенная IDE. Глюками с подсказками, выскакивающими окнами при ошибке и т.д. С нормальной IDE и синтаксис не так бы раздражал.

Интересно, а можно ли чисто теоретически сделать стороннюю IDE для VBA?

В экселе работала самая крупная в РФ контора по книгам.
В нем же+VBA делал систему заказов с подбором товара по признакам.
+
Нейросеть по прогнозированию продаж по фото.

Правда 14 лет назад.))
Тогда правда было сильное ограничение на количество столбцов и строк.

Плохо что его народ толком и не знал (обычных работников)
Новосибирская Топ-книга?
Она )
А потом они купили какую-то умную систему за миллионы, начали её внедрять и разорились. Все совпадения случайны.

Можете смеяться, но я в экселе иногда даже кодогенерацию делаю, когда нет смысла тащить в код целый фреймворк.

Компилятор, над которым мы работаем прямо сейчас, начинался как набор макросов в Excel, но за несколько лет упёрся в ограничения среды, и нам приходится всё переписывать.
+
В частности, делал скрипт для заполнения базы данных. Оказалось проще на разных листах в нужных местах вписать нужные данные, а потом скопировать готовый SQL.
Но, справедливости ради, я использую гуглотаблицы, а не непосредственно Excel.
продолжаем славословие. в кровавом энтерпрайзе эксель — очень удобный инструмент для отправки всевозможных таблиц на печать. можно генерировать таблицу любой сложности в хтмл, потом программно открывать экселем и в нём программно же подкручивать области печати, ориентацию и проч. выделенные рейнджи из таблиц экселя сами копипастятся в вотсап картинкой с сохранением формата, это тоже очень удобно при общении с клиентами.

Есть ли примеры веб-сайтов с базой на excel? Обновил данные в excel файлике, нажал обновить и сайт с обновленными данными. В идеале чтобы и формулы работали.
Можно через js -библиотеки (другие библиотеки) вручную читать данные из excel-файла, но может проще можно?

1) есть много js либ для работы с гуглтаблицами. Я часто на них делаю сайтики. Если ещё учесть что к гунлтаблицам легко прикрутить скрипты через гуглскрипт или ifttt то вообще целый бэкенд.
2) не в Гугл таблицах, а виде обычного экселя у меня на работе сделана страница со структурой подразделений — коллеги заполняют Эксель т.к. они не умеют верстать, Эксель формулами генерит сложный многоуровневый json, который мне остаётся только скопипастить и отправить в прод. На основе этого json страница генерит вложенную структуру подразделений, с поиском по ней и прочими плюшками.
3) можно было бы сохранить в csv и брать файл из js напрямую (это же просто текст был бы), но это точно потребует вебсервера даже при разработке (элементарный "200ок" в хроме пойдет) из-за ограничений браузера.
4) согласно старой игре, где надо брать случайное английское слово, подставлять ".js" и выпивать если такая либа есть, я моментально увидел что есть и xlsx.js которая умеет и из Эксель файла все забирать. Пойду выпью за это )

НЛО прилетело и опубликовало эту надпись здесь
Я долго пользовался экселем (и продолжаю сейчас пользоваться), но python / pandas для обработки данных объективно удобнее. В Экселе многое работает «из коробки», но проблема в том что во-первых функционал часто нетривиально запрятан, а во-вторых части нужных вещей просто нет и лечится это только VBA который откровенно ужасен. Скажем я с женой как-то два часа искал как поставить фильтр по значению колонки в pivot table. Обычно фильтр в экселе можно поставить из ribbon или щелкнув на заголовке колонки. Но вот конкретно в pivot table надо кликать на строке, выбирать из контекстного меню «добавить фильтр» и тогда откроется отдельное окошко где можно ввести название колонки по которой фильтровать. Это осмысленно (в pivot table входят строки разных уровней и на разные уровни можно поставить разные фильтры), но боже, если этого не знаешь, то черта с два найдешь / догадаешься. В pandas все это делалось куда проще и не надо было тащить макросы чтобы k-means сделать. Да и графики с seaborn выходят красивее :).

В Экселе по сути сегодня одно преимущество: несколько удобнее смотреть / вводить данные. Интересно как скоро кому-нибудь придет в голову сделать удобный excel-подобный вьювер / редактор для pandas dataframe?

Эксель не умеет нормально работать с CSV
Эксель может при сохранении угробить большой файл так, что он потом будет открываться полчаса
Эксель не умеет в PCRE
Красивые графики в нём не сделать
Про совместную работу надо документом и говорить не приходится, то, что есть — глючит


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

CSV — это прям моя больная боль. Чтоб правильно загрузить даже примитивный CSV (две колонки целых чисел, разделённых каноничной comma-запятой, без заголовка) нужно проходить через весь этот инструмент импорта. Ну или в самое начало файла вставлять указание для Экселя, что разделитель — запятая.
Это одна из причин, почему я поставил себе LibreOffice — его Calc при открытии CSV сразу спрашивает, всё то, что Excel делает в рамках мастера импорта.
КМК, если это часто повторяющаяся задача, то ее можно сделать на екселевских макросах, или на VBA, или даже сделать конвертор csv2xlsx на python.
НЛО прилетело и опубликовало эту надпись здесь
Ну, так открывать CSV и открывать CSV в Excel — это таки 2 разные задачи ;)
НЛО прилетело и опубликовало эту надпись здесь
Если десятичный разделитель в системе поменять на точку, процесс импорта csv в Excel становится гораздо более предсказуемым.
НЛО прилетело и опубликовало эту надпись здесь
Если десятичный разделитель в системе поменять на точку, процесс импорта csv в Excel становится гораздо более предсказуемым.


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

Причем разделитель запятая это только в руской версии Windows, в иностранных разделитель — точка. Мне это крови попило при импорте CSV из экселя в Python

Именно. Видимо не совсем дотестировано.
Но на одном компьютере держал несколько лет точку именно для импорта в Excel. И ещё американский формат даты — он гораздо лучше подходит для целей сортировки файлов, содержащих дату в имени.
НЛО прилетело и опубликовало эту надпись здесь
Из трёх вариантов правильно отсортируется по имени только последний, американский.
НЛО прилетело и опубликовало эту надпись здесь
Вы правы, хотя всегда был уверен, что YYYY-MM-DD это американский формат. Википедия говорит, что это ISO 8601. Этот формат КМК наиболее удобен для применения на компьютерах.
Он китайско-японско-канадский — жёлтый на этой карте.
Ну, год редко сильно важен…
Разве что раз в год ;)
В немецкой тоже запятая. Мне это крови попило совсем недавно.
Спасибо друг, за сэкономленные нервы, в списке DE тоже предстоит. :)
НЛО прилетело и опубликовало эту надпись здесь
Писать макросы или тем более внешние скрипты для того формата, с которым Excel автоматически ассоциирует себя при установке, но не поддерживает как ожидается?..
Вам ехать или страдать? ;)
НЛО прилетело и опубликовало эту надпись здесь
RegExp ставится через меню установки надстроек. Да, немного непривычный он, но после Java, и он позволяет делать чудеса.
Можно без надстроек. Модуль на 20 строк с использованием CreateObject(«VBScript.RegExp»)

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

Только не забывайте что excel еще купить надо, а пара строчек кода в том же python вам ничего не стоит.
А LibreOffice макрос можно и на Питоне написать.
Не перешёл на него лет 8 назад именно из-за плохой ситуации с созданием макросов.
рабочие компьютеры без купленного офиса существуют в природе???
Мне кажется, что еще лет 12 назад это сошло бы за сарказм.
Эксель исторически был и остается — табличным калькулятором. Это как программирование игр на TI-83 — можно, но, как правило, в сегодняшних реалиях редко нужно. Хотя, среди калькуляторов там идет сильнейшая борьба по функциям. Однако тот же Матлаб уроет любой калькулятор по возможностям. Да даже смартфон уроет любой калькулятор по возможностям. Но свой узкий резон иметь такой швейцарский нож есть.

Это как открывать консервы кухонным ножом, когда нет открывашки или пиво зажигалкой — это все от «неимения». Неимения навыка, подходящего инструмента и пр. Но всегда найдутся те кто сочтет это видом искусства.
Да, да — это именно кухонный нож. Не представляю как можно жить на кухне без ножа, и как много понадобилось бы иметь специализировнных «матлабов» на кухне вместо простого ножа
А я не пойму, неужели никто в ограничение строк не влетал? Или что то изменилось в экселе?
Какой офис сейчас самый крутой считается в этом плане (не облако конечно)?
НЛО прилетело и опубликовало эту надпись здесь
Миллиона строк вполне хватает, а если у вас данных больше — welcome to Access, его из экселя тоже можно дергать.
access — бесчеловечное зло с интуитивно непонятным интерфейсом и кучей ограничений относительно даже ms sql dev express, не говоря уже о фактически бесплатном постгресе. мне кажется, использование access оправдано разве что в условиях жёстких ограничений от безопасников. ну или в случае, когда человек принципиально не хочет/не умеет писать код.
относительно даже ms sql dev express, не говоря уже о фактически бесплатном постгресе
Access — однофайловая БД, а MS SQL что-нибудь, Postresql, и прочие MariaDB — клиент-серверные.
Access было бы правильнее сравнивать, например, с DB Browser for SQLite.
ну я рассматривал с позиции «на чём бы быстро набросать базу для личного использования». тут архитектура менее важна чем, например, ограничение на размер файла данных 2 гб или невозможность писать сильно вложенные запросы.

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


На прошлом проекте тимлиду уж больно нравилось проектирование апи начинать с описания объектов в ворде таблицами по строгому шаблону. За счёт строгости шаблона можно было пробежаться по документу VBA-скриптом, преобразовать таблицы в дерево типов, которые впоследствии скормить классу-генератору, выдающему код на тайпскрипте, джаве или жсоны для примеров в той же документации. И даже авто-обновление установленного в локальный шаблон макроса из моей шары на офисном сервере было — не знаю, как безопасники меня не прибили за такое :-)


В общем, VBA — мощнейшая штука, но не для слабонервных.

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