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

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

Кажется это оверхед (или как это правильно называется)

может проще было "промежуточные итоги", а потом сортировка

Просто данных я не вижу и непонятно, что считалось

Паверквери - можно ознакомится на ютубе есть лекции от "товарищ эксель" , но кажется PQ не для Вашей задачи

а если уходить в питон. да сразу развернуть юпитер локально, закинуть туда файл эксель/csv и там уже отрабатывать

С другой стороны питон хорош для автоматизации

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

да тут кажется просто сводная таблица и все. Не? (вот этот же код группирует и выводит средние по двум переменным "groupby("breathing_pattern").mean( ['HRV','HR'] "

258 строк это вообще ниачем, это даже не 258 тысяч (и их бы эксель прожевал спокойно, вот 2 миллиона уже без паверквери не получилось бы)

Так-то мне и питон тут излишним. питон в экселе это наверно скорее замена VBA, для современного поколения дата-аналитиков

Ничего не хочу сказать, но вам достаточно было сделать дополнительную колонку со "Средним значением" и куда-нибудь отдельно вынести поиск максимального значения с INDEX+MATCH
Достаточно будет вносить новые значения и смотреть на результат.
https://i.imgur.com/n5Qj2PU.png

За подсказку спасибо! Способов действительно много.

  1. Исполнение кода Python требует интернет-соединения. 

Off-line никак?

Уже 6 лет как библиотеки PyXLL и XLWIngs дают Python/Pandas внутри Excel 2007-10-13-16-19.

Не знал, спасибо.

Нет, оффлайн не работает: код исполняется на сервере Microsoft.

Можно накатать код на чистом VBA живет в excel,

Можно на powershell- есть модуль для работы с excel.

Ещё вариант выкинуть данные в csv- импортировать в SQLite. Где выполнить запрос и выдать результаты.

в любом из случаем не требуется интернет. Но запускать надо будет после обновления данных

В данной ситуации (не умею ни в VBA, ни в SQLite, мизерный объем данных, постоянное Интернет-подключение, умею в Pandas) мне показалось рациональным задействовать именно Python в Excel. И, не скрою, очень хотелось найти ему применение.

ЧатГпт в помощь :)

Решение прикольное не нравится что все через сайт МС. Сегодня соединение есть, завтра нет.

Кстати скормите задачу Чату ГПТ и посмотрите что он вам находит. Конечно придётся доработать напильником.

ChatGPT можно скормить сырые данные и он их обработает, это да. И несложный код написать сможет.

Попробуйте использовать jupyter, не в составе google colab, а в установке на рабочий ПК(если зайдет, можно в северном исполнении сделать).

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

Я постоянно использую локальный Jupyter Notebook на РС, отличный инструмент для определеных (не всех) задач. Здесь же идея в том, что все действия - и записи новых данных, и их обработка - происходят внутри одного файла. Открыл Excel, внёс новые строки в таблицу и сразу видишь результаты.

Так и раньше можно было использовать питон через 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, а не в отдельном файле. Это я забыл (упустил) акцентировать. И не требует привычного запуска.

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

Публикации

Истории