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

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

Ну да была как-то статья про игры на Excel

Я начал с электронными таблицами с Quattro Pro, это MS DOS еще. Простую игру типа крестиков-ноликов можно было написать уже там.

Не разделяю восторг мистера Уэйна.

Оно, конечно, эксель позволяет делать что угодно с данными и строить графики буквально парой кликов. В этом плане он, конечно, гораздо удобнее какого-нибудь pandas..

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

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

=IFERROR(INDEX(t_050[[#All],[scheduled_qty]],MATCH(1,(t_050[[#All],[run_type]]="RTC")(t_050[[#All],[unit]]='SO Calculations'.J2)(t_050[[#All],[Time]]=C4),0),0),0)

Здорово, правда? Это просто одна формула из небольшого документа. Не самое сложное из того что я встречаю, однако, сюрпризов хватает. У них MS Excel, у меня LibreOffice, так что все еще веселее.

Именованные диапазоны - удобно, да... Такс, куда оно указывает?.. На внешний файл в Dropbox-папке у одного из пользователей? А здесь у нас макрос, который скачивает и парсит xml-файлик, но запустить все равно не получится, так как под Linux нужная DLL почему-то не находится.. А тут что у нас?. Какая прелесть - логин и пароль от базы данных в открытом виде!

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

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

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

Макросы под линуксы не запускал, я не работал в компаниях, где такой зоопарк систем. Но. похоже, с импортозамещением придется все переписывать.

Сложные формулы гораздо проще читать, когда видишь прямые адреса.
Это Вам реально сложные не попадались. Когда формула на три-пять строк.
В версии экселя 2003 и ранее без имен зачастую вообще невозможно было уместиться в ограничение на 1024 знаков в строке формул.

Это Вам реально сложные не попадались. Когда формула на три-пять строк.

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

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

все время была проблема — выяснить, что буковки означают
Осмысленные имена? Впрочем это проблема не только экселя, да и вообще не ПО, а того, кто дает эти имена.
Или проблема в том, что неизвестно где это выяснять в экселе? Так вот же, слева от строки формул, где обычно адрес активной ячейки. Там конечно не все имена видны, но можно и сразу в Диспетчер имен, заодно понятно, что если имя видно только в диспетчере, то оно динамическое или не ссылается на диапазон
Обновляется не быстро
Это почему? Application.Volatile не слышали?
но лучше, чем выискивать ошибку в четырех этажах
Чем лучше? Там и там Вы читаете код. Оно конечно приятнее читать собственный код на VBA, но для меня разницы нет. Это все равно, что сказать "<питон, C> мне лучше <джавы, R> — и читается лучше и я умею там в обработчик ошибок, а в джаве нет" (подставьте в угловые скобки языки по вкусу).

Мне вообще непонятно противопоставление: формулы vs имена vs пользовательские функции. Это три инструмента, которые надо применять там, где они удобнее. А лучше совмещать.

У Вас в организации с бизнес-процессами все не так. Аналитики эту штуку рисуют потому что им дали ТЗ. вот когда они рисуют по ТЗ, давать ТЗ должны были и Вам, чтобы не разбираться в экселе
С другой стороны, в экселе разобраться может почти каждый, кто с ним работал. А кто будет разбираться в пандасе-питоне? Пушкин? или в каждый отдел нанимать питонистов

p.s. Взяли бы в отдел аналитики чела хотя бы после яндекс-практикума. Там (и не только там) учат и питону и пандасу. делали бы все на месте и сразу в одном отделе

Ну, у нас не такой большой штат для всего этого. Я, фактически, один эникею.

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

Так-то конечно да - сначала требования, документы. Только этот xls-файлик, по сути, и есть требования.

Продвинутые аналитики сначала реализуют гипотезы для которых еще нет ТЗ в природе. И если гипотеза подтвердилась - ее надо в продакшен, и тогда уже пишется ТЗ (часто все ТЗ и бывает - сделать как в этом Экселе)

>Не разделяю восторг мистера Уэйна
«Что может говорить лысый об искустве Герберта Фон Карояна, особенно если ему сразу заявить, что он лысый» (с) Жванецкий, по мотивам.

На самом деле я с вами согласен. Мне пришлось переписывать 120 тысяч строк кода VBA на более пригодные для работы языки. Причем это было несколько файлов, некоторые из которых запускались/открывались, подключались к шине данных, и сосали данные из Reuters, к примеру. А потом считали доходность бондов, и сохраняли ее куда-то в папку. Ну примерно как у вас. Разбираться в этом ужасно неудобно. И да, пишется это людьми, которые не очень разбираются в промышленной разработке. Мы когда начали переписывать, так первое что я сказал, что нужно полностью разделить код от таблиц, положить его в VCS, и подгружать в таблицу при сборке. А таблицу с кодом сделать плагином, и подключать к таблицам с данными.

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

Зайдем с другой стороны. В каком еще инструменте непрограммисты смогут попробовать и реализовать столько своих идей?

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

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

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

Нужно делать импорт, excel тогда предлагает выбрать формат каждой колонки. И именованные диапазоны полезная штука. Сейчас пользую МойОфис, в нём диапазон поименовать нельзя, хотя он их понимает.

Вроде линуксовый csv2xls этим не страдает.

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

Используйте PowerQuery, там все это нормально можно настроить. Формат ячеек - это боль, причем легаси боль. С ней надо уметь жить.

Я правильно понимаю, что перевод делал человек [не]знакомый с экселем примерно также как автор?
Потому что я долго думал что же такое:
В Excel есть своеобразные «транзитные» массивы
И только уже по формулам вида SUM(A:A*(1-0.5*(B:B="x"))) понял, что речь идет о формулах массива. И ни слова о том, что их надо вводить тремя пальцами и их принято выделять фигурными скобками {SUM(A:A*(1-0.5*(B:B="x")))}, собственно как они в экселе и выглядят.

В инсайдерской сборке есть несколько формул, которые ещё больше превращают Excel в нечто APL-подобное.
Это у автора есть какая-то пиратская приватная сборка эксель не для всех с хитрыми формулами?

С помощью связанных типов данных можно вставить в ячейку позу йоги — и Excel скажет, насколько она сложная.
Можно это еще раз на русский перевести? Как говорится, ниасилил.

Резьюм: Автор открыл для себя имена, веб-запросы и еще пару фишек. Ух ты, это круче гуглотаблиц. Всё.

Да тут, кроме сомнительной ценности самой статьи и переводчик не сильно старался..

Hillel Wayne
Хилла Уейна

Я бы перевел как "Хиллель Уэйн".

Ну с именами при переводе все очень неоднозначно, но в целом Вы правы.
Да, причем имена он открыл примерно через сто лет после их появления…
Как и всё остальное. Веб-запросы и формулы массива — такие же динозавры.
Или вот еще шикарное открытие:
Можно напрямую перемещать или копировать листы между разными файлами Excel.
Прям вау эффект.

Абсолютно согласен. Восторг автора от найденных формул и фишек -- это ежедневная рутина моих аналитиков. И делают они, кстати, вещи намного сложнее.

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

В последних — это в каких?
У меня в 2016 всё еще требуется

В ячейке А4 та же формула, что и в В4, но без трех пальцев.
И где почитать, как эксель понимает, что надо относиться к формуле как к массиву? Потому что у меня здесь пример не удачный — без трех пальцев дает #ЗНАЧ!, а бывает, что просто разные числа, без ошибок.

Затрудняюсь ответить. У меня на рабочем компьютере Office 365, поэтому с версиями тяжело сейчас, что и когда они обновляют, добавляют. Но изменили они это раньше, в 2019, по-моему.

Наконец дошел до 2019 офиса к соседу. В нем еще требуются три пальца.
Значит фича совсем свежая, от 365го.
Наверное, всё просто: =СУММ() дали сделали такой же, как и =СУММПРОИЗВ(), которая с незапамятных времен была функцией массива и не требовала трех пальцев.
Интересно, какие еще функции стали функциями массива?

Даже удивительно, насколько он круче Google Sheets

Мне кажется, это не совсем верное заявление. Они как раз примерно равны, как и говорят многие обзорщики. Пробежался по перечисленным в этой статье фичам, они все есть в Google Sheets

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

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

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

экселю не пофиг. в нем есть ограничения

а про BigQuery в гугл таблицах слышали?

до петабайта данных масштаб!

ну может биг квери и есть, а вот скопировать из столбца в столбец для файла (который у меня на декстопе занимает 50мб) для гугл-таблиц непосильная задача. А эксель справляется с легкостью.
читаю про BigQuery
Экономичное, бессерверное, многооблачное хранилище данных для поддержки ваших инноваций на основе данных
а причем тут гугл-таблицы вообще? Облачное решение использовать, чтобы перекинуть 50метров из столбца в столбец ? не, это не мой метод
https://support.google.com/docs/answer/9702507?hl=RU

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

DAX есть?

Выросло поколение, которое является программистами, но не является «опытными пользователями ПК» :)
Так-то всё это есть в документации к офисному продукту. И те, кому интересно разобраться с собственными инструментами её читают.
Все эти возможности Excel уже доступны много лет, разве что чуток упростили с новыми функциями.

При этом автор позиционирует себя как обладающим «extensive teaching experience», но такая элементарная вещь, как разобраться с базовыми интсрументами почему-то приходит в голову в последнюю очередь.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий