如何计算列条目值差及Excel中B列有值时的平均日期差(避免VBA)
Excel带条件的日期差值平均值计算方案
- 需求明确:仅统计B列(Returned列)存在录入值的行,计算对应行「Returned日期 - Submitted日期」的差值平均值
可用公式(无需VBA)
方案1:动态数组/数组公式
适用于Excel 365/2021(自动支持动态数组),旧版Excel需按Ctrl+Shift+Enter确认数组公式:
=AVERAGE(IF(B:B<>"", B:B - A:A))
- 逻辑:
IF(B:B<>"", B:B - A:A)先筛选出B列非空行的日期差值,其余行返回FALSE;AVERAGE会自动忽略FALSE值,计算有效差值的平均值。
方案2:SUMPRODUCT+COUNTIF组合
兼容所有Excel版本,无需数组公式操作:
=SUMPRODUCT((B:B<>"")*(B:B - A:A))/COUNTIF(B:B,"<>")
- 逻辑:
SUMPRODUCT((B:B<>"")*(B:B - A:A))计算所有B列非空行的日期差值总和;COUNTIF(B:B,"<>")统计B列非空的行数;两者相除得到平均值。
针对你尝试过的问题说明
你之前用的=Average(B-A)会包含所有行的差值(包括B列空值的行,这类行计算会得到错误值,AVERAGE会直接忽略),无法精准筛选出B列有值的行,所以不符合需求。
内容的提问来源于stack exchange,提问作者chickenjones44
相关产品推荐
相关产品推荐

