有人要求我为一些Google表单回复创建摘要,尽管我有一个可行的解决方案,但我不禁感到必须有一个更优雅的解决方案。
该表格收集与案件检查相关的数据-每个团队(有100多个团队)每个月都必须根据团队中有多少员工来检查一定数量的案件,并输入他们检查过的每个案件的结果在谷歌形式。进行此设置的团队希望我按团队,月份和表格的部分(初步问题,案例记录,结果等)来汇总数据。实时表单上有8个部分,涉及1-13个问题,全部包含“是/否/不适用/空白答案”。
(老实说,这不是我要进行所有设置的方法,但这是我无法控制的!)
因此,他们本质上是在寻找每月的实时摘要,其中团队名称在下方,团队名称在顶部,并且完成的百分比将与输入的条目保持一致(我们也可以使用importrange和query在需要时将相关部分提取到其他Google工作表摘要中。]
我目前得到的是这个:
=iferror(sum(countifs('Form Responses'!$B:$B,$A3,'Form
Responses'!$F:$F,"Yes",'Form Responses'!$E:$E,">="&$B$1,'Form
Responses'!$E:$E,"<"&edate($B$1,1)),countifs('Form
Responses'!$B:$B,$A3,'Form Responses'!$G:$G,"Yes",'Form
Responses'!$E:$E,">="&$B$1,'Form
Responses'!$E:$E,"<"&edate($B$1,1)),countifs('Form
Responses'!$B:$B,$A3,'Form Responses'!$H:$H,"Yes",'Form
Responses'!$E:$E,">="&$B$1,'Form
Responses'!$E:$E,"<"&edate($B$1,1)),countifs('Form
Responses'!$B:$B,$A3,'Form Responses'!$I:$I,"Yes",'Form
Responses'!$E:$E,">="&$B$1,'Form
Responses'!$E:$E,"<"&edate($B$1,1)),countifs('Form
Responses'!$B:$B,$A3,'Form Responses'!$J:$J,"Yes",'Form
Responses'!$E:$E,">="&$B$1,'Form
Responses'!$E:$E,"<"&edate($B$1,1)),countifs('Form
Responses'!$B:$B,$A3,'Form Responses'!$K:$K,"Yes",'Form
Responses'!$E:$E,">="&$B$1,'Form
Responses'!$E:$E,"<"&edate($B$1,1)))/(countifs('Form
Responses'!$B:$B,$A3,'Form Responses'!$E:$E,">="&$B$1,'Form
Responses'!$E:$E,"<"&edate($B$1,1))*6),0)
虽然有效,但感觉有点像是一种蛮力和无知的解决方案。我尝试过countifs和array,我看过枢轴,但是我无法获得节组,我玩过查询,但是我不知道如何要求它对多列中的所有Yes进行计数立刻。
是否有一个更优雅的解决方案,还是我必须辞职以制定下一个财政年度的摘要?
编辑:
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS94aWQwNC5wbmcifQ==” alt =“示例摘要标签的屏幕截图”>
您可以使用纯数组布尔乘法来实现计数,因为将true转换为1,将false转换为0:
=TO_PERCENT(ARRAYFORMULA(
SUM((f!F1:K="Yes")*(f!E1:E>=B1)*(f!E1:E<EDATE(B1,1))*(f!B:B=A3))/
SUM(6*(f!E1:E>=B1)*(f!E1:E<EDATE(B1,1))*(f!B:B=A3))
)
)
Form Responses
重命名为f
您提供的this sample sheet,您会注意到两个新标签页。 MK.Retab和MK.Summary。
在MK.Retab上,是A2中的一个公式,可以将所有调查数据“重新制表”为一种格式,该格式更易于分析。该选项卡可以“隐藏”在您的实际项目中。它将永远继续构建6列数据集。这将是一种“后端”工作表,仅用于向任何进一步的下游分析提供数据。
在MK.Summary是A1单元格中的一个公式,它查询MK.Retab中的该数据集,并以与您建议的格式相似的方式按组逐月显示Yes的百分比。我对它进行了编码,以在团队名称的右边,左边显示最近的一个月,并在右边显示历史数据。尽管人们经常习惯于看到时间从左到右,但我发现相反的方法很好,因为它使您不必横向滚动即可查看最新数据。如果要删除在查询字符串的“ order by”子句中找到的“ desc”,则更改非常简单。
我发现这种两步式的解决方案可以解决诸如您有用的问题,因为虽然汇总信息不完全符合您的要求,但是根据MK.Retab工作表中的数据构建公式和分析数据总是比较容易的。
关于MK.Retab中的公式,它基于我不久前提出的一种方法,该方法构造了一个大的vlookup,其中[搜索键]实际上是一个十进制数字序列,通过对数字进行计数而构建实际数据集中的行数乘以每行需要重复的数据列数。我前段时间制作了一个演示,如果您想更好地了解它的工作原理,很高兴与大家分享。
您说您的目标是了解公式,以便您可以根据需要修改它们。我不确定这样做会多么容易,但是我可以尽力回答您可能对方法或解决方案的一般疑问。
我能告诉您的是,有些公式比它们所需要的更为复杂,因为您只是使用了Q1 Q2 Q3等而不是实际的问题。如果您在某处(例如在其他选项卡上)列出了所问问题的列表,以及要调用/命名其对应的“部分”的内容,则该公式将大大简化。就目前而言,我必须在第1行中使用“注释”一词的外观来区分一个部分结束和另一部分开始的位置。不过,该决定的好处是,我编写的公式可以向右无限扩展。也就是说,如果您要在此处为样本集添加另外100列值的问题和答案,则该公式将能够处理该问题并将其分解,只要每个部分之间都有“ Comments”一词。
希望所有这些帮助。