2015-10-24 73 views
0

我有一個包含學生評估列表的電子表格。它由四列:如何在表格中使用QUERY查找每個學生的最新成績?

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

,但它給了我這個錯誤:

Unable to parse query string for Function QUERY parameter 2: AGG_IN_ORDER_NOT_IN_SELECTMAX(C)

編輯: 我已經得到了一些偉大的答案,但我想我問不佳。我真正需要的是最近評估的得分。 JPV和pnuts的結果都給出了最近的評估日期。以下是實際文件的精簡版本:spreadsheet

Students片我需要以導致在若干從04基於Assessments片數據綠色細胞的公式。

這就是爲什麼在查詢中,我試圖選擇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") 
+1

您將不得不在select子句中使用max(它是一個AGGREGATE函數)。如果您需要幫助,請考慮一些示例數據。 – JPV

回答

2

我除了由PNUTS(1爲樣本數據)提供的精細的解決方案,在這裏是使用查詢(查詢的綠色細胞在this spreadsheet一些posibilities。

=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是標準的(變化範圍適合)。

+0

當然,比我的答案要好得多! – pnuts

+0

OK,所以我調整了其中一個公式並得到了= iferror(查詢(A3:D20,「選擇D其中A ='」&G20&''和B ='「&I20&''order by C desc limit 1」,0 ),「找不到數據」)'這給了我想要的分數。謝謝! – Danny

1

不使用查詢功能但似乎「查詢評估的電子表格返回最近的評估當前學生對當前標準「:

=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

相關問題