Альтернатива Excel для любителей разделять данные, логику и представление  Публичный пост

Ситуация

Меня очень раздражает в Excel, что данные, формулы и форматирование все пихаются в одно место. Возможно я просто не наловчился им пользоваться, но мне это мешает в работе.

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

Что я хочу найти в инстументе мечты

Хочется, какое нибудь решение, где бы я отдельно писал данные в виде табличек БД или отдельных ячеек, отдельно data flow зависимостией разных формул, отдельно какие результаты показывать и как.

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

Что я нашел в известных решениях

Знаю решения, которые добавляют поддержку нормальных таблиц, как в БД. В MS Excel некие "умные таблицы", в Google Spreadsheets есть диалект SQL. Но в остальном все на таблицах, по прежнему. Airtable же полностью как БД работает, как я понимаю. Но он, вроде, не дает возможности делать сложные многоуровневые формулы, как Excel, только выборки.

12 комментариев 👇

Я бы советовал получше разобраться с Excel. ИМХО, это лучший инструмент для работы с "околобытовыми" данными (ну, скажем, срок до 10к).

На семинаре McKinsey по экселю как раз учили, что хранить данные отдельно, а формулы - отдельно это бест практис (а эти ребята понимают в эффективности - у них есть семинар по использованию TrackPoint :).

Чтобы не мучаться с перетаскиванием формул - есть именованные диапазоны и $. А функционалом What-If Analys (подбор параметров) можно в одну кнопку сделать выгрузку значений функции в зависимости от изменения параметров. А дальше - сводные таблицы (Pivot Table) и PowerQwery - для работы с БД из окошка экселя. И все в один клик.

Еще большой плюс экселя - очень много информации в сети.

  Развернуть 1 комментарий

@gramlin, я тоже хотел посоветовать освоить excel, но вопрос всё таки был про замену, поэтому не стал лезсть.

Потому что на все проблемы, которые у автора возникли есть практики того, как с ними жить.

нужно думать куда поля перенести физически

Создаётся технический столбец и скрывается из чистового вида

как им не сломать формулы

Эксель довольно умный в этом плане, просто надо знать что по умолчанию ссылки относительные. Для абсолютных - тот самый $

Ну и так далее.

Для разнесения данных - представления можно использовать разные листы. Отдельно лист с данными, отдельно с видом.

На практике освоить все возможности excel - это необъятная задача. Настолько это могучий инструмент.

На практике видел пакеты для расчета бюджета радио-линии, баллистических расчетов. Экономических моделей. Ну и гиковские приколы, типа Doom. :)

  Развернуть 1 комментарий

Я использую связку pandas + matplotlib/seaborn для визуализаций данных. В пандасе можно делать sql запросы, groupby операции и почти что угодно на твоих данных. Matplotlib/seaborn дают тоже больший простор для визулизации чем стандартные графики экселя.

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

  Развернуть 1 комментарий

@undeaddy, Да я пока визуализацию почти не использую. Ну и пойнт вопроса про готовое GUI решение, про всякий упоротый питон я знаю.

Кстати, мой опыт работы с matplotlib негативный - много нужно париться для элементарных вещей. Я бы стразу seaborn юзал.

Спасибо за вариант.

  Развернуть 1 комментарий
Artem Pozdnyakov, Software Engineer & Analyst 7 октября 2020

Много странных советов. Особенно порадовали любители matplotlib, такое чувство, что люди ничего другого не видели.

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

Альтернатива пока - это написание программы на языке в IDE с подпорками в виде интерактивных результатов и графиков. Данные берутся или из файлов (СSV, XSLX) или из встроенной базы (SQLite) или грузятся с сервиса (Yahoo Finance).

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

Теперь разверну тезисно:

Во-первых, есть язык R. Его IDE (RStudio), системы визуализации (ggplot) и библиотеки во многом лучше Питона. Особенно для исследователей. Python - это про программирование в большей степени, чем про математику. R - это таки про математику. Для интерактивных приложений на R (Web, SPA) есть система Shiny - это веб фронт или контейнер. В нём можно расчётный R код превратить в 2 строчки в приложение. И никаких Django и прочих Реактов не нужно.

Во-вторых, если таки Питон, то рекомендую среду Jupyter в варианте JupyterLab (с плагинами). Забудьте статические рисовалки такие как matplotlib. Они для динозавров из 90х. Сейчас 2020й, и есть библиотеки получше. Графики и интерактивные чарты (как 2D, так и 3D) делаются при помощи Plotly и Plotly Express (есть плагин для JupyterLab). Для быстрого развертывания приложения в браузере есть Dash. Для Dash есть компонент, рисующий интерактивный граф со сверткой/развёрткой по клику на ноде.

В-третьих, у Экселя есть чудовищные пробелы и недостатки, которые перевешивают все достоинства. Но про это нужен отдельный пост.

  Развернуть 1 комментарий

@arp, да, в экселе одни загоны с форматированием чего стоят. Например, переносишь в американский эксель русский документ и все перестает работать. Причем и на уровне скриптов тоже. Сцук, надо же так криво сделать было! Оно не обрабатывает разделители разрядов или адресацию на уровне семантики, тупо в текст конвертит, который зависит от локали (много фейспалмов). Гугл шит кстати тоже себя ведет подобным безобразным образом.

  Развернуть 1 комментарий

@arp, плюсую за plotly! R - больше даже про статистику, что-нибудь быстренько прогнать.

  Развернуть 1 комментарий

Microsof Power BI - достаточно сильный инструмент, позволяющий разделять данные, формулы и представление.
Из недостатков - не особо зашёл язык запросов

  Развернуть 1 комментарий
Дима Черненьков, делаю страховое моделирование для ФО, педалю digital transformation 7 октября 2020

😱 Комментарий удален его автором...

  Развернуть 1 комментарий

перечитал, бесполезно полностью. Плюс за Pandas, короче.

  Развернуть 1 комментарий
Gleb Kudriavtcev, Руководитель продуктов 7 октября 2020

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

  Развернуть 1 комментарий
Vlad Zaitsev, Architect & Product Owner 8 октября 2020

попробуйте посмотреть на https://totum.online

  Развернуть 1 комментарий

Microsoft Access

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб