Я впервые использую Power BI, и мне было поручено сравнить время отклика билетов с тем, что мы обещали нашим клиентам. Мне нужно показать, сколько рабочих дней и рабочих часов прошло с момента создания заявки. Рабочие часы могут быть с 08:00 до 16:00 (зависит от клиента), а рабочие дни - понедельник, вторник, Wedensday, четверг и пятница. Делаем рабочий день 8 часов. Если билет приходит в 15:00, и у нас есть 1 рабочий день, чтобы ответить, то нам нужно будет ответить до 15:00 следующего дня, а не до 23:00 в тот же день. Моя проблема на данный момент состоит в том, что мои текущие расчеты в полных рабочих днях. Это означает, что мои истекшие рабочие часы обновляются только с 8-часовыми интервалами. Это не очень полезно на ежедневной основе, в случаях, когда у нас есть только один день, чтобы ответить на билет, и нужно знать, что он приближается к крайнему сроку.
На практике это переводит в столбец, где билет, созданный сегодня, будет иметь значение 0 рабочих дней и 0 рабочих часов, даже если текущее время 15:00, а билет был создан в 08:00.
В данный момент у меня есть (среди прочего) эти два столбца: истекшие рабочие дни (WDE) и истекшие рабочие часы (WHE).
WDE рассчитывается следующим образом, чтобы исключить выходные дни:
(InitialDate as date) as number =>
let
FinalDate = DateTime.Date(DateTime.LocalNow()),
DaysBetweenDates = Duration.Days(FinalDate-InitialDate),
DaysList = List.Dates(List.Min({InitialDate,FinalDate}),DaysBetweenDates, Duration.From(1)),
WeekDaysList = List.Select(DaysList, each (Date.DayOfWeek(_, Day.Monday) < 5) ),
WorkingDays = (if DaysBetweenDates < 0 then -1 else 1) * List.Count(WeekDaysList)
in
WorkingDays
Рабочие часы истекли, на данный момент немного проще:
Work Hours Elapsed = 'Work Items'[Work Days Elapsed]*'Work Items'[Business Hours]
Как бы преобразовать это во что-то, что можно обновлять хотя бы каждый час? Может быть, даже чаще.
Я надеюсь, что предоставил достаточно информации, и все это имеет смысл.