Google sheets 如何使用查询表查找每个学生的最新成绩?

Google sheets 如何使用查询表查找每个学生的最新成绩?,google-sheets,Google Sheets,我有一个电子表格,里面有学生的评估清单。它由四列组成: A B C D Student Standard Date Score 在另一张纸上,我有一张表,a列有学生名单,第1行有标准名单 我想查询评估电子表格,以返回当前学生在当前标准下的最新评估分数。目前我在单元格K3中有这个公式: =Query(Assessments!A:D,"select D where(A="&$A3&" and B="&a

我有一个电子表格,里面有学生的评估清单。它由四列组成:

   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")
但它给了我一个错误:

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

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

学生
表中,我需要一个绿色单元格中的公式,根据
评估
表中的数据得出一个从
0
4
的数字

这就是为什么在查询中我试图选择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")
不使用查询功能,但似乎“查询评估电子表格以返回当前学生在当前标准下的最新评估”:

构造数据作为示例:

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  
输出:

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

构造数据作为示例:

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  
输出:

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

构造数据作为示例:

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  
输出:

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

构造数据作为示例:

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  
输出:


除了pnuts提供的精细解决方案(样本数据为+1),以下是使用查询的一些可能性(检查中的绿色单元格)

应根据标准为每个学生创建一个包含最新日期的表

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


其中G20为学生姓名,I20为标准(根据需要更改范围)。

I除了pnuts提供的精细解决方案(+1为样本数据),以下是使用查询的一些可能性(检查中的绿色单元格)

应根据标准为每个学生创建一个包含最新日期的表

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


其中G20为学生姓名,I20为标准(根据需要更改范围)。

I除了pnuts提供的精细解决方案(+1为样本数据),以下是使用查询的一些可能性(检查中的绿色单元格)

应根据标准为每个学生创建一个包含最新日期的表

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


其中G20为学生姓名,I20为标准(根据需要更改范围)。

I除了pnuts提供的精细解决方案(+1为样本数据),以下是使用查询的一些可能性(检查中的绿色单元格)

应根据标准为每个学生创建一个包含最新日期的表

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


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

在select子句中必须使用max(这是聚合函数)。如果需要帮助,请考虑一些示例数据。您必须使用max(这是聚合函数)。在SELECT子句中。如果需要帮助,请考虑一些示例数据。在SELECT子句中,必须使用max(这是聚合函数)。如果需要帮助,请考虑一些示例数据。您必须使用max(这是聚合函数)。在SELECT子句中。如果需要帮助,请考虑一些示例DATA.OK,所以我修改了其中的一个公式,得到了<代码> = IFError(查询(A3:D20),选择D,其中A=‘G&20’和‘B=’和‘I20&’’顺序由C DESC限制1,0),“没有找到数据”。这给了我想要的分数。谢谢!好的,所以我调整了其中一个公式,得到了
=iferror(查询(A3:D20,“选择D,其中A=”&G20&“,B=”&I20&“'order by C desc limit 1”,0),“没有找到数据”)
这给了我想要的分数。谢谢!好的,所以我调整了其中一个公式,得到了
=iferror(查询)(A3:D20,“选择D,其中A=”&G20&“和B=”&I20&“'order by C desc limit 1”,0),“未找到数据”)
这给了我想要的分数。谢谢!好吧,所以我调整了其中一个公式,得到了
=iferror(查询(A3:D20,“选择D,其中A=”&G20&“和B=”&I20&“order by C desc limit 1”,0),“未找到数据”)
这给了我想要的分数。谢谢!
=iferror(query(A3:D20, "Select A, B, C where A = '"&G20&"' and B = '"&I20&"' order by C desc limit 1",0), "no data found")