Arrays 查询结果表中的VLookup列

Arrays 查询结果表中的VLookup列,arrays,google-sheets,google-sheets-formula,array-formulas,gs-vlookup,Arrays,Google Sheets,Google Sheets Formula,Array Formulas,Gs Vlookup,我正在为我的学校设计一个4-6年级的行为图表系统。我去年创建了一个不错的系统,但它严重依赖vlookups,更新速度非常慢,尤其是当输入更多数据时 今年,我尝试使用查询更新它,这要快得多,但我遇到了困难,我需要查询在单独的表中查找值 因此,我把它放在了列出被记过的学生的地方,同时也显示了他们在当前日期被记过的次数: =query('Form Responses 1'!A:D," select C,count(C) where A>= datetime '"&T

我正在为我的学校设计一个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'")
但我需要它返回如下内容:

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


更新2:
=ARRAYFORMULA({QUERY('formresponse1')!A:C,
“选择C,计数(C)
其中A>=日期时间“&”文本(今天(),“yyyy-mm-dd hh:mm:ss“&”
和一个=日期时间“&”文本(今天(),“yyyy-mm-dd hh:mm:ss“&”
和一个

共享一份更新的答题表副本…嘿,谢谢!是的,去年我就是这样解决的。我希望我能把它和查询结果结合起来,只是为了让它更干净,但我想这仍然是最好的选择。如果你不介意更长的公式,这也是可能的。答案更新更新2是完美的!非常感谢你。我需要了解更多关于arrayformula函数的信息!
=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))})