【问题标题】:Break out certain time within a timeframe in excel在excel中的时间范围内打破特定时间
【发布时间】:2020-02-10 08:49:55
【问题描述】:

我正在为一些工人支付工资,他们的工资会根据他们一天中的工作时间而有所不同。例如。如果他们在 06:00-22:00 之间工作,他们获得 X,如果他们在 22:00-06:00 之间工作,他们获得 Y。从我的软件中提取的时间占工作的总时间,例如在 21:15-06:15 之间,即在此轮班期间员工将获得不同的报酬。我如何打破超时,以便我可以选择在不同的时间段之间支付不同的费用。我附上了一个 gsheet,其中包含一些示例数据和两列输出应该是:

https://docs.google.com/spreadsheets/d/1nRrxn6tTtiNXCrssMJwRyWL2jj5TXBFVmNhKPJ_BbVg/edit#gid=0

【问题讨论】:

  • 你遇到了什么问题,你在哪里卡住了?不包括您尝试过的或根本不尝试的内容很可能会让您得到downvoted。人们也不愿意关注共享电子表格的链接。最好在问题中包含对数据和预期输入/输出的准确描述。

标签: excel algorithm syntax


【解决方案1】:

这是基于overlap formula的相当通用的一个

工作时间为 06:00-22:00

=max(min(B4+(B4<A4),time(22,0,0))-max(A4,0.25),0)+max(min(B4+(B4<A4),1+TIME(22,0,0))-max(A4,1.25),0)

22:00-06:00 的工作时间

=max(min(B4,0.25)-max(A4,0),0)+max(min(B4+(B4<A4),1.25)-max(A4,time(22,0,0)),0)

【讨论】:

    【解决方案2】:

    要检测 6-22,请使用以下公式。 Check your sheet.

    =IF(AND(A4>TIME(5,30,),A4<TIME(6,30,0)),"X","")
    

    要检测 22-6,请使用以下公式

    =IF(AND(A4>TIME(21,30,),A4<TIME(22,30,0)),"Y","")
    

    然后根据需要更改XY。您还可以更改时间范围以检测开始时间。我使用1 hour 来检测移位。

    【讨论】:

    • 谢谢!我还可以确切地知道每个员工在轮班期间工作了多长时间,即不仅显示“x”或“y”。而是“X”时间期间的“5.6 小时”和“y”时间期间的“0.3 小时”。然后我可以将每个班次的这些时间相乘,因为工资取决于他们的工作时间。
    • 然后使用=IF(AND(A4&gt;TIME(5,30,),A4&lt;TIME(6,30,0)),TEXT(B4-A4,"h"),"")这个公式。
    • 谢谢。例如,在 D4 单元格中,员工应该得到 2 分钟的报酬,因为它显示为空。同样的情况,例如在“c10”单元格中,工作人员在正常时间(即 06:00-22:00 之间)应暂停 25 分钟,而“D10”单元格应仅达到 8 小时,而不是 8 小时 25 分钟,因为工作人员只工作 8 22:00-06:00 的小时和 06:00-22:00 的 25 分钟
    • 任何想法@Harun24HR
    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-01
    相关资源
    最近更新 更多