LibreOffice Calc:无宏实现班次内事件时长求和公式
LibreOffice Calc 批量统计班次内事件总时长
核心公式(适用于E2单元格)
在E2单元格输入以下公式,完成后下拉填充至所有班次对应的E列单元格:
=SUMPRODUCT((C$2:C$101>=A2)*(C$2:C$101<=B2)*D$2:D$101)
公式说明
C$2:C$101>=A2:逐个判断事件日期是否落在当前班次的起始时间之后(含起始时间),返回一组逻辑值(TRUE/FALSE)C$2:C$101<=B2:逐个判断事件日期是否落在当前班次的结束时间之前(含结束时间),返回另一组逻辑值- 两组逻辑值相乘:只有同时满足两个条件的位置会得到
1,其余为0,相当于筛选出符合当前班次的事件 - 乘以
D$2:D$101:将符合条件的事件时长保留,不符合的归零 - SUMPRODUCT对所有结果求和,最终得到当前班次内的事件总时长
关键注意事项
- 固定事件范围:公式中用
$固定事件列的行范围(C$2:C$101、D$2:D$101),下拉时不会偏移事件数据区域,适配每月数据变动;若事件数量超过100,只需修改行号上限(比如改成C$2:C$201对应200个事件) - 跨月日期处理:LibreOffice Calc会自动将日期存储为数值(整数代表日期,小数代表时间),公式直接用单元格引用即可完成跨月日期的范围判断,无需额外转换
- 无匹配事件的班次:若某班次没有对应事件,公式会返回
0,符合需求
内容的提问来源于stack exchange,提问作者Pirous
相关产品推荐
相关产品推荐

