【问题标题】:Google Sheets: select top n daily values over entire yearGoogle表格:选择全年前n个每日值
【发布时间】:2021-07-01 00:15:00
【问题描述】:

我有一个 2 年期间 5 列的 google 表格原始数据集:

  1. Col A:年份 (2017...2018)
  2. Col B:月 (1...12)
  3. C 列:月份中的某天 (1...31)
  4. Col D:一天中的小时 (0...23)
  5. Col E:每小时用电量 (0.00-9999.99)

我想提取的是每天最高耗电量的前 3 小时(即 3 点 * 365 天/年 * 2 年 = 2190 行)。

我知道怎么做:

  • 获取单日消费前 3 小时:
    =QUERY(A1:E23, "select A,B,C,D,E order by E desc limit 3") for the first day
    =QUERY(A24:E47, "select A,B,C,D,E order by E desc limit 3") for the second day, etc.
  • 或获取每天的最高(单个)消费时间,但不知道发生在哪个时间:
    =QUERY(A1:E, "select A,B,C,max(E) group by A,B,C")

如何将两者结合起来,以便我仍然捕获所有信息(所有列)?

【问题讨论】:

  • 类似于this thread,但我的数据在谷歌表格中,而不是在 sql server 上。
  • 如果没有可使用的样本就很棘手。这是一张空白纸。你能在这里粘贴一个代表性的样本吗? docs.google.com/spreadsheets/d/…
  • 我想使用应用脚本会更容易。你对那个解决方案持开放态度吗?还请分享一张包含一些示例数据的表格。排除故障会更容易。

标签: google-sheets


【解决方案1】:

我在 this sheet 上名为 Data 的选项卡上制作了一些示例数据。

然后我将这个公式放在名为 MK.Help Top 3 的选项卡上的单元格 B1 中。

=FILTER(Data!A:E,COUNTIFS(Data!A:A,Data!A:A,Data!B:B,Data!B:B,Data!C:C,Data!C:C,Data!E:E,">="&Data!E:E)<=3)

Countifs() 对于创建排序非常有用。

【讨论】:

  • 谢谢你,马特,这正是我需要做的。我不知道 COUNTIFS() 可以这样使用 - 聪明的应用程序!
猜你喜欢
  • 2015-08-15
  • 2018-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多