You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets从表单响应表提取并汇总用户签到签退数据

Google Sheets 签到签退数据汇总方案

前提假设

  • 表单响应工作表命名为表单响应,包含核心列:用户ID(存储用户唯一标识)、操作类型(标记「签到」/「签退」)、时间记录(对应签到/签退的具体时间)
  • 汇总工作表命名为考勤汇总,列结构:用户ID、签到时间、签退时间

1. 提取单个用户的签到时间

在考勤汇总的签到时间列(如C2单元格)输入以下公式,匹配当前用户的签到记录:

=IFERROR(VLOOKUP(A2, '表单响应'!A:C, 3, FALSE), "未签到")

说明:A2为当前行的用户ID,表单响应'!A:C是包含用户ID、操作类型、时间记录的区域;如果用户无签到记录,返回「未签到」

如果需要取用户最新的签到记录(同一天多次签到的情况),改用XLOOKUP反向查找:

=IFERROR(XLOOKUP(A2, '表单响应'!A:A, '表单响应'!C:C, "未签到", 0, 2), "未签到")

2. 提取单个用户的签退时间

在考勤汇总的签退时间列(如D2单元格)输入公式,精准筛选用户的签退记录:

=IFERROR(INDEX(FILTER('表单响应'!C:C, '表单响应'!A:A=A2, '表单响应'!B:B="签退"), 1), "未签退")

说明:先用FILTER筛选出当前用户的所有签退记录,再用INDEX取第一条;若要最新签退记录,加入SORT排序:

=IFERROR(INDEX(SORT(FILTER('表单响应'!C:C, '表单响应'!A:A=A2, '表单响应'!B:B="签退"), 1, FALSE), 1), "未签退")

3. 整列自动填充(新手高效技巧)

如果想让整列自动计算,无需逐行复制公式,可在签到时间列的首行(如C1)使用ARRAYFORMULA:

=ARRAYFORMULA(IF(A2:A="", "", IFERROR(VLOOKUP(A2:A, '表单响应'!A:C, 3, FALSE), "未签到")))

同理,签退时间列也可以用数组公式批量处理:

=ARRAYFORMULA(IF(A2:A="", "", IFERROR(INDEX(SORT(FILTER('表单响应'!C:C, '表单响应'!A:A=A2:A, '表单响应'!B:B="签退"), 1, FALSE), 1), "未签退")))

内容的提问来源于stack exchange,提问作者Eugene Mendoza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 23:25:10