查询结果 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))})
我正在 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))})