【问题标题】:Google Sheets: Query data with HH:MM formatGoogle 表格:以 HH:MM 格式查询数据
【发布时间】:2020-04-12 16:08:18
【问题描述】:

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

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

【问题讨论】:

  • 我们可以假设没有班次在午夜之前开始并在之后结束吗?
  • 有时会。我正在考虑添加 1 (+24:00h) 如果它发生

标签: google-sheets string-formatting google-sheets-formula


【解决方案1】:

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

=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' "))

【讨论】:

  • 很好!我会尝试考虑一种添加拆分班次的方法 - 这并不完全简单。
  • i.stack.imgur.com/UJc8K.png 是否可以在同一查询中添加特定任务时间(任务 B 时间)并将所有任务文本合并到同一列(已完成任务)。我是用谷歌表格公式做的,但它的负担很重
  • 我认为任务时间将是一个单独的查询,因为您要么在 Col4='B' 的地方进行选择,要么在轮班和任务中进行分组。我认为每个班次的任务只是一个普通的下拉公式(也许将其作为一个单独的问题发布,看看是否有其他人对此有一个好主意?)。
【解决方案2】:

我认为您应该更改源数据,以便将班次模式格式化为包括日期和时间。然后按照这个过程做正确的算术:

https://www.ablebits.com/office-addins-blog/2017/10/19/calculating-time-google-sheets/

【讨论】:

    猜你喜欢
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多