Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Извлечь разницу времен пользователей в Power Query - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Извлечь разницу времен пользователей в Power Query
Sibmaster Дата: Среда, 05.10.2022, 13:26 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте!
Есть таблица: Пользователь - дата посещения ресурса.
Нужна таблица: Пользователь - Дельта времени между посещениями.

К примеру, если пользователь Иванов с датами 21.05; 23.05; 29.05 то мы должны получить для Иванова 2 дня и 6 дней в преобразованной таблице.
Решение нужно в Power Query так как таблицы с данными большие - несколько сотен тысяч строк. И расчеты дальнейшие в PQ планируются производится.
С PQ недавно начал работать, и стандартными функциями не смог решить.
Файл с данными прикрепляю.

К сообщению приложен файл: 4433113.xlsx (102.1 Kb)
 
Ответить
СообщениеЗдравствуйте!
Есть таблица: Пользователь - дата посещения ресурса.
Нужна таблица: Пользователь - Дельта времени между посещениями.

К примеру, если пользователь Иванов с датами 21.05; 23.05; 29.05 то мы должны получить для Иванова 2 дня и 6 дней в преобразованной таблице.
Решение нужно в Power Query так как таблицы с данными большие - несколько сотен тысяч строк. И расчеты дальнейшие в PQ планируются производится.
С PQ недавно начал работать, и стандартными функциями не смог решить.
Файл с данными прикрепляю.


Автор - Sibmaster
Дата добавления - 05.10.2022 в 13:26
прохожий2019 Дата: Среда, 05.10.2022, 22:23 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1298
Репутация: 327 ±
Замечаний: 0% ±

365 Beta Channel
стандартными функциями не смог решить
как-будто в PQ есть возможность использовать нестандартные...
[vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    f=(x)=>[a=List.Buffer(List.Sort(x[Дата])),
            b=List.Zip({List.RemoveLastN(a,1),List.Skip(a)}),
            c=(x)=>Duration.TotalDays(x{1}-x{0}),
            d=List.Transform(b,c)][d],
    gr = Table.Group(from, "ФИО", {"lst",f}),
    to = Table.ExpandListColumn(gr,"lst")
in
    to
[/vba]
К сообщению приложен файл: 3090310.xlsx (110.3 Kb)
 
Ответить
Сообщение
стандартными функциями не смог решить
как-будто в PQ есть возможность использовать нестандартные...
[vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    f=(x)=>[a=List.Buffer(List.Sort(x[Дата])),
            b=List.Zip({List.RemoveLastN(a,1),List.Skip(a)}),
            c=(x)=>Duration.TotalDays(x{1}-x{0}),
            d=List.Transform(b,c)][d],
    gr = Table.Group(from, "ФИО", {"lst",f}),
    to = Table.ExpandListColumn(gr,"lst")
in
    to
[/vba]

Автор - прохожий2019
Дата добавления - 05.10.2022 в 22:23
Sibmaster Дата: Четверг, 06.10.2022, 05:50 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Спасибо ! Премного :) !
Данное решение - именно то что мне надо! Очередной раз при обращении на этом форуме, результат превосходит мои ожидания yes
Файл отрабатывает все данные в сотни тысяч строк, без видимых задержек - махом! Буду осваивать язык М. Для начала на приведенной формуле.

 
Ответить
СообщениеСпасибо ! Премного :) !
Данное решение - именно то что мне надо! Очередной раз при обращении на этом форуме, результат превосходит мои ожидания yes
Файл отрабатывает все данные в сотни тысяч строк, без видимых задержек - махом! Буду осваивать язык М. Для начала на приведенной формуле.


Автор - Sibmaster
Дата добавления - 06.10.2022 в 05:50
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!