我正在使用Google表格4-6年级为我的学校开发行为图表系统。我去年创建了一个不错的系统,但是它严重依赖于vlookups,它的更新确实很慢,尤其是在输入更多数据时。
今年,我正在尝试使用查询来更新它,这要快得多,但是遇到麻烦,需要查询在单独的表中查找值。
因此,我将其列出了收到过记过的学生的地方,并显示了当前日期有多少过记的学生的人数:
=query('Form Responses 1'!A:D,"
select C,count(C)
where A>= datetime '"&TEXT(today(),"yyyy-mm-dd HH:mm:ss")&"' and
A< datetime '"&TEXT(today()+time(12,0,0),"yyyy-mm-dd HH:mm:ss")&"' and D != '6 - Late Assignments (WE)'
group by C order by count(C) desc
label C 'Student Name', count(C) 'Number of Marks'")
但是现在我需要第三列,其结果基于计数。我们在学校的行为系统是这样的:如果孩子获得1分,警告,2分作为休假惩罚等。每个年级都有不同的结果集,因此我需要它从单独的表中查找数据并显示孩子要接受的后果。通常,我可以通过使用vlookup或select函数来解决此问题,但是我不知道如何在查询中实现它,或者是否需要使用嵌套查询?
因此,现在我的结果如下所示:
Student Name | Number of Marks
Abby Alpha | 1
Benny Beta | 2
Gort Gamma | 27
但我需要它返回类似:
Student Name | Number of Marks | Consequence
Abby Alpha | 1 | Warning
Benny Beta | 2 | Walking at Recess
Gort Gamma | 7 | Office
其中结果是根据在简单表中查找第二列的结果确定的,并且如果“标记数”超过表中的最大数目,则它应返回最大可能结果。
我将不胜感激任何建议!我只是一名小学老师,所以找出它虽然很有趣,但是有点超出我的舒适范围。谢谢!
尝试:
=ARRAYFORMULA(IFNA(VLOOKUP(B2:B, E:F, 2, 0)))
粘贴在C3中:
=ARRAYFORMULA(IFNA(VLOOKUP(B3:B, Sheet3!A:B, 2, 0)))
粘贴到F3中:
=ARRAYFORMULA(IFNA(VLOOKUP(E3:E, Sheet3!A:B, 2, 0)))
=ARRAYFORMULA({QUERY('Form Responses 1'!A:C,
"select C,count(C)
where A >= datetime '"&TEXT(TODAY(), "yyyy-mm-dd hh:mm:ss")&"'
and A < datetime '"&TEXT(TODAY()+TIME(12, 0, 0), "yyyy-mm-dd hh:mm:ss")&"'
group by C
label count(C)'Number of Marks'"), IFNA(VLOOKUP(QUERY('Form Responses 1'!A:C,
"select count(C)
where A >= datetime '"&TEXT(TODAY(), "yyyy-mm-dd hh:mm:ss")&"'
and A < datetime '"&TEXT(TODAY()+TIME(12, 0, 0), "yyyy-mm-dd hh:mm:ss")&"'
group by C
label count(C)'Number of Marks'"),
{"Number of Marks", "Consequence"; Sheet3!A:B}, 2, 0))})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句