Google Sheets中文本格式排班时间的员工高峰时段统计问题
解决Google Sheets中文本格式排班数据的时段统计问题
步骤1:将文本格式的排班时间转换为可计算的时间值
假设排班开始时间存储在A列(文本格式,如"08:30"或"23:15"),先把文本转成Google Sheets可识别的时间值:
- 如果文本是标准
HH:MM格式,直接使用:=TIMEVALUE(A2) - 如果文本包含额外字符(如日期、备注),用正则提取时间部分:
=TIMEVALUE(REGEXEXTRACT(A2, "\d{2}:\d{2}"))
步骤2:用简洁公式匹配预设时段分组
替换原嵌套IF公式,改用LOOKUP实现高效分组匹配(直接处理时间值):
=LOOKUP(TIMEVALUE(A2), {0, 9/24, 11/24, 13/24, 15/24, 18/24, 22/24}, {"22:00 to 09:00", "09:00 to 11:00", "11:00 to 13:00", "13:00 to 15:00", "15:00 to 18:00", "18:00 to 22:00", "22:00 to 09:00"})
- 原理:Google Sheets中时间以0-1的小数表示(如09:00=9/24=0.375),
LOOKUP会匹配小于等于目标值的最大区间键,自动归类到对应时段。
步骤3:批量处理4000条数据
用ARRAYFORMULA一次性处理整列,无需手动下拉公式:
=ARRAYFORMULA(IF(A2:A="", "", LOOKUP(TIMEVALUE(A2:A), {0, 9/24, 11/24, 13/24, 15/24, 18/24, 22/24}, {"22:00 to 09:00", "09:00 to 11:00", "11:00 to 13:00", "13:00 to 15:00", "15:00 to 18:00", "18:00 to 22:00", "22:00 to 09:00"})))
将公式输入到B2单元格,自动填充所有A列的分组结果。
步骤4:统计最常见的在岗时段
- 直接获取出现次数最多的时段:
=MODE(B2:B) - 生成完整的时段次数统计(按次数降序):
=QUERY(B2:B, "SELECT B, COUNT(B) WHERE B != '' GROUP BY B ORDER BY COUNT(B) DESC", 0)
内容的提问来源于stack exchange,提问作者Neethu Singuluri
相关产品推荐
相关产品推荐

