如何将 Google 表单的复选框网格响应输出到 Google 工作表作为单独的列(加上计算时区)?
How to output Tick Box Grid Responses from Google Forms to Google Sheets as Separate Columns (plus calculates Timezone)?
我需要一些东西,让我们的团队成员可以 select 他们在一周内的正常可用时间,以 1 小时为间隔,并且所有团队成员的结果都可以在电子表格中看到(如果他们填写它输出 2 次或更多次,它只会更新他们的最后一个响应)。从那里开始,select特定成员可以开会的会议时间应该很多更简单!
我最近想到 Google Forms 和 Google Sheets 可以成为这里最好的解决方案之一!但是我真的没有太多 Google Apps Script 的经验(看起来我需要做我想做的事),所以我有一些问题:
我有一个7 x 24 (7 Days of the Week by 24 1-Hour Intervals) Tick Box Grid (see linked image here). How can I set it up so it can output each Row+Column in its own separate Column in the output Google Sheet (see linked image here for my preferred output for a single Day)?
- 如果您想知道第 3 行发生了什么:我有 SUM 函数
=iferror(counta(L4:L62))
(其中 L 是列的字母)来计算每列中的“已检查的响应”轻松浏览每个小时块列的 Xs (Yes) 的数量。
如何自定义每个行+列检查响应,使其输出为一个简单的字母 X?
我还有一个 Dropdown 时区问题,它询问用户 select 他们的时区来自世界上 25 个可用时区之一.我希望他们对可用时间 Tick Box Grid 的回复进行修改以匹配他们在 GMT 中的回复。因此,例如,如果我 select 我的时区为 GMT -4
,并且在 复选框网格 我 select 12AM to 1AM
在 Sunday
,Google Sheet 将在 Saturday
?
上的 7PM to 8PM
下包含一个 X
我是不是对 Google 表格 + Google Sheets API 要求太多了?如果我是,也许我可以使用更好的云程序来处理这个问题?
所以@MattKing (Matthew King) 昨天与我密切合作,让我的 Tick Box Grid 按我的预期输出到 Google Sheets,以及处理 Timezone Conersion!您可以在此处查看测试结果:
https://docs.google.com/spreadsheets/d/1g5S5Nyfwr8eHWyn-UXVfdbVj8tdZeY-lU20C2VxuCZ8/edit
我应该首先提到表单输出 Sheet(称为 表单响应)不应被修改。也不需要 Google API 脚本来获取 Google Sheets 以按照我的意愿格式化表单结果。相反,带有公式的新 Sheet 是正确的选择(我可能会添加相当复杂的公式)!
- 输出 7 天 24 小时的 1 小时增量:
=ARRAYFORMULA(SEQUENCE(1,24*7,0)/24+1)
- 可以输出“Form Responses”(A列)中的每个Name,按字母顺序排列,如下:
=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,"ddd hh"),UTCData!$A:$A,0)),"X",))
- 如果我想在单独的 Sheet 中有单独的会议,并且我在 A1 中有会议名称(在表单中选择为复选框),那么我可以设置它,所以只有会议的名称勾选会议的人将分享如下:
=QUERY({'Form responses'!B2:C},"select Col1 where Col2 Contains'"&A1&"' order by Col1")
他还为我创建了 2 个处理更多公式转换的 Sheets:
- 扁平化形式 Sheet
- 扁平化公式:
=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 Sheet
- 名称&UTCDayTimeCombos:
=ARRAYFORMULA(QUERY(FLATTEN(IF('Flattened Form'!H2:N="",,'Flattened Form'!A2:A&TEXT('Flattened Form'!H2:N,"ddd hh"))),"where Col1<>''"))
- 在列 C2 - C8 中,列出了
Sunday
到 Saturday
如果您需要有人帮助您处理 Google Sheet 和表格,我非常推荐 Matt 的帮助!
我需要一些东西,让我们的团队成员可以 select 他们在一周内的正常可用时间,以 1 小时为间隔,并且所有团队成员的结果都可以在电子表格中看到(如果他们填写它输出 2 次或更多次,它只会更新他们的最后一个响应)。从那里开始,select特定成员可以开会的会议时间应该很多更简单!
我最近想到 Google Forms 和 Google Sheets 可以成为这里最好的解决方案之一!但是我真的没有太多 Google Apps Script 的经验(看起来我需要做我想做的事),所以我有一些问题:
我有一个7 x 24 (7 Days of the Week by 24 1-Hour Intervals) Tick Box Grid (see linked image here). How can I set it up so it can output each Row+Column in its own separate Column in the output Google Sheet (see linked image here for my preferred output for a single Day)?
- 如果您想知道第 3 行发生了什么:我有 SUM 函数
=iferror(counta(L4:L62))
(其中 L 是列的字母)来计算每列中的“已检查的响应”轻松浏览每个小时块列的 Xs (Yes) 的数量。
- 如果您想知道第 3 行发生了什么:我有 SUM 函数
如何自定义每个行+列检查响应,使其输出为一个简单的字母 X?
我还有一个 Dropdown 时区问题,它询问用户 select 他们的时区来自世界上 25 个可用时区之一.我希望他们对可用时间 Tick Box Grid 的回复进行修改以匹配他们在 GMT 中的回复。因此,例如,如果我 select 我的时区为
上的GMT -4
,并且在 复选框网格 我 select12AM to 1AM
在Sunday
,Google Sheet 将在Saturday
?7PM to 8PM
下包含一个 X
我是不是对 Google 表格 + Google Sheets API 要求太多了?如果我是,也许我可以使用更好的云程序来处理这个问题?
所以@MattKing (Matthew King) 昨天与我密切合作,让我的 Tick Box Grid 按我的预期输出到 Google Sheets,以及处理 Timezone Conersion!您可以在此处查看测试结果: https://docs.google.com/spreadsheets/d/1g5S5Nyfwr8eHWyn-UXVfdbVj8tdZeY-lU20C2VxuCZ8/edit
我应该首先提到表单输出 Sheet(称为 表单响应)不应被修改。也不需要 Google API 脚本来获取 Google Sheets 以按照我的意愿格式化表单结果。相反,带有公式的新 Sheet 是正确的选择(我可能会添加相当复杂的公式)!
- 输出 7 天 24 小时的 1 小时增量:
=ARRAYFORMULA(SEQUENCE(1,24*7,0)/24+1)
- 可以输出“Form Responses”(A列)中的每个Name,按字母顺序排列,如下:
=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,"ddd hh"),UTCData!$A:$A,0)),"X",))
- 如果我想在单独的 Sheet 中有单独的会议,并且我在 A1 中有会议名称(在表单中选择为复选框),那么我可以设置它,所以只有会议的名称勾选会议的人将分享如下:
=QUERY({'Form responses'!B2:C},"select Col1 where Col2 Contains'"&A1&"' order by Col1")
他还为我创建了 2 个处理更多公式转换的 Sheets:
- 扁平化形式 Sheet
- 扁平化公式:
=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 Sheet
- 名称&UTCDayTimeCombos:
=ARRAYFORMULA(QUERY(FLATTEN(IF('Flattened Form'!H2:N="",,'Flattened Form'!A2:A&TEXT('Flattened Form'!H2:N,"ddd hh"))),"where Col1<>''"))
- 在列 C2 - C8 中,列出了
Sunday
到Saturday
- 名称&UTCDayTimeCombos:
如果您需要有人帮助您处理 Google Sheet 和表格,我非常推荐 Matt 的帮助!