查询结果 Google 工作表中的 VLookup 列

VLookup column within Query Result Google Sheets

我正在 Google 4-6 年级工作表中为我的学校开发行为图表系统。我去年创建了一个不错的系统,但它严重依赖 vlookups,更新速度非常慢,尤其是在输入更多数据时。

今年,我尝试使用查询来更新它,这要快得多,但我 运行 遇到了困难,我需要查询在单独的 table.

所以,我把它放到了列出记过的学生的位置,还显示了他们在当前日期记过的次数:

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

但现在我需要第三列,其结果基于计数。我们在学校的行为系统是这样的,如果 child 得到 1 分,就是警告,2 分就是课间休息等。每个年级都有不同的后果,所以我需要它来查找数据来自单独的 table 并显示 child 将收到什么结果。通常我会通过使用 vlookup 或 choose 函数来解决这个问题,但我不知道如何在查询中实现它,或者我是否需要使用嵌套查询?

所以,现在我的结果是这样的:

Student Name | Number of Marks
Abby Alpha | 1
Benny Beta | 2
Gort Gamma | 27

但我需要它 return 类似于:

Student Name | Number of Marks | Consequence
Abby Alpha | 1  | Warning
Benny Beta | 2  | Walking at Recess
Gort Gamma | 7 | Office

如果标记数量超过 table,它应该 return 最大可能的结果。

如有任何建议,我将不胜感激!我只是一名小学老师,所以虽然弄清楚它很有趣,但它有点超出了我的舒适范围。谢谢!

尝试:

=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('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))})