Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 如何将表单响应列表转换为汇总表?_Google Sheets - Fatal编程技术网

Google sheets 如何将表单响应列表转换为汇总表?

Google sheets 如何将表单响应列表转换为汇总表?,google-sheets,Google Sheets,我有一个谷歌表格,每个学生在每个工作日记录出勤率。结果进入电子表格,其中一列为学生姓名,一列为日期。 我希望能够回顾过去的14天,看看谁参加了,谁没有参加。将所有信息放在一张表格中,可以让我一目了然地查看所有信息并寻找趋势。然后,此表将转换为PDF格式并附在电子邮件中,但我认为我找到了解决方案。 我可以创建一个表框架,其中日期作为列,名称作为行,但我不知道如何评估学生是否有该特定日期的条目 这是一张样本表,其中列出了姓名、表单响应和表的框架(我从表中删除了尝试公式失败的内容)。 资料 结果表

我有一个谷歌表格,每个学生在每个工作日记录出勤率。结果进入电子表格,其中一列为学生姓名,一列为日期。
我希望能够回顾过去的14天,看看谁参加了,谁没有参加。将所有信息放在一张表格中,可以让我一目了然地查看所有信息并寻找趋势。然后,此表将转换为PDF格式并附在电子邮件中,但我认为我找到了解决方案。
我可以创建一个表框架,其中日期作为列,名称作为行,但我不知道如何评估学生是否有该特定日期的条目

这是一张样本表,其中列出了姓名、表单响应和表的框架(我从表中删除了尝试公式失败的内容)。

资料

结果表

我已将以下数组公式放入“两周”的单元格B2中:

它“运行”整个网格。要知道,数组公式的强大功能带来了一个警告:数组公式“拥有”它“运行”的范围。因此,您不能手动键入任何不同的内容。如果您这样做,您将破坏数组并在单元格B2中得到一个错误,除您键入的结果外,所有其他结果都被删除

此公式的第一部分检查a列中是否有名称。如果没有,则将为每个单元格分配null值。如果有,则If子句接管

A2:A&B1:O1在英语中的意思是“将A列中的每个姓名与顶部的每个日期进行匹配”。在幕后,这些组合姓名日期值临时填充整个姓名日期网格

然后,VLOOKUP查看每个临时值,并尝试将它们与“表单响应”表(即B2:B和C2:C)中的名称和日期组合进行匹配。由于这两个列被连接成每行一个值,因此只有一个列-因此在VLOOKUP中为1。FALSE在英语中的基本意思是“不要寻找近似值,只寻找精确匹配。”


包装VLOOKUP的IF子句检查name-date组合的VLOOKUP是否不是错误[即not(ISERROR…)]。这意味着找到了名称日期组合(即,学生在该日期在场),在这种情况下,网格中的单元格将被分配一个“Y”。如果VLOOKUP找不到name date组合,则该值设置为null。

我已将以下数组公式放入“两周”的单元格B2中:

它“运行”整个网格。要知道,数组公式的强大功能带来了一个警告:数组公式“拥有”它“运行”的范围。因此,您不能手动键入任何不同的内容。如果您这样做,您将破坏数组并在单元格B2中得到一个错误,除您键入的结果外,所有其他结果都被删除

此公式的第一部分检查a列中是否有名称。如果没有,则将为每个单元格分配null值。如果有,则If子句接管

A2:A&B1:O1在英语中的意思是“将A列中的每个姓名与顶部的每个日期进行匹配”。在幕后,这些组合姓名日期值临时填充整个姓名日期网格

然后,VLOOKUP查看每个临时值,并尝试将它们与“表单响应”表(即B2:B和C2:C)中的名称和日期组合进行匹配。由于这两个列被连接成每行一个值,因此只有一个列-因此在VLOOKUP中为1。FALSE在英语中的基本意思是“不要寻找近似值,只寻找精确匹配。”


包装VLOOKUP的IF子句检查name-date组合的VLOOKUP是否不是错误[即not(ISERROR…)]。这意味着找到了名称日期组合(即,学生在该日期在场),在这种情况下,网格中的单元格将被分配一个“Y”。如果VLOOKUP找不到名称日期组合,则该值将设置为null。

请共享指向此示例工作表的链接,确保将共享权限设置为“具有链接的任何人都可以编辑”。这是与您共享解决方案的最直接、最简单的方法。@ErikTyler-感谢您的评论。将其添加到问题中。请共享指向此示例工作表的链接,确保将共享权限设置为“任何具有该链接的人都可以编辑”。这是与您共享解决方案的最直接、最简单的方式。@ErikTyler-感谢您的评论。将其添加到问题中。天哪,埃里克!答案和措辞极其清晰的解释!我现在在手机上,但我会坐下来仔细研究一下,因为我有很多东西要从你的答案中学到。谢谢。如果这解决了您发布的问题,请将答案标记为“最佳答案”。这向其他撰稿人/专家表明,此问题现已解决。谢谢,天哪,埃里克!答案和措辞极其清晰的解释!我现在在手机上,但我会坐下来仔细研究一下,因为我有很多东西要从你的答案中学到。谢谢。如果这解决了您发布的问题,请将答案标记为“最佳答案”。这向其他撰稿人/专家表明,此问题现已解决。谢谢
=ArrayFormula(IF(A2:A="","",IF(NOT(ISERROR(VLOOKUP(A2:A&B1:O1,'Form Responses'!B2:B&'Form Responses'!C2:C,1,FALSE))),"Y","")))