Страницы: 1
RSS
Power Query. Рассчитать кол-во рабочих дней в неделе.
 
Добрый день.
Прошу оказать помочь в следующем вопросе:
Имеет таблица:
Регион.
Дата отчета
Признак рабочего дня (1 - рабочий день, 0 - выходной или праздничный)
Номер недели.
Реализация
Необходимо получить таблицу:
Номер недели
Сумма реализации за неделю
Кол-во рабочих дней в неделе.

С расчетом суммы реализации проблем нет.

Не получается рассчитать кол-во рабочих дней в неделе. "Сумма" не подходит, т.к. за один день с таблице несколько записей.
Помогите рассчитать количество рабочих дней за неделю.
Спасибо
 
Код
    #"Сгруппированные строки" = Table.Group(#"Измененный тип", {"Номер_нед"}, {{"Кол_во_Р_дн", each List.Count(List.Distinct(Table.SelectRows(_, each [Признак раб дн]<>0)[Дата отчета])), type nullable number}, {"Реализация", each List.Sum([реализация]), type nullable number}}),
 
Neostt, тупо на кнопках:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Регион", type text}, {"Дата отчета", type date}, {"Номер_нед", Int64.Type}, {"Признак раб дн", Int64.Type}, {"реализация", type number}}),
    #"Grouped Rows" = Table.Group(#"Измененный тип", {"Дата отчета", "Номер_нед", "Признак раб дн"}, {{"реализация", each List.Sum([реализация]), type nullable number}}),
    #"Grouped Rows1" = Table.Group(#"Grouped Rows", {"Номер_нед"}, {{"Кол_Р_дн", each List.Sum([Признак раб дн]), type nullable number}, {"реализация", each List.Sum([реализация]), type nullable number}})
in
    #"Grouped Rows1"

Но вариант выше работать должен быстрее. Просто показываю направление мысли
Изменено: PooHkrd - 16.02.2022 16:52:18
Вот горшок пустой, он предмет простой...
 
Применительно к представленному мной примеру ваш код работает. (mechanix 85)
Но на "рабочей" базе не заработал. Причина в более сложной группировке, где по сгруппированным строкам не всегда есть отгрузки на каждый день недели.
Но при этом, в первоначальной странице, каждый календарный день есть запись с отгрузкой (только не по всем регионам...).
Изменено: Neostt - 16.02.2022 16:57:07
 
тогда прикладывайте нормальный пример
 
Приложил
 
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Строки с примененным фильтром" = Table.SelectRows(Источник, each [Признак раб дн] = 1),
    #"Другие удаленные столбцы" = Table.SelectColumns(#"Строки с примененным фильтром",{"Номер_нед", "Дата отчета"}),
    #"Удаленные дубликаты" = Table.Distinct(#"Другие удаленные столбцы"),
    #"Сгруппированные строки" = Table.Group(#"Удаленные дубликаты", {"Номер_нед"}, {{"Количество", each Table.RowCount(_), type number}}),
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Регион", type text}, {"Дата отчета", type date}, {"Номер_нед", Int64.Type}, {"Признак раб дн", Int64.Type}, {"реализация", type number}}),
    #"Сгруппированные строки1" = Table.Group(#"Измененный тип", {"Город", "Номер_нед"}, {{"Реализация", each List.Sum([реализация]), type nullable number}}),
_1=Table.NestedJoin(#"Сгруппированные строки1",{"Номер_нед"},#"Сгруппированные строки",{"Номер_нед"},"NewColumn",JoinKind.LeftOuter),
    #"Развернутый элемент NewColumn" = Table.ExpandTableColumn(_1, "NewColumn", {"Количество"}, {"Кол_во_Р_дн"}),
    #"Переупорядоченные столбцы" = Table.ReorderColumns(#"Развернутый элемент NewColumn",{"Город", "Номер_нед", "Кол_во_Р_дн", "Реализация"}),
    #"Замененное значение" = Table.ReplaceValue(#"Переупорядоченные столбцы",null,0,Replacer.ReplaceValue,{"Кол_во_Р_дн"})
in
    #"Замененное значение"
 
Цитата
написал:
Код
Спасибо.
Страницы: 1
Наверх