Страницы: 1
RSS
Расчет длительности (количества дней) процесса
 
Здравствуйте
Столкнулся с проблемой расчета "чистого" количества дней, которое было затрачено на выполнения определенного объекта.
Нужно посчитать количество дней без учета перерыва между этапами и также учитывать, что некоторые этапы выполнялись параллельно с другим(и)
Для наглядности, добавил столбцы  D - X.
Можно ли решить вопрос формулами или Power Query? Спасибо заранее за любую наводку
Опыт и практика - великое дело! Век живи, Век учись!
 
Доброе время суток
Версия на Power Query.
P. S. Почему не изучаем? Тема уже фактически избитая, истоптанная вдоль и поперёк.
 
Сделал в Power Query. Для первого объекта получил результат. Решил протестировать - и появилась ошибка для других объектов.
Видимо нужно как-то сгруппировать, в внутри группы удалить дубликаты. Файлик с попытками :) приложил еще раз
Опыт и практика - великое дело! Век живи, Век учись!
 
Цитата
sanych09 написал:
в внутри группы удалить дубликаты
Похвально! Но затянуто. По существу для одинаковых Location нужно посчитать количество уникальных отмеченных дат.
 
Андрей VG, согласен. Удаление дубликатов как раз и есть Distinct. вот я увидел как у Вас записано при группировке
Код
List.Count(List.Distinct([Атрибут])
Сейчас попробую переделать
Опыт и практика - великое дело! Век живи, Век учись!
 
Андрей VG, спасибо Вам как всегда за помощь! код для исходных данных в столбцах A - C
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Location", type text}, {"Start", type date}, {"Finish", type date}}),
    #"Inserted Date Subtraction" = Table.AddColumn(#"Changed Type", "Subtraction", each Duration.Days([Finish] - [Start]), Int64.Type),
    #"Inserted Addition" = Table.AddColumn(#"Inserted Date Subtraction", "Addition", each [Subtraction] + 1, type number),
    #"Removed Columns" = Table.RemoveColumns(#"Inserted Addition",{"Subtraction"}),
    #"Added Custom" = Table.AddColumn(#"Removed Columns", "Dates", each List.Dates([Start],[Addition],#duration(1,0,0,0))),
    #"Expanded Dates" = Table.ExpandListColumn(#"Added Custom", "Dates"),
    #"Grouped Rows" = Table.Group(#"Expanded Dates", {"Location"}, {"Duration", each List.Count(List.Distinct([Dates]))})
in
    #"Grouped Rows"
Опыт и практика - великое дело! Век живи, Век учись!
 
Сорри хоть вопрос и решен... А можно ли эту задачу формулами решить?
Опыт и практика - великое дело! Век живи, Век учись!
 
Если опиратся на на "Ганта" то массивная
=SUM(--(MMULT(TRANSPOSE(($D$2:$X$6<>"")*($A$2:$A$6=A13));ROW($A$2:$A$6)^1)>0))
Если на даты
=SUM(--(MMULT((ROW(INDEX(A:A;MIN(B2:C6)):INDEX(A:A;MAX(B2:C6)))>=TRANSPOSE(B2:B6))*(ROW(INDEX(A:A;MIN(B2:C6)):INDEX(A:A;MAX(B2:C6)))<=TRANSPOSE(C2:C6))*(TRANSPOSE(A2:A6)=A13);ROW(A2:A6)^0)>0))
Изменено: БМВ - 30.08.2018 07:47:01
По вопросам из тем форума, личку не читаю.
 
БМВ, спасибо!!! MMULT первый раз вижу . На вид - выглядит сложно
Опыт и практика - великое дело! Век живи, Век учись!
Страницы: 1
Наверх