如何在Excel中计算门店连续休业天数的平均时长
计算Excel中门店的平均休业持续时长
核心逻辑
平均休业时长 = 总休业天数 ÷ 连续休业的段数
比如连续2天休业(1段)+单独1天休业(1段),总休业3天,3÷2=1.5,和你的示例一致。
实现公式
方法1:适用于Excel 365/2021(动态数组+LET函数,可读性强)
假设门店数据在第2行(B2:K2为日期列),在L2单元格输入以下公式,直接回车即可:
=LET( data,B2:K2, isClosed,data=0, startSegments,isClosed*(VSTACK(TRUE,TAKE(isClosed,,COLUMNS(isClosed)-1)=FALSE)), segmentCount,SUM(startSegments), totalClosed,COUNTIF(data,0), IF(totalClosed=0,0,totalClosed/segmentCount) )
公式说明:
data:指定要计算的日期列范围isClosed:标记所有休业的单元格(值为0的单元格返回TRUE)startSegments:识别每个休业段的起始点(当前单元格休业,且前一个单元格不休业;第一个单元格若休业直接算起始点)segmentCount:统计所有休业段的数量totalClosed:统计总休业天数- 最后判断:如果没有休业记录返回0,否则计算平均时长
方法2:适用于旧版Excel(无动态数组,需按Ctrl+Shift+Enter执行数组公式)
在L2单元格输入以下公式,输入完成后按Ctrl+Shift+Enter确认:
=IF(COUNTIF(B2:K2,0)=0,0,COUNTIF(B2:K2,0)/(SUM(--((B2:K2=0)*(OFFSET(B2:K2,0,-1,ROWS(B2:K2),COLUMNS(B2:K2))<>0)))+(--(B2=0))))
公式说明:
COUNTIF(B2:K2,0):统计总休业天数SUM(--((B2:K2=0)*(OFFSET(...)<>0))):统计中间开始的休业段数量(当前单元格是0且前一个不是0)--(B2=0):单独判断第一列是否为休业起始点- 总休业天数除以总段数得到平均时长,无休业时返回0
使用说明
- 把公式中的
B2:K2替换成你实际的日期列范围 - 下拉公式即可批量计算所有门店的平均休业时长
内容的提问来源于stack exchange,提问作者Nathan Silverglate
相关产品推荐
相关产品推荐

