You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:05:47