计算每小时出发行程占比需使用哪些合适的Excel函数?
Excel 24小时时段行程占比统计公式方案
前置数据约定
- 所有行程的出发时间存储在A列,数据范围为
A2:A1000(可替换为你的实际数据范围) - 提前计算好的总行程数存储在
F1单元格 - 用于标识统计时段的小时值存储在C列,
C2=0代表0:00-0:59时段,C3=1代表1:00-1:59,依次到C25=23代表23:00-23:59
方案1:COUNTIFS 直接统计(无需辅助列)
这是最简便的实现方式,无需新增额外列,在对应时段的统计单元格D2输入如下公式,下拉即可得到所有时段的行程数:
=COUNTIFS(A:A,">="&TIME(C2,0,0),A:A,"<"&TIME(C2+1,0,0))
公式说明:
TIME(C2,0,0)会将C列的小时整数转换为Excel可识别的时间格式,比如C2=3时返回值为3:00:00- 两个时间条件组合刚好覆盖整个小时区间,不会漏计跨边界的行程
统计完时段行程数后,在占比列E2输入如下公式,下拉后将单元格格式设置为「百分比」即可得到对应占比:
=D2/$F$1
注意总行程数的引用要加$做绝对定位,避免下拉公式时引用偏移
方案2:SUMIF 实现(匹配你之前的尝试方向)
如果更习惯用SUMIF类函数,可以先加1列辅助列提取小时值:
- 在B2单元格输入公式
=HOUR(A2),下拉填充所有行程行,提取每个出发时间对应的小时整数 - 如果你的行程每行对应1次出行,可在E列全填充数值1,之后在对应时段的统计单元格
D2输入如下公式,下拉得到各时段行程数:
=SUMIF(B:B,C2,E:E)
占比计算逻辑和方案1完全一致。
常见失败原因排查
如果之前公式运行出错,大概率是以下问题:
- 出发时间列是文本格式而非时间格式:选中A列右键设置单元格格式,选择「时间」类格式,确认能正常显示时间即可
- 时间条件直接写了文本值比如
">=3:00:00",Excel无法识别为时间,必须用TIME函数转换或者引用时间格式的单元格 - 统计范围没有覆盖所有行程数据,导致漏计
内容的提问来源于stack exchange,提问作者john_mcavey
相关产品推荐
相关产品推荐

