如何在表格中使用QUERY查找每个学生的最新成绩?

时间:2015-10-24 01:26:43

标签: google-sheets

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

   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表单中,我需要绿色单元格中的公式,根据{{1}中的数据生成从04的数字表。

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

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

Assessments

2 个答案:

答案 0 :(得分:2)

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

=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")

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

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

package compguse;
import java.util.*;

public class Compguse {


public static void main(String[] args) {
    Scanner scan = new Scanner (System.in);
    String a;
    String b;      
    String c;
    String ans;
    String d;        
    int input =1;
    System.out.println("do u have your number?");
    a = scan.nextLine();
    while (a.equalsIgnoreCase("yes"))
    {
    int ran = (int) Math.floor(Math.random()*100)+1;
        System.out.println(" is" +ran +" your num?");  
        a = scan.nextLine();
        if(a.equalsIgnoreCase("no"))
        {
            System.out.println("Was i too high or low?");
            b = scan.nextLine();
            if(b.equalsIgnoreCase("high"))
            {
            int ran1 = (int) Math.floor(Math.random() < (int) ran);

            }    
        }       
    }
}

其中G20是学生姓名,I20是标准(适合的变化范围)。

答案 1 :(得分:1)

不使用查询功能,但似乎查询评估电子表格,以便根据当前标准返回当前学生的最新评估&#34;:

=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  

输出:

SO33313591 example