【问题标题】:Google Sheets Query for Maximum Date谷歌表格查询最大日期
【发布时间】:2020-02-18 23:11:15
【问题描述】:

我有一个表,我想完整地返回它,但按最大日期的列 H 过滤,因为行具有不同日期的重复帐号。

https://docs.google.com/spreadsheets/d/1x3hYy1igiL3_lqhFE3IwrQNFbOjdpXRtHLAbOXB2BE4/edit?usp=sharing

我现在正在使用这个查询,但显然我忽略了一些东西,有人可以帮忙吗?

=QUERY(B3:I12, "Select *, Max(H) WHERE B is not null Group by C")

【问题讨论】:

    标签: arrays sorting google-sheets unique google-sheets-query


    【解决方案1】:

    正确的语法应该是:

    =QUERY(B3:I12, 
     "select B,C,D,E,F,G,H,I,max(H)
      where B is not null
      group by B,C,D,E,F,G,H,I")
    

    但你可能需要这个:

    ={B3:I3; SORTN(SORT(B4:I, 7, 0), 99^99, 2, 2, 1)}
    

    【讨论】:

    • 非常感谢,我更喜欢查询,但我试过了,发现它没有过滤最大日期?
    • 你能解释一下这里发生了什么吗? ={B3:I3;排序(排序(B4:I, 7, 0), 99^99, 2, 2, 1)}
    • 当您在查询中使用“分组依据”参数时,您需要列出所有非聚合列。所以如果你想返回全范围 B:I 那么 B:I 也需要在 group by 下。 - 无论如何,这可能适用于某些情况,但不适用于您的场景。
    • 我们用 { } 数组括号构造表,我们在其中复制标题 B3:I3 并在其下构造过滤表。首先我们 SORT range B4:I 基于降序模式下的第 7 列(即 7 之后的 0)然后我们使用 SORTN 返回所有行(即 99^99)然后我们使用参数 2(这意味着“删除所有重复项” ) 在第 2 列(第 2 个 2)中以递增模式(最后一个值 1)
    • 成功了,谢谢,是我的数据引用不正确。
    【解决方案2】:

    最终公式为={DataTable;SORTN(SORT(Data,17,0),99^99,2,2,1)}

    DataTable 是标题,Data 是数据集。在 14,000 行中,这过滤到大约 7,000 行具有最高(最大)日期的唯一行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-10
      • 1970-01-01
      • 1970-01-01
      • 2018-01-28
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多