首页 > 解决方案 > Google 表格:以 HH:MM 格式查询数据

问题描述

我应该使用哪个查询来计算按班次分组的总班次时间总任务时间

Google 表格查询不允许我对 Col2 或 Col3 求和,因为它已格式化为 HH:MM(我无法将其更改为数字,因为源数据是 HH:MM)。

在此处输入图像描述

标签: google-sheetsstring-formattinggoogle-sheets-formula

解决方案


这是解决方案的基础,但我必须手动将查询列格式化为时间,如果班次在午夜分开,您必须将 1 添加到 C 列:

=ArrayFormula(query({A2:A,to_pure_number(B2:B),to_pure_number(C2:C)},"select Col1,max(Col3)-min(Col2),sum(Col3)-Sum(Col2) where Col1 is not null
 group by Col1 label Col1 'Shift',max(Col3)-min(Col2) 'Total',sum(Col3)-Sum(Col2) 'Task' "))

在此处输入图像描述

这是处理从午夜到第二天的班次的建议。有必要将两个时间列都加 1 以获得正确的结果。这假设在每个班次中以正确的顺序输入任务,或者至少每个班次首先输入第一个任务:

=ArrayFormula(query({A2:A,to_pure_number(B2:B+(B2:B<vlookup(A2:A,{A2:A,B2:B},2,false))),
to_pure_number(C2:C+(C2:C<vlookup(A2:A,{A2:A,B2:B},2,false)))},"select Col1,max(Col3)-min(Col2),sum(Col3)-Sum(Col2) where Col1 is not null
 group by Col1 label Col1 'Shift',max(Col3)-min(Col2) 'Total',sum(Col3)-Sum(Col2) 'Task' "))

在此处输入图像描述


推荐阅读