Этого можно добиться с помощью редактора Power Query.Я назвал отправную точку (ваши данные) baseTable и использовал ее в качестве источника для targetTable (вашей Обязательной таблицы).
Это следующие шаги:
- Используйте [Группировать по] (дополнительно) на вкладке Преобразование.Группа "LogTime".Сделайте две агрегации (minTime и maxTime "). Операция: Все строки.
- Добавьте два пользовательских столбца, извлекая запись StartTime и EndTime. (См. Сценарий)
- Разверните запись в обоихстолбцы
- Создание настраиваемого столбца (вычтите начальное время из конечного времени). Измените тип данных на длительность
- Удалите столбцы [Минутное время] и [Максимальное время]
Сценарий выглядит следующим образомthis:
let
Source = #"baseTable",
#"Grouped Rows" = Table.Group(Source, {"LogTime"}, {{"minTime", each _, type table}, {"maxTime", each _, type table}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "minStart", each Table.Min([minTime],"StartTime")),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "maxEnd", each Table.Max([maxTime],"endTime")),
#"Expanded minStart" = Table.ExpandRecordColumn(#"Added Custom1", "minStart", {"StartTime"}, {"StartTime"}),
#"Expanded maxEnd" = Table.ExpandRecordColumn(#"Expanded minStart", "maxEnd", {"endTime"}, {"endTime"}),
#"Added Custom2" = Table.AddColumn(#"Expanded maxEnd", "endTime-StartTime", each [endTime]-[StartTime]),
#"Changed Type" = Table.TransformColumnTypes(#"Added Custom2",{{"StartTime", type time}, {"endTime", type time}, {"endTime-StartTime", type duration}}),
#"Removed Columns" = Table.RemoveColumns(#"Changed Type",{"minTime", "maxTime"})
in
#"Removed Columns"
Когда вы копируете этот скрипт в расширенный редактор, используя пустой запрос для нового источника, вы должны иметь возможность просмотреть Applied Steps.