Google Sheets如何根据签到签退时间统计指定时间点在场人数
你原有公式失效的核心原因是COUNTIF的判断条件逻辑不匹配,EQ()仅能返回单个布尔值,无法批量判断每一行的签到签退区间是否包含目标时间,且MEDIAN的数组运算逻辑没有和逐行判断的需求对齐。
单单元格计算方案(填入目标时间对应行的空白单元格,可下拉批量填充)
公式:=SUMPRODUCT((A$2:A<=D2)*(B$2:B>=D2))
逻辑说明:
- 逐行遍历所有签到、签退记录,同时满足两个条件时计数+1:
- 该行签到时间 ≤ 当前目标时间
- 该行签退时间 ≥ 当前目标时间
- 求和后结果即为该时间点的场馆在场总人数
自动批量计算方案(无需手动下拉,填入第一个结果单元格即可自动生成所有目标时间对应人数)
公式:=BYROW(D2:D, LAMBDA(t, IF(t="",,SUMPRODUCT((A$2:A<=t)*(B$2:B>=t)))))
逻辑说明:
- 用BYROW函数遍历所有目标时间列的内容
- 对每一个有效的目标时间t,执行和上述单单元格公式一致的计数逻辑
- 遇到空单元格时直接返回空白,避免出现报错值
注意事项
- 请确保A列(签到时间)、B列(签退时间)、目标时间列的单元格格式统一设置为时间或日期时间格式,避免格式不匹配导致判断失效
- 如果你的目标时间存放在C列,把公式中所有D2、D2:D对应替换为C2、C2:C即可
内容的提问来源于stack exchange,提问作者malsatori
相关产品推荐
相关产品推荐

