Excel公式优化需求:定位连续5个符合条件的同活动记录
求助:计算活动切换完成时间,需定位第5个符合耗时要求的连续活动
我现在需要解决一个Excel公式的问题:我的目标是计算从一项活动切换到另一项活动所需的时间,切换完成的判定标准是连续5个同操作活动的耗时均低于7分钟。
我之前尝试用MATCH+FREQUENCY数组公式来定位活动恢复正常的位置,公式如下(数组公式需按Ctrl+Shift+Enter输入):
{=MATCH(TRUE,(FREQUENCY(IF((I2:I500=1)*(B2:B500=J6),ROW(B2:B500)),IF(I2:I500=1,0,ROW(B2:B500))))>4,0)}
先说明下表格里各列的作用:
- I列是辅助列,当活动耗时符合要求(低于7分钟)时标记为1
- B列是活动列表,记录每个操作对应的活动名称
- J6单元格是我当前待分析的目标活动
- E列记录每个活动的日期/时间
但这个公式有个问题:如果连续符合条件的活动超过5个,它会一直计数直到出现不符合要求的活动,最后返回的是这一段连续符合项的最后一个位置,但我需要的是找到第5个符合要求的活动就停止定位。
后来我拼凑出了一个完整公式,功能是正常的,但长度实在太长了,维护起来很麻烦:
=INDEX(E1:E20000,MAX(IF(OFFSET(B2,0,0,MAX(IF(OFFSET(B2,0,0,MATCH(TRUE,(FREQUENCY(IF((I2:I500=1)*(B2:B500=J6),ROW(B2:B500 )),IF(I2:I500=1,0,ROW(B2:B500))))>4,0) - 1)=J6,ROW(OFFSET(B2,0,0,MATCH(TRUE,(FREQUENCY(IF((I2:I500=1)*(B2:B500=J6),ROW(B2:B500)),IF(I2:I500=1,0,ROW(B2:B500))))>4,0) - 1)))) - 1)=J6,ROW(OFFSET(B2,0,0,MAX(IF(OFFSET(B2,0,0,MATCH(TRUE,(FREQUENCY(IF((I2:I500=1)*(B2:B500=J6),ROW(B2:B500)),IF(I2:I500= 1,0,ROW(B2:B500))))>4,0) - 1)=J6,ROW(OFFSET(B2,0,0,MATCH(TRUE,(FREQUENCY(IF((I2:I500=1)*(B2:B500=J6),ROW(B2:B500)),IF(I2:I500=1,0,ROW(B2:B500))))>4,0) - 1)))) - 1)))))
我之前参考过两个思路方向:
- 如何在Excel中按两个条件统计唯一值
- 如何提取Excel中前5个最大值
附上我的数据表格截图:
内容的提问来源于stack exchange,提问作者LWTK
相关产品推荐
相关产品推荐

