在 Power BI 中,如何将工作日转换为一天可以更新多次的小时数?
How do i translate working days into hours, which can be updated more than once a day, in Power BI?
我第一次使用 Power BI,我的任务是将我们的工单响应时间与我们向客户承诺的时间进行比较。我需要显示自创建工单以来已经过去了多少个工作日和工作时间。营业时间可为08:00 - 16:00(因客户而异),工作日为周一、周二、周三、周四和周五。使一个工作日为 8 小时。如果工单在 15:00 收到,并且我们有 1 个工作日的回复时间,那么我们需要在第二天 15:00 之前回复,而不是在同一天 23:00 之前回复。我现在的问题是,我目前的计算是在全工作日进行的。这意味着我的 Working Hours Elapsed 仅以 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 Hours Elapsed = 'Work Items'[Work Days Elapsed]*'Work Items'[Business Hours]
我如何将它转换成至少每小时刷新一次的东西?可能更频繁。
我希望我提供了足够的信息,并且一切都有意义。
我想通了,主要是一道数学题。我做了一个可以每小时更新的解决方案,这似乎很好。
我添加了两列:营业时间开始和营业时间结束。然后通过以下方式将我的 WorkDaysElapsed 转换为小数(我尝试给它一些有意义的名称):
HowFarIntoTheDay = 现在 - 开始
HowManyPercentageOfTheToalDayHasGoneBy = HowFarIntoTheDay/(结束-开始)
WorkDaysElapsedInDecimals = WorkDaysElapsed + HowManyPercentageOfTheToalDayHasGoneBy
我不知道这是否是最佳解决方案,但它似乎可以解决问题。
我第一次使用 Power BI,我的任务是将我们的工单响应时间与我们向客户承诺的时间进行比较。我需要显示自创建工单以来已经过去了多少个工作日和工作时间。营业时间可为08:00 - 16:00(因客户而异),工作日为周一、周二、周三、周四和周五。使一个工作日为 8 小时。如果工单在 15:00 收到,并且我们有 1 个工作日的回复时间,那么我们需要在第二天 15:00 之前回复,而不是在同一天 23:00 之前回复。我现在的问题是,我目前的计算是在全工作日进行的。这意味着我的 Working Hours Elapsed 仅以 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 Hours Elapsed = 'Work Items'[Work Days Elapsed]*'Work Items'[Business Hours]
我如何将它转换成至少每小时刷新一次的东西?可能更频繁。
我希望我提供了足够的信息,并且一切都有意义。
我想通了,主要是一道数学题。我做了一个可以每小时更新的解决方案,这似乎很好。
我添加了两列:营业时间开始和营业时间结束。然后通过以下方式将我的 WorkDaysElapsed 转换为小数(我尝试给它一些有意义的名称):
HowFarIntoTheDay = 现在 - 开始
HowManyPercentageOfTheToalDayHasGoneBy = HowFarIntoTheDay/(结束-开始)
WorkDaysElapsedInDecimals = WorkDaysElapsed + HowManyPercentageOfTheToalDayHasGoneBy
我不知道这是否是最佳解决方案,但它似乎可以解决问题。