You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Query计算两日期/时间间工作时长(总分钟数)问题排查

计算工作时段内订单处理时长的M Query问题

我正在编写M Query计算订单从进入Service Review到提交过程中,周一至周五8:00-17:00工作时段内的总分钟数。目前的问题是:当订单在周末或周五进入Service Review,且在周一提交时,计算结果不符合预期。

预期计算规则示例

  • 示例1:订单于2023年1月2日周一8:00进入Service Review,2023年1月3日周二12:00提交,总时长应为720分钟,当前代码可正确计算。
  • 示例2:订单于2023年1月6日周五17:00进入Service Review,2023年1月9日周一8:10提交,总时长应为10分钟。
  • 示例3:订单于2023年1月7日周六或1月8日周日任意时间进入Service Review,且在周六或周日提交,总时长应为0分钟。

现有代码

NonWorkingTime = List.Transform(List.Numbers(0,15*60), each #time(17,0,0)+#duration(0,0,_,0)),
SRReal = Table.AddColumn(SR, "Min in SRRR", each [a=Date.DayOfWeekName( Date.From([Service Review Date])),
b = [Submitted Date]-[Service Review Date],
c = if a = "Saturday" then b - #duration(2,0,0,0) else if a = "Sunday" then b - #duration(1,0,0,0) else b,
d= List.Count( List.Difference(  List.Transform(List.DateTimes([Service Review Date], Duration.TotalMinutes(c), #duration(0,0,1,0)), each Time.From(_)), NonWorkingTime))][d]),

修改后的测试结果

将代码中c = if a = "Friday" then b - #duration(2,0,0,0) else b,修改后,得到以下测试结果:

服务审核日期提交日期SR内时长(分钟)预期值开始日期星期结束日期星期
1/1/2023 8:00:00 AM2/1/2023 12:00:00 PM43980M-F 8-5SundayWednesday
1/1/2023 4:50:00 PM1/2/2023 8:10:00 AM2010SundayMonday
1/5/2023 8:00:00 AM1/8/2023 8:10:00 AM3430Thu + FriThursdaySunday
1/5/2023 4:52:00 PM1/6/2023 8:10:00 AM1818ThursdayFriday
1/5/2023 4:55:00 PM1/5/2023 4:58:00 PM33ThursdayThursday
1/6/2023 8:10:00 AM1/8/2023 8:30:00 AM20470 (Friday ins)FridaySunday
1/6/2023 8:10:00 AM1/6/2023 8:30:00 AM20FridayFriday
1/7/2023 4:50:00 PM1/9/2023 8:10:00 AM146010SaturdayMonday
1/7/2023 4:55:00 PM1/7/2023 5:15:00 PM50SaturdaySaturday
1/7/2023 4:56:00 PM1/8/2023 8:10:00 AM140SaturdaySunday
1/8/2023 8:00:00 AM1/9/2023 8:10:00 AM55010SundayMonday
1/8/2023 12:00:00 PM1/8/2023 12:30:00 PM300SundaySunday

内容的提问来源于stack exchange,提问作者ojmayo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 17:02:47