Comments 23
Кажется это оверхед (или как это правильно называется)
может проще было "промежуточные итоги", а потом сортировка
Просто данных я не вижу и непонятно, что считалось
Паверквери - можно ознакомится на ютубе есть лекции от "товарищ эксель" , но кажется PQ не для Вашей задачи
а если уходить в питон. да сразу развернуть юпитер локально, закинуть туда файл эксель/csv и там уже отрабатывать
С другой стороны питон хорош для автоматизации
Таблица вот такого вида. Подход через запуск отдельного исполняемого Python-файла или Jupyter Notebook мне кажется избыточным.
да тут кажется просто сводная таблица и все. Не? (вот этот же код группирует и выводит средние по двум переменным "groupby("breathing_pattern").mean( ['HRV','HR'] "
258 строк это вообще ниачем, это даже не 258 тысяч (и их бы эксель прожевал спокойно, вот 2 миллиона уже без паверквери не получилось бы)
Так-то мне и питон тут излишним. питон в экселе это наверно скорее замена VBA, для современного поколения дата-аналитиков
Ничего не хочу сказать, но вам достаточно было сделать дополнительную колонку со "Средним значением" и куда-нибудь отдельно вынести поиск максимального значения с INDEX+MATCH
Достаточно будет вносить новые значения и смотреть на результат.
https://i.imgur.com/n5Qj2PU.png
Исполнение кода Python требует интернет-соединения.
Off-line никак?
Можно накатать код на чистом VBA живет в excel,
Можно на powershell- есть модуль для работы с excel.
Ещё вариант выкинуть данные в csv- импортировать в SQLite. Где выполнить запрос и выдать результаты.
в любом из случаем не требуется интернет. Но запускать надо будет после обновления данных
В данной ситуации (не умею ни в VBA, ни в SQLite, мизерный объем данных, постоянное Интернет-подключение, умею в Pandas) мне показалось рациональным задействовать именно Python в Excel. И, не скрою, очень хотелось найти ему применение.
ЧатГпт в помощь :)
Решение прикольное не нравится что все через сайт МС. Сегодня соединение есть, завтра нет.
Кстати скормите задачу Чату ГПТ и посмотрите что он вам находит. Конечно придётся доработать напильником.
Попробуйте использовать jupyter, не в составе google colab, а в установке на рабочий ПК(если зайдет, можно в северном исполнении сделать).
Я в свое время использовал jupyter для разбора финансовых показателей для отчёта, данных было очень много иЭксель плакал и звал маму, pandas тратил секунды на это.
Так и раньше можно было использовать питон через Excel, причём все работает оффлайн. Для этого нужно написать макрос на VBA и вызвать питон скрипт, передав ему через параметры путь к данному Excel, название листа и все прочее.
"необходимостью после каждого изменения таблицы-источника делать REFRESH" в pandas тоже нужно код перезапустить, если данные в источнике обновились. Частично проблема обновления решается ДВССЫЛ, именоваными диапазонами. Но проблема кнопки-обновить остается.
Выглядит странно, но мне показалось, что в моем сценарии код запускается на исполнение сам, сразу же после обновления таблицы-источника данных, ничего нажимать/запускать вручную не надо.
Возможно, я не понимаю как работает эта строка: df = xl("Table5[#All]", headers=True)
df = xl("Table5[#All]", headers=True)
Из таблицы Excel "Table5" создается Python-объект, DataFrame. [#All] значит, что таблица используется полностью -- и данные, и header.
Функция xl
не является стандартной функцией Pandas или Python, поэтому предполагается, что это пользовательская функция или функция из сторонней библиотеки, которая возвращает DataFrame?
Функция xl — стандартная функция Excel, которая, принимая одним из аргументов объект Excel, конвертирует его в объект Python, не обязательно датафрейм. Что-то вроде моста между Excel на локальном компьютере и Python на сервере Microsoft. Хотя аналогия с мостом — не очень удачная, ничего другого мне в голову не приходит.
На всякий случай: этот Python-код "живет" в ячейке A1, а не в отдельном файле. Это я забыл (упустил) акцентировать. И не требует привычного запуска.
Python в Excel жив?