如何在 Google 表格中进行基本的日期分组操作?

问题描述 投票:0回答:1

我的数据看起来像这样(示例):

A 栏 B 栏 C 座
值1 值2 1/4/24 下午 4:15
值3 价值4 1/4/24 下午6:30
值5 值6 1/5/24 2:30 下午
价值7 价值8 1/5/24 下午3:30
价值9 值10 1/5/24 5:30 下午

我正在尝试做一些在正确的 SQL 中应该非常简单的事情:“对于表中的每个 date

Col C
,而不是 date/time,查找之间经过的小时数,包括小数小时数该日期最早和最晚的事件。”
Col A
Col B
中的值不相关。

最终结果是我希望它回来,或者类似的东西(在这里评论只是为了可读性):

日期 时间 评论
1/4/24 2.25 下午 6:30 - 下午 4:15
1/5/24 3 5:30pm - 2:30pm,因为 3:30pm 不是最短或最长

在 SQL 中,我猜查询会像这样,带有一些伪代码:

SELECT
   number_of_hours(MAX(col_c) - MIN(col_c))
FROM
   my_table
GROUP BY
   DATE(col_c)

我不知道如何在 Google 表格中执行此操作。鉴于我认为这个问题更像是数据库问题,而不是电子表格中的问题,我尝试了

QUERY
函数,但我所做的一切最终都以无效查询告终。我认为 Google 表格不允许您提取日期/时间的日期部分并将其聚合。

我尝试过但失败的事情:

  • =query(A:C, "SELECT A, B, C, " & TEXT(C, "yyyy-mm-dd"), 1)
    :公式解析错误
  • =query(A:C, "SELECT A, B, C, " & DATE(C), 1)
    :公式解析错误
  • =query(A:C, "SELECT C, COUNT(B) GROUP BY " & DATE(C), 1)
    :公式解析错误
  • =query(A:C, "SELECT C, COUNT(B) GROUP BY DATE(C)", 1)
    :无法解析函数 QUERY 参数 2 的查询字符串:PARSE_ERROR:在第 1 行第 33 列遇到“”(“”(“”
  • =query(A:C, "SELECT C, DATE '" & YEAR(C) & "-" & (MONTH(C) + 1) & "-" & DAY(C) & "'", 1)
    :公式解析错误
  • =query(A:C, "SELECT C, " & DATEVALUE(YEAR(C) & "-" & (MONTH(C) + 1) & "-" & DAY(C)), 1)
    :公式解析错误
  • =query(A:C, "SELECT C, DATE(YEAR(C), MONTH(C), DAY(C))", 1)
    :无法解析函数 QUERY 参数 2 的查询字符串:PARSE_ERROR:在第 1 行第 15 列遇到“”(“”(“”

那么我该如何去做呢?

google-sheets google-sheets-formula
1个回答
0
投票

您可以使用:

=SORT(LET(
   c,TOCOL(C2:C,1),
   d,TEXT(c,"m/d/yy"),
   MAP(UNIQUE(d),LAMBDA(u,LET(
    f,FILTER(c,d=u)*24,
    {u,MAX(f)-MIN(f)}))))) 
© www.soinside.com 2019 - 2024. All rights reserved.