Google sheets 查找多个重叠时间的总持续时间
我有一份员工时间表的日期和时间列表。时间从F列开始,在G列结束。有时项目的时间会重叠。该员工不会因为重叠的项目获得报酬,但我们需要单独跟踪每个项目。我希望能够查看E、F和G列,找到任何重叠的项目,并返回单个时间条目。在下面的示例中,请注意第1行没有与其他行重叠,但第2-6行中有一系列重叠条目。它们不一定都重叠,但更像一条“链”。我想写一个公式(而不是脚本)来解决这个问题Google sheets 查找多个重叠时间的总持续时间,google-sheets,formula,overlap,Google Sheets,Formula,Overlap,我有一份员工时间表的日期和时间列表。时间从F列开始,在G列结束。有时项目的时间会重叠。该员工不会因为重叠的项目获得报酬,但我们需要单独跟踪每个项目。我希望能够查看E、F和G列,找到任何重叠的项目,并返回单个时间条目。在下面的示例中,请注意第1行没有与其他行重叠,但第2-6行中有一系列重叠条目。它们不一定都重叠,但更像一条“链”。我想写一个公式(而不是脚本)来解决这个问题 +---+------------+------------+----------+ | | E |
+---+------------+------------+----------+
| | E | F | G |
+---+------------+------------+----------+
| 1 | 10/11/2017 | 12:30 PM | 1:00 PM |
| 2 | 10/11/2017 | 1:00 PM | 3:00 PM |
| 3 | 10/11/2017 | 2:15 PM | 6:45 PM |
| 4 | 10/11/2017 | 2:30 PM | 3:00 PM |
| 5 | 10/11/2017 | 2:15 PM | 6:45 PM |
| 6 | 10/11/2017 | 3:00 PM | 6:45 PM |
+---+------------+------------+----------+
我希望评估这些列,并在一系列重叠的最后一行返回每个“链”的总持续时间。在我下面的例子中,我们将把它放在H列中。它为从第2行开始到第6行结束的系列找到5.75小时(下午1点到下午6:45)
我尝试过写查询,但发现自己又回到了起点。如果有人有建议,我很想知道!先谢谢你
尼尔我的解决方案
要解决此问题,我需要另外两列:
第一步。返回“重叠”或“确定”
当一端在另一端内时,两条线重叠:
我做了一个查询
公式来检查:
=if(查询(数组公式({value(E1:E+F1:F),value(E1:E+G1:G)}),
“选择计数(第1列),其中
Col1<“&值(G1+E1-1/10^4)&”
和Col2>“&value(F1+E1+1/10^4)和“标签计数(Col1)””,0)>1,“重叠”,“确定”)
向下拖动公式。结果是列:
ok
overlap
overlap
overlap
overlap
ok
ok
overlap
overlap
overlap
overlap
ok
1
2
2
2
2
2
3
4
4
4
4
4
在公式中:
用于比较数字。必须比较每个参数:日期+时间值
- 使用
和-1/10^4
是因为+1/10^4
查询中的不精确性
I1
中输入1。在单元格I2
中输入公式:
=if(或(和(H1=H2,H2=“重叠”)和(H2=“确定”,H1=“重叠”)),I1,I1+1)
向下拖动公式。结果是列:
ok
overlap
overlap
overlap
overlap
ok
ok
overlap
overlap
overlap
overlap
ok
1
2
2
2
2
2
3
4
4
4
4
4
步骤三获取持续时间
在J4中,粘贴并复制公式:
=如果(H1=“确定”,
舍入(查询(数组形式({value(E:E+F:F)、value(E:E+G:G)、I:I}),
“选择最大值(Col2)-最小值(Col1),其中Col3=“&I1
&“标签最大(Col2)-最小(Col1)”)*24,2),”)
查询按组获取最大持续时间,如步骤2中所示
- 由于
查询