如何将勾选框网格响应从谷歌表单输出到谷歌表单作为单独的列(加上计算时区)



我需要一些东西,让我们的团队成员可以在一周内以1小时为间隔选择他们的常规可用时间,并且所有团队成员的结果都可以在电子表格中看到(如果他们填写了2次或更多次,它只会更新他们的最后一次响应)。从那里开始,选择特定成员可以会面的会面时间应该会简单得多!

最近我突然想到谷歌表单Google表单

  1. 我有一个7 x 24(每周7天,间隔24个1小时)勾选框网格(请参阅此处的链接图像)。我如何设置它,以便它可以在输出谷歌工作表中的单独列中输出每一行+每一列(请参阅此处的链接图像,了解我一天的首选输出)?

    • 如果你想知道第三行发生了什么:我有SUM函数=iferror(counta(L4:L62))(其中L是列的字母)来合计";Checked Responses";在每个列中,以方便查看每个小时块列的Xs()的数量
  2. 如何自定义每个行+列检查响应,使其输出为一个简单的字母X

  3. 我还有一个下拉时区问题,它要求用户从世界上25个可用时区中的1个时区中选择他们的时区。我希望他们对可用时间勾选框网格的响应被修改为与他们在GMT的响应相匹配。因此,例如,如果我将时区选择为GMT -4,并且在框网格,我在Sunday上选择12AM to 1AM,则谷歌工作表将在Saturday上的7PM to 8PM下包括X

我是不是对Google Forms+Google Sheets API要求太多了?如果我是,也许有一个更好的云程序可以用来处理这个问题?

所以@MattKing(Matthew King)昨天与我密切合作,让我的勾选框网格按我的意愿输出到谷歌表单,并处理时区Conersion!您可以在此处查看测试结果:https://docs.google.com/spreadsheets/d/1g5S5Nyfwr8eHWyn-UXVfdbVj8tdZeY-lU20C2VxuCZ8/edit

我首先要提到的是,不应修改表单输出表(称为表单响应)。此外,不需要Google API脚本就可以让Google Sheets按照我的意愿格式化表单结果。相反,新的带有公式的Sheets(我可能会添加相当复杂的公式)是可行的!

  • 要连续7天输出24小时的1小时增量:=ARRAYFORMULA(SEQUENCE(1,24*7,0)/24+1)
  • "中的每个名称;Form Responses";(在A列中)可以按字母顺序输出,如下所示:=QUERY({'Form responses'!B2:C},"select Col1 where Col2 is not null order by Col1")
  • 可用小时数在";Form Responses";(在E列到AB列中)可以如下输出(其中每列是7天中的1天中的24小时中的1小时):=IF($A4="",,IF(ISNUMBER(MATCH($A4&TEXT(B$2,"ddd hh"),UTCData!$A:$A,0)),"X",))
  • 如果我想在单独的工作表中有单独的会议,并且我在A1中有会议名称(在表格中选择为复选框),那么我可以设置它,以便仅共享检查该会议的人员的姓名,如下所示:=QUERY({'Form responses'!B2:C},"select Col1 where Col2 Contains'"&A1&"' order by Col1")

他还为我创建了2张处理更多公式转换的表格:

  • 扁平形式板材
    • 压扁公式:=ARRAYFORMULA(QUERY(SPLIT(FLATTEN('Form responses'!B2:B&"|"&'Form responses'!C2:C&"|"&'Form responses'!D2:D&"|"&MID('Form responses'!E1:AB1,64,20)&"|"&'Form responses'!E2:AB),"|",0,0),"where Col5<>''"))
    • 提取次数:=ARRAYFORMULA(IF(D2:D="",,SPLIT(MID(D2:D,2,LEN(D2:D)-2)," to ",0)))
    • UTC转换:=ARRAYFORMULA(IFERROR(MOD(MATCH(SPLIT(E2:E,", ",0),TITLE!C10:I10,0),7)+F2:F+C2:C/24))
  • UTCData表格
    • 名称&UTC日期时间组合:=ARRAYFORMULA(QUERY(FLATTEN(IF('Flattened Form'!H2:N="",,'Flattened Form'!A2:A&TEXT('Flattened Form'!H2:N,"ddd hh"))),"where Col1<>''"))
    • 在列C2-C8中,它列出了SundaySaturday

如果你需要有人帮你处理谷歌表单,我再也不推荐马特的帮助了!

最新更新