我第一次使用Power BI,我的任务是将票务响应时间与我们向客户承诺的时间进行比较。自创建票证以来,我需要显示多少工作日和工作时间。营业时间可能是08:00-16:00(视客户情况而定),工作日是星期一,星期二,星期三,星期四和星期五。每天工作8小时。如果机票是在15:00进场的,并且我们有1个工作日才能做出回应,则我们需要在第二天的15:00之前做出响应,而不是在当天的23:00做出响应。到目前为止,我的问题是我当前的计算是在整个工作日内进行的。这意味着我的“经过的工作时间”仅每8小时更新一次。如果我们只有一天来回应票证,并且需要知道票证接近截止日期,那么这对于每天来说不是很有用。
实际上,这将转换为今天创建的故障单的一列,即使当前时间是15:00,并且已在08:00创建故障单,该故障单也将具有0个工作日和0个工作小时。 >
此刻,我(除其他外)有这两列:经过的工作日(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]
我该如何将其转换为至少每小时刷新一次的内容?也许更多。
我希望我提供了足够的信息,并且一切都说得通。
答案 0 :(得分:0)
我知道了,这主要是数学问题。我提出了一个可以每小时更新一次的解决方案,这似乎很好。
我添加了两列:“营业时间开始”和“营业时间结束”。然后通过以下方式将我的WorkDaysElapsed转换为小数(我尝试为其赋予一些有意义的名称):
HowFarIntoTheDay =现在-开始
TheToalDayHasGoneBy = HowManyPercentageOf /(开始日期)
WorkDaysElapsedInDecimals = WorkDaysElapsed + HowManyPercentageOfTheToalDayHasGoneBy
我不知道这是否是最好的解决方案,但这似乎可以解决问题。