Страницы: 1
RSS
PQ. Посчитать % отработанного времени на объекте
 
Добрый вечер.
Задача простая, но после долгого рабочего дня мозг отключился.
Необходимо в PQ посчитать % отработанного времени на объекте (часы на объекте/ сумму времени)
Простейшая таблица во вложении.
 
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица6"]}[Content],
    group = Table.Group(from, {"ФИО", "Месяц"}, {{"tmp", each _}}),
    fn = (tbl) => [a=List.Sum(tbl[Часы]), b = Table.AddColumn(tbl,"%", each [Часы]/a)][b],
    trnsf = Table.TransformColumns(group,{"tmp", each fn(_)}),
    to = Table.Combine(trnsf[tmp])
in
    to
Соблюдение правил форума не освобождает от модераторского произвола
 
buchlotnik, Фига, я думал проще будет, не думал что функцию можно внутри запроса так использовать. Спасибо большое, очень помог!
Изменено: TankSpb - 06.04.2020 20:12:03
 
Цитата
TankSpb написал:
проще будет.
в PQ нет функции СУММЕСЛИМН(), можно было бы написать её аналог и просто добавить столбец, но через группировку гораздо шустрее получится, а так:
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица6"]}[Content],
    fn = (f,m,h,t) => h / List.Sum(Table.SelectRows(t,each [ФИО]=f and [Месяц]=m)[Часы]),
    to = Table.AddColumn(from,"%", each fn([ФИО],[Месяц],[Часы],from))
in
    to
Изменено: buchlotnik - 06.04.2020 20:23:58
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
buchlotnik написал:
в PQ нет функции СУММЕСЛИМН()
я знаю, поэтому и стал искать варианты на форуме, понимал, что через группировку можно, но у меня бы это отдельный запрос был)
Страницы: 1
Наверх