Power Query;Вычисление, когда определенное значение в числовом порядке отсутствует и создание дополнительной строки - PullRequest
0 голосов
/ 30 января 2019

Я создаю отчет каждую неделю, в котором определяются потребности в деталях, которые моя компания предъявляет на текущую и будущие недели.Созданный отчет загружает данные из файла клиента, который я загружаю, преобразую и загружаю в свой отчет с помощью Power Query.В отчете указан номер недели для года и спрос на эту неделю.Проблема, с которой я сталкиваюсь, заключается в том, что отчет клиента пропускается неделю (неделя 26) и переходит прямо к 27 (Просмотреть прикрепленные изображения).

Какие шаги можно предпринять в Power Query для вычисления, если номер недели отсутствует исоздайте дополнительную строку для номера этой недели и заполните поле Qty Required значением «0», оставив поле «Текущий баланс на руках» таким же, как и на предыдущей неделе.

Я приложил изображения своей таблицы, сгенерированные из PQ, итаблицы PQ в редакторе.

enter image description here

enter image description here

1 Ответ

0 голосов
/ 31 января 2019

Это может помочь.Я начал с таблицы, похожей на ваш скриншот: enter image description here

Затем я перенес ее в Power Query в виде таблицы 1: enter image description here

Затем я добавил столбец индекса, начиная с 1: enter image description here enter image description here

Затем я добавил пользовательский столбец, чтобы определить, была ли неделя пропущена.Для этого он использует столбец Index и WeekNumber.(В противном случае попытка обрабатывает ошибку, которая возникает при получении последней записи.): enter image description here enter image description here

Затем я отфильтровал пользовательский столбец впоказывать только строки с «Нет»: enter image description here

Затем, чтобы добавить записи о пропущенных неделях, я нажал функциональную кнопку ... enter image description here... и набрал = Table.TransformColumns(Custom1, {{"Qty Required", each 0},{"Requirement Date", each 0}, {"WeekNumber", each _ + 1}}) и нажал ввод в области функциональной панели.Я также изменил название примененного шага с Custom1 на Transform Table (справа от окна Power Query): enter image description here

Затем я нажал Home> Append Queries и выбралTable1 в раскрывающемся списке, и я нажал OK.enter image description here

Затем я изменил второй экземпляр # "Transform Table" на # "Added Custom" в области функциональной панели и нажал ввод.Это добавляет новые записи за предыдущие пропущенные недели с теми, которые уже существовали ранее, которые существовали в Приложенном шаге # «Добавленный пользовательский» (который также является в основном предыдущим состоянием таблицы), чтобы создать полный набор: enter image description here

Затем я отсортировал по номеру недели: enter image description here

Затем я удалил индекс и пользовательские столбцы: enter image description here

Вот мой код М:

let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type datetime}, {"Part Number", Int64.Type}, {"Part Description", type text}, {"Current Balance On Hand", Int64.Type}, {"Qty Required", Int64.Type}, {"Requirement Date", type datetime}, {"WeekNumber", Int64.Type}, {"Year", Int64.Type}}),
#"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 1, 1),
#"Added Custom" = Table.AddColumn(#"Added Index", "Custom", each try if  #"Added Index"{[Index]-1}[WeekNumber]+1 = #"Added Index"{[Index]}[WeekNumber] then "Yes" else "No" otherwise "Yes"),
#"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([Custom] = "No")),
#"Transform Table" = Table.TransformColumns(#"Filtered Rows", {{"Qty Required", each 0},{"Requirement Date", each 0}, {"WeekNumber", each _ + 1}}),
#"Appended Query" = Table.Combine({#"Transform Table", #"Added Custom"}),
#"Sorted Rows" = Table.Sort(#"Appended Query",{{"WeekNumber", Order.Ascending}}),
#"Removed Columns" = Table.RemoveColumns(#"Sorted Rows",{"Index", "Custom"})
in
#"Removed Columns"
...