Альтернатива Excel для любителей разделять данные, логику и представление
Публичный постСитуация
Меня очень раздражает в Excel, что данные, формулы и форматирование все пихаются в одно место. Возможно я просто не наловчился им пользоваться, но мне это мешает в работе.
Попытаюсь привести пример: хочу я добавить много разных промежуточных формул в своих расчетах, и нужно думать куда поля перенести физически, как им не сломать формулы и тд. Поэтому приходится заранее продумывать, как все разнести на листы и физически в пространстве, что бы было меньше проблем
такого рода.
Что я хочу найти в инстументе мечты
Хочется, какое нибудь решение, где бы я отдельно писал данные в виде табличек БД или отдельных ячеек, отдельно data flow зависимостией разных формул, отдельно какие результаты показывать и как.
Я хочу видеть граф зависимостей между формулками и входными данными. Это позволит например копировать его целиком, или брать готовый из библиотеки, при этом не привязываясь к форматированию и тд. Помимо удобства в редактировании, такой подход может принести кучу нового функционала, который сейчас использовать сложно.
Что я нашел в известных решениях
Знаю решения, которые добавляют поддержку нормальных таблиц, как в БД. В MS Excel некие "умные таблицы", в Google Spreadsheets есть диалект SQL. Но в остальном все на таблицах, по прежнему. Airtable же полностью как БД работает, как я понимаю. Но он, вроде, не дает возможности делать сложные многоуровневые формулы, как Excel, только выборки.
Я бы советовал получше разобраться с Excel. ИМХО, это лучший инструмент для работы с "околобытовыми" данными (ну, скажем, срок до 10к).
На семинаре McKinsey по экселю как раз учили, что хранить данные отдельно, а формулы - отдельно это бест практис (а эти ребята понимают в эффективности - у них есть семинар по использованию TrackPoint :).
Чтобы не мучаться с перетаскиванием формул - есть именованные диапазоны и $. А функционалом What-If Analys (подбор параметров) можно в одну кнопку сделать выгрузку значений функции в зависимости от изменения параметров. А дальше - сводные таблицы (Pivot Table) и PowerQwery - для работы с БД из окошка экселя. И все в один клик.
Еще большой плюс экселя - очень много информации в сети.
Много странных советов. Особенно порадовали любители 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 есть компонент, рисующий интерактивный граф со сверткой/развёрткой по клику на ноде.
В-третьих, у Экселя есть чудовищные пробелы и недостатки, которые перевешивают все достоинства. Но про это нужен отдельный пост.
Я использую связку pandas + matplotlib/seaborn для визуализаций данных. В пандасе можно делать sql запросы, groupby операции и почти что угодно на твоих данных. Matplotlib/seaborn дают тоже больший простор для визулизации чем стандартные графики экселя.
Это не совсем отвечает на твой вопрос, поскольку тебе нужен граф зависимостей, но если тебе не очень нужен граф, то связка pandas + matplotlib очень сильно расширяет возможности для визуализации данных по сравнению с обычным экселем.
Microsof Power BI - достаточно сильный инструмент, позволяющий разделять данные, формулы и представление.
Из недостатков - не особо зашёл язык запросов
😱 Комментарий удален его автором...
По теме - sqlite весьма благодатная база для однопоточных задач и всякого эмбеда (содержится вся в одном файле, кроссплатформенная). К ней есть визуальные редакторы. Процессор и вьюху можно сварганить на юпитер ноутбуке. Для работы с данными в одно рыло это кажется самое простое/функциональное, что можно придумать.
попробуйте посмотреть на https://totum.online
Microsoft Access