【问题标题】:How to use QUERY in Sheets to find most recent grade for each student?如何在表格中使用 QUERY 来查找每个学生的最新成绩?
【发布时间】:2015-11-07 06:26:58
【问题描述】:

我有一个包含学生评估列表的电子表格。它由四列组成:

   A           B         C         D
Student     Standard    Date     Score

在另一张纸上,我有一个表格,其中包含 A 列中的学生列表和第 1 行中的标准列表。

我想查询评估电子表格以返回当前学生在当前标准上的最新评估分数。目前我在单元格 K3 中有这个公式:

=Query(Assessments!A:D,"select D where(A="&$A3&" and B="&K$1&") order by max(C) limit 1")

但它给了我这个错误:

无法解析函数 QUERY 参数 2 的查询字符串:AGG_IN_ORDER_NOT_IN_SELECTMAX(C)

编辑: 我得到了一些很好的答案,但我想我问得不好。我真正需要的是最近评估的分数。 JPV 和 pnuts 的结果都给出了最近一次评估的日期。这是实际文件的精简版:spreadsheet

Students 工作表中,我需要绿色单元格中的一个公式,根据Assessments 工作表中的数据得出一个从04 的数字。

这就是为什么在查询中我试图选择 D,但按 max(C) 排序。

我调整了其中一个公式并得到:

=iferror(query(A3:D20, "Select D where A = '"&G20&"' and B = '"&I20&"' order by C desc limit 1",0), "no data found")

【问题讨论】:

  • 您必须在 select 子句中使用 max (这是一个 AGGREGATE 函数)。如果您需要帮助,请考虑一些示例数据。

标签: google-sheets


【解决方案1】:

除了 pnuts 提供的精细解决方案(样本数据 +1),这里有一些使用查询的可能性(检查this spreadsheet 中的绿色单元格。

=query(A2:D20, "select A, MAX(C) GROUP BY A  pivot B",1)

=query(A2:D20, "select A, B, MAX(C) GROUP BY A, B",1)

应根据标准创建一个表格,其中包含每个学生的最新日期。

如果您想使用单元格引用(其中一个单元格包含学生姓名,另一个单元格包含标准),请尝试:

=iferror(query(A3:D20, "Select A, B, C where A = '"&G20&"' and B = '"&I20&"' order by C desc limit 1",0), "no data found")

其中 G20 是学生姓名,I20 是标准(更改范围以适应)。

【讨论】:

  • 好的,所以我调整了其中一个公式并得到了=iferror(query(A3:D20, "Select D where A = '"&G20&"' and B = '"&I20&"' order by C desc limit 1",0), "no data found") 这给了我想要的分数。谢谢!
【解决方案2】:

不使用查询函数,但似乎“查询评估电子表格以返回当前学生在当前标准上的最新评估”:

=iferror(max(filter(Assessments!$A$1:$D$99,Assessments!$A$1:$A$99=$A3,Assessments!$B$1:$B$99=K$1)),"")  

以构造数据为例:

Student Standard    Date    Score
Bod5        C   2/2/2015    9
Bod6        B   1/1/2015    8
Bod7        C   7/7/2015    7
Bod8        A   9/9/2015    6
Bod1        B   3/3/2015    5
Bod2        C   4/4/2015    43
Bod3        B   6/6/2015    2
Bod4        C   1/1/2015    1
Bod1        A   1/1/2016    8
Bod1        A   2/2/2017    7
Bod1        A   1/1/2013    6
Bod1        A   1/1/2011    5
Bod9        A   9/9/2009    9
Bod9        B   1/1/2011    3
Bod9        C   3/3/2013    2
Bod9        A   10/10/2010  4
Bod9        B   11/1/2001   2
Bod9        C   4/4/2014    1  

输出:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 2013-02-10
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多