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

如何统计指定时间段内的单元格数量?COUNTIFS/ARRAYFORMULA尝试未果

解决思路与公式示例

方法一:COUNTIFS 逐行/批量统计

G列的每个整点对应「前一小时到当前整点」的时段(比如G2是09:00:00,对应08:00-09:00),可以直接用COUNTIFS指定区间条件:

  • 单格公式(H2单元格,对应08:00-09:00):
    =COUNTIFS(A:A, ">="&G2-TIME(1,0,0), A:A, "<"&G2)
    下拉公式到H列其他行,即可自动计算对应时段的数量。
  • 数组批量公式(无需下拉,直接生成所有结果):
    =ARRAYFORMULA(IF(G2:G="", "", COUNTIFS(A:A, ">="&G2:G-TIME(1,0,0), A:A, "<"&G2:G)))
    之前用ARRAYFORMULA失败,大概率是没正确引用数组范围,或者未处理G列空白单元格(公式里的IF(G2:G="", "", ...)就是用来过滤空白的)。

方法二:FREQUENCY 高效批量统计

FREQUENCY函数专门用于按区间统计数值(时间在表格里本质是数值),操作更高效:

  1. 构造区间边界:在空白列(比如I列)输入时段边界值:
    • I1:TIME(8,0,0)(第一个时段左边界)
    • I2-I10:引用G2-G9的09:00到17:00整点
    • I11:TIME(18,0,0)(最后一个时段右边界)
  2. 输入数组公式生成统计结果:
    =ARRAYFORMULA(FREQUENCY(A:A, I1:I10))
    公式输出的结果中,J1对应08:00-09:00,J2对应09:00-10:00,以此类推到J9对应17:00-18:00,自动忽略空白单元格,数据量大时比COUNTIFS更快。

关键注意点

  • 确保A列和G列是时间格式,如果是文本格式,先用TIMEVALUE函数转换(比如=TIMEVALUE(A1)),否则公式无法识别时间区间。
  • 若A列时间带日期(时间戳包含日期),无需额外处理,公式会自动只比较时间部分,不影响区间判断。

内容的提问来源于stack exchange,提问作者Eric Morandeau

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 04:22:38