基于Google表单提交的ArrayFormula单单元格时间校验需求
Google Sheets ArrayFormula 解决方案
1. E列:判断单个单元格是否为"08:30"并返回1
用IF结合ArrayFormula实现逐行判断,替代整列统计的COUNTIF:
=ArrayFormula(IF(E3:E="08:30", 1, 0))
- 遍历E3及以下所有单元格,若单元格值等于"08:30"则返回1,否则返回0。
2. F列:统计单个单元格匹配指定时间的数量
针对多时间匹配计数的需求,用SUMPRODUCT+ISNUMBER+SEARCH组合实现数组运算:
=ArrayFormula(IF(F3:F="",, SUMPRODUCT(--ISNUMBER(SEARCH({"07:15","08:30","17:00"}, F3:F)))))
SEARCH在每个F列单元格中查找指定时间,找到返回位置数字,否则返回错误值;ISNUMBER将结果转为布尔值(找到为TRUE,否则FALSE);--把布尔值转为1或0;SUMPRODUCT对每行的三个结果求和,得到该行匹配的时间数量;IF(F3:F="",, ...)跳过空单元格,避免返回无效的0。
如果仅需判断是否匹配任意一个时间并返回1(而非统计数量),可用正则表达式简化:
=ArrayFormula(IF(F3:F="",, IF(REGEXMATCH(F3:F, "07:15|08:30|17:00"), 1, 0)))
内容的提问来源于stack exchange,提问作者ferdsyou
相关产品推荐
相关产品推荐

