Страницы: 1
RSS
Power Query - групировка данных с условием по сумме
 
Добрый день.
Помогите пожалуйста с запросом в Power Query. Думал как сделать, искал похожие варианты но не нашел. Уже голова болит от него.

Есть таблица с продажами по дням в разрезе номера отделения и клиента. Есть необходимость эту таблицу с помощью Power Query привести к следующему виду – по каждому клиенту формируется одна строка, с номером отделения, кодом клиента и общей месячной сумой. Но есть одно условие, которое не могу понять как решить – если сума продаж или за месяц или нарастающим итогом с января больше или равно 300, условие по клиенту выполняется и в таблице указывается первый месяц когда выполнено условие (или месяц в котором суммарно с предыдущими условие выполнено). И в столбце «Условие» прописывается «да».

Если суммарно сумма 300 не достигнута – по клиенту прописывается последний месяц продаж, общая сумма с января нарастающим итогом и в столбце «Условие» прописывается «нет». Или может подскажете где можно посмотреть аналогичный пример.

В файле примере указал пример начальных данных и желаемую таблицу.
 
Доброе время суток
Цитата
jelaris8 написал:
указывается первый месяц когда выполнено условие (или месяц в котором суммарно с предыдущими условие выполнено).
Что в этом случае должно выводиться, если выполняются оба условия - например с января по март продажи 101, следовательно первый месяц март, как сумма нарастающего итога, но в апреле 100500?
 
может я не понял чего, но вроде строго по заданию:
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    month = Table.TransformColumns(from, {"Дата операции", each Date.MonthName(_)}),
    name = Table.RenameColumns(month,{"Дата операции", "Месяц"}),
    f=(l,n)=>List.Accumulate(
                                l, 
                                [Сумма=0,Месяц="",Статус="нет"], 
                                (s,c)=>[    Сумма=s[Сумма]+c{0}, 
                                            Месяц=if s[Сумма]>n then  s[Месяц] else c{1}  ,
                                            Статус = if Сумма>n then "да" else "нет" 
                                        ]
                             ),
    group = Table.Group(name, {"Номер отделения", "Код клиента"}, {"tmp", each f(List.Zip({[Сумма],[Месяц]}),300)}),
    to = Table.ExpandRecordColumn(group, "tmp", {"Сумма", "Месяц", "Статус"})
in
    to
Изменено: buchlotnik - 31.07.2020 21:43:50
Соблюдение правил форума не освобождает от модераторского произвола
 
Андрей VG, условие выполнено в апреле и следовательно в поле месяц указывается апрель и в поле условие указывается да.
если бы данных за апрель не было то в поле месяц указывается последний месяц продаж и в поле условие указывается нет.

buchlotnik, заранее спасибо, проверю отпишусь.
 
Цитата
jelaris8 написал:
словие выполнено в апреле и следовательно в поле месяц указывается апрель
Похоже вы не прочитали, цитирую:
Цитата
Андрей VG написал:
января по март продажи 101, следовательно первый месяц март, как сумма нарастающего итога, но в апреле 100500?
В виде таблицы нарастающим итогом:
январь 101
февраль 202
март 303
апрель 100803
Вопрос тот же.
 
Андрей VG,прошу прощения, отвечал с телефона и не досмотрел - условие (300+) выполняется в феврале (если январь 101 + февраль 202 = 303) и соответственно "месяц" - февраль, "условие" - да.  
 
Цитата
jelaris8 написал:
отвечал с телефона
Понятно, увы, тогда ничего лучше чем предложил Михаил, соорудить не смогу.
P. S. Хотя, не сходится в плане
У вас
138 214 845,66 январь да
У Михаила
138 214 1563,05 январь да
Собственно что должно быть в выводе, первая среди нарастающих сумм, равная или превысившая заданное 300 или общая сумма по коду клиента коду отделения? Поскольку для другой строки примера
У вас
200 286 2102,3 март да
У Михаила
200 286 2102,3 март да
суммы сходятся. Вы уж определитесь.
Изменено: Андрей VG - 01.08.2020 12:47:13
 
Андрей VG, ошибка у меня. buchlotnik сделал все правильно. В понедельник проверю на большем количестве данных. Один вопрос где можно почитать или посмотреть что научиться продвинутому power query? Что я смог делать такие же запросы.
 
Цитата
jelaris8 написал:
почитать или посмотреть
так форум и читайте - сообщения от  Максим Зеленский, Андрей VG, PooHkrd, Андрей Лящук - кладезь информации
Соблюдение правил форума не освобождает от модераторского произвола
 
jelaris8, и еще сообщения от этого скромняги buchlotnik не пропускайте тоже.
Вот горшок пустой, он предмет простой...
Страницы: 1
Наверх