Страницы: 1
RSS
Группировка данных в таблице по нескольким условиям
 
Приветствую всех пользователей форума!

Сейчас нужно решить определенный спектр задач в Excel & Power Query, уже неоднократно использовал решение многих моментов, которые нашел на этом форуме.

Не могу найти сейчас решение своей задачи. У меня есть, полученный через API (Power Query), это информация по покупкам, продажам.

Мне нужно сгруппировать (+,- способ группировка, желательно как в сводных таблицах) строки в группу, по следующим условиям:
- Все строки, в которых есть значение "Buy" в колонке "Type", а так же одинаковое значние колонки "Direction" (всего 2 значения), которые находятся между строк  со значением "sell" в колонке "Buy" такого же значения в колонке "Direction"
- Альтернативным вариантом будет логика — все строки, в которых есть значение "Buy" в колонке "Type", а так же одинаковое значние колонки "Direction" (всего 2 значения) с временем  в диапозоне A - B (колонка DATE), где начало диапозона - время в ячейке из строки, с значением "sell" в колонке "Buy" такого же значения в колонке "Direction" снизу от 1 строки "Buy", до времени в ячейке из строки, с значением "sell" в колонке "Buy" такого же значения в колонке "Direction" после последней строки "Buy".
- Если нет Sell, то сделать так же группу желательно.

Возможно сложно объяснил, я еще в загруженном файле нужные группы сделал зеленого и красного цвета.
Изменено: Kirill Saunikov - 15.06.2020 09:29:53
 
Владислав Крупин, файл не загружен
 
Действительно, загружал файл, но что-то не загрузился. Изменил тему, добавив файл.
 
Kirill Saunikov, в примере нет желаемого результата.
Как именно сгруппировать эти зеленые и красные строки?
 
Используйте кнопку цитирования по прямому назначению, а не для ответа [МОДЕРАТОР]

Добавил результат. Нужно группировать все покупки к каждой продаже, учитывая что они в 2 разных направлениях могут быть.
 
Kirill Saunikov, проверьте, так ли надо?
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    Add = Table.Group(Table.AddColumn(Source,"a",each Date.From([Date])),{"a"},
    {"b", each Table.Combine(Table.Group(_, {"Direction"}, {"a", each _})[a])})[b],
    Custom = Table.RemoveColumns(Table.Combine(Add),{"a"})
in
    Custom
 
Спасибо за ответ!

К сожалению, нет, выходит вовсе не так, мне надо именно сгруппировать, чтобы можно было открывать, закрывать посредством +-, а так же тут группировка не верна. Поулчается у нас между каждым SELL-DIRECTION все "BUY-DIRECTION" надо в сгруппировать в группу, где старший SELL-DIRECTION, по сути группа это строка продажи, в которую входят все покупки в этом направлении совершенные после прошлой продажи в этом же направлении.
Страницы: 1
Наверх