如何在Power BI中将工作日转换为小时,每天可以更新多次?

时间:2020-01-29 12:39:15

标签: powerbi dax data-analysis powerquery m

我第一次使用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]

我该如何将其转换为至少每小时刷新一次的内容?也许更多。

我希望我提供了足够的信息,并且一切都说得通。

1 个答案:

答案 0 :(得分:0)

我知道了,这主要是数学问题。我提出了一个可以每小时更新一次的解决方案,这似乎很好。

我添加了两列:“营业时间开始”和“营业时间结束”。然后通过以下方式将我的WorkDaysElapsed转换为小数(我尝试为其赋予一些有意义的名称):

HowFarIntoTheDay =现在-开始

TheToalDayHasGoneBy = HowManyPercentageOf /(开始日期)

WorkDaysElapsedInDecimals = WorkDaysElapsed + HowManyPercentageOfTheToalDayHasGoneBy

我不知道这是否是最好的解决方案,但这似乎可以解决问题。