使用 MOD 和时间值来确定过渡午夜的时差
Using MOD with Time values to determine time differences that transition midnight
我创建了一个 Excel 电子表格,其中包含轮班期间的总时间,即 8:30-17:30。
然后我创建了这个公式
=(MOD([@[Supposed Shift End]]-[@[Supposed Shift Start]],1))*24
使用格式单元格 -> 数字小数点后 2 位。这给了我 [Total Supposed Shift Hours]
给我需要涵盖的班次持续时间。
现在我还为轮班涵盖的实际时间创建了另一个列
=(MOD([@[Actual Time End]]-[@[Actual Time Start]],1))*24
这给了我 [总实际时间]
对于实际时间结束和实际时间开始当员工没有出现时,我们为具有相同单元格格式数字的两个单元格输入 0 -> 2 位小数
问题:
这是我写的用来减去这 2 列的公式
=(MOD([@[Total Supposed Shift Hours]]-[@[Total Actual Time Hours]],1))*24
为什么当我减去 [总假定班次小时数] 9.00 - [总实际时间小时数] 0.00 = 24.00 ???
9 - 0 = 9 而不是 24.... 叹息
如果使用MOD公式,时间从前一天晚上21:00变为8:00,公式会受到影响吗?
示例数据(按要求)
注意:命名法与上述描述不同:Open
= Supposed
和 Covered
= Actual
Service Date
Open Post Start
Open Post End
Total Hrs Missing
Covered Post Start
Covered Post End
Total Hrs Covered
Category
Hours Not Covered
02/06/2021
16:00
00:00
8
16:00
03:00
11
A
0
04/06/2021
16:00
00:00
8
00:00
00:00
0
A
0
10/21/2021
10:30
00:00
13.5
18:00
19:30
1.5
B
0
初始答案
首先是一个小问题:您不需要将 MOD
函数括在方括号中。由于该函数已经产生 *24
的结果。因此以下工作正常:
=MOD([@[Supposed Time End]]-[@[Supposed Time Start]],1)*24
关于您的问题:您的 non-working 公式看起来好像只是想要 Supposed
和 Actual
之间的差异(以小时为单位)。如果是这样,只需这样做:
=[@[Total Supposed Shift Hours]]-[@[Total Actual Shift Hours]]
编辑:使用(现已发布)table,我构建了我认为你正在尝试做的事情
参考到下面的 示例结果 图片。
E 列中的公式:=MOD([@[Open Post End]]-[@[Open Post Start]],1)*24
H 列中的公式:=MOD([@[Covered Post End]]-[@[Covered Post Start]],1)*24
J列中的公式:=[@[Total Hours Missing]]-[@[Total Hours Covered]]
样本结果:
现在:如果 J 列(即对您的核心问题的回答)不是您想要的结果,您能告诉我您期望的结果是什么吗(使用每行的实际预期值)。
备注:
- 您的 table 列 header
Total Hours Missing
有点令人困惑。
但是,我读到 Post Duration
(Duration of Shift
用你原来的说法)。
- 如果我理解正确的话,“工作中的扳手”是 @P.b 删除
MOD
的建议。如上所示还原 E
和 H
列中的公式。
我创建了一个 Excel 电子表格,其中包含轮班期间的总时间,即 8:30-17:30。
然后我创建了这个公式
=(MOD([@[Supposed Shift End]]-[@[Supposed Shift Start]],1))*24
使用格式单元格 -> 数字小数点后 2 位。这给了我 [Total Supposed Shift Hours]
给我需要涵盖的班次持续时间。
现在我还为轮班涵盖的实际时间创建了另一个列
=(MOD([@[Actual Time End]]-[@[Actual Time Start]],1))*24
这给了我 [总实际时间]
对于实际时间结束和实际时间开始当员工没有出现时,我们为具有相同单元格格式数字的两个单元格输入 0 -> 2 位小数
问题:
这是我写的用来减去这 2 列的公式
=(MOD([@[Total Supposed Shift Hours]]-[@[Total Actual Time Hours]],1))*24
为什么当我减去 [总假定班次小时数] 9.00 - [总实际时间小时数] 0.00 = 24.00 ???
9 - 0 = 9 而不是 24.... 叹息
如果使用MOD公式,时间从前一天晚上21:00变为8:00,公式会受到影响吗?
示例数据(按要求)
注意:命名法与上述描述不同:Open
= Supposed
和 Covered
= Actual
Service Date | Open Post Start | Open Post End | Total Hrs Missing | Covered Post Start | Covered Post End | Total Hrs Covered | Category | Hours Not Covered |
---|---|---|---|---|---|---|---|---|
02/06/2021 | 16:00 | 00:00 | 8 | 16:00 | 03:00 | 11 | A | 0 |
04/06/2021 | 16:00 | 00:00 | 8 | 00:00 | 00:00 | 0 | A | 0 |
10/21/2021 | 10:30 | 00:00 | 13.5 | 18:00 | 19:30 | 1.5 | B | 0 |
初始答案
首先是一个小问题:您不需要将 MOD
函数括在方括号中。由于该函数已经产生 *24
的结果。因此以下工作正常:
=MOD([@[Supposed Time End]]-[@[Supposed Time Start]],1)*24
关于您的问题:您的 non-working 公式看起来好像只是想要 Supposed
和 Actual
之间的差异(以小时为单位)。如果是这样,只需这样做:
=[@[Total Supposed Shift Hours]]-[@[Total Actual Shift Hours]]
编辑:使用(现已发布)table,我构建了我认为你正在尝试做的事情
参考到下面的 示例结果 图片。
E 列中的公式:=MOD([@[Open Post End]]-[@[Open Post Start]],1)*24
H 列中的公式:=MOD([@[Covered Post End]]-[@[Covered Post Start]],1)*24
J列中的公式:=[@[Total Hours Missing]]-[@[Total Hours Covered]]
样本结果:
现在:如果 J 列(即对您的核心问题的回答)不是您想要的结果,您能告诉我您期望的结果是什么吗(使用每行的实际预期值)。
备注:
- 您的 table 列 header
Total Hours Missing
有点令人困惑。
但是,我读到Post Duration
(Duration of Shift
用你原来的说法)。 - 如果我理解正确的话,“工作中的扳手”是 @P.b 删除
MOD
的建议。如上所示还原E
和H
列中的公式。