我正在尝试编写一个M查询,以计算在M-F的营业时间8:00 - 17:00之间提交订单。我遇到了一个问题,即订单在周末或周五进入“服务审核”,但在周一提交。
例如:如果订单在2023年1月2日星期一上午8:00进行服务审核,并在2023年1月3日星期二下午12:00提交,则总分钟数= 720分钟。这与当前的代码一起工作。
如果订单在2023年1月6日星期五下午5:00进行服务审核,并在2023年1月9日下星期一上午8:10提交,则总分钟数= 10分钟。
如果订单在2023年1月7日星期六或2023年1月8日星期日的任何时间进行服务审核,并在2023年1月7日星期六或2023年1月7日星期日提交,则分钟= 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中的最小值|预期|开始日|结束日|
| - -----|- -----|- -----|- -----|- -----|- -----|
| 2023年1月1日上午8:00:00| 2023年2月1日12:00:00 PM|四三九八○| M-F 8-5|星期天|星期三|
| 2023年1月1日下午4:50:00| 2023年1月2日上午8:10:00|二十个|十个|星期天|星期一|
| 2023年1月5日上午8时00分|2023年1月8日上午8:10:00|三四三○|周四+周五|星期四|星期天|
| 2023年1月5日下午4:52:00| 2023年1月6日上午8:10:00|十八岁|十八岁|星期四|星期五|
| 2023年1月5日下午4:55:00| 2023年1月5日下午4:58:00| 3| 3|星期四|星期四|
| 2023年1月6日上午8:10:00| 2023年1月8日上午8时30分|二十个|470(星期五)|星期五|星期天|
| 2023年1月6日上午8:10:00| 2023年1月6日上午8时30分||二十个|星期五|星期五|
| 2023年1月7日下午4:50:00| 2023年1月9日上午8:10:00| 1460|十个|星期六|星期一|
| 2023年1月7日下午4:55:00| 2023年1月7日下午5:15:00| 5个|0|星期六|星期六|
| 2023年1月7日下午4:56:00| 2023年1月8日上午8:10:00|十四|0|星期六|星期天|
| 2023年1月8日上午8时00分|2023年1月9日上午8:10:00|五百五十|十个|星期天|星期一|
| 2023年1月8日12:00:00 PM| 2023年1月8日12:30:00 PM|三十|0|星期天|星期天|
1条答案
按热度按时间f0ofjuux1#
持续时间仅为8:00-17:00 M-F