首页 > 解决方案 > 如何在 Power BI 中将工作日转换为每天可以多次更新的小时?

问题描述

我第一次使用 Power BI,我的任务是将我们的票证响应时间与我们向客户承诺的时间进行比较。我需要显示自创建工单以来已经过去了多少工作日和工作时间。营业时间为 08:00 - 16:00(视客户而定),工作日为周一、周二、周三、周四和周五。一天工作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 Hours Elapsed = 'Work Items'[Work Days Elapsed]*'Work Items'[Business Hours]

我如何将其转换为至少可以每小时刷新一次的东西?也许更频繁。

我希望我已经提供了足够的信息,并且这一切都是有道理的。

标签: powerbidaxdata-analysispowerquerym

解决方案


我想通了,这主要是一个数学问题。我做了一个可以每小时更新的解决方案,这似乎很好。

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

HowFarIntoTheDay = 现在 - 开始

HowManyPercentageOfTheToalDayHasGoneBy = HowFarIntoTheDay/(结束-开始)

WorkDaysElapsedInDecimals = WorkDaysElapsed + HowManyPercentageOfTheToalDayHasGoneBy

我不知道这是否是最好的解决方案,但它似乎可以完成这项工作。


推荐阅读