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

跨间隔列统计连续True值的最大数量

解决Excel间隔列连续True值最大个数统计问题

需求:在每行的H列,统计跳过空白列(B、D、F)后,A、C、E、G列中连续出现True的最大次数,示例如下:

Column AColumn BColumn CColumn DColumn EColumn FColumn GColumn H
TrueTrueTrueFalse3
TrueTrueFalseTrue2
FalseTrueFalseTrue1

方案1:兼容所有Excel版本的数组公式

在H2单元格输入以下公式,按Ctrl+Shift+Enter(旧版Excel需手动触发数组计算,新版Excel会自动识别):

=MAX(FREQUENCY(IF(A2:G2=TRUE,COLUMN(A2:G2)),IF(A2:G2=FALSE,COLUMN(A2:G2))))

公式逻辑:

  1. IF(A2:G2=TRUE,COLUMN(A2:G2)):提取当前行中所有值为True的单元格列号,空白列因不满足=TRUE自动被忽略。
  2. IF(A2:G2=FALSE,COLUMN(A2:G2)):提取当前行中所有值为False的单元格列号,作为分隔连续True组的标记。
  3. FREQUENCY(...):计算每个连续True组的元素个数(即连续True的次数)。
  4. MAX(...):从所有连续组的次数中取最大值,得到最终结果。

方案2:适用于Excel 365/2021的动态数组公式

如果使用支持动态数组的Excel版本,可直接指定目标列(A、C、E、G),用更简洁的公式:

=MAX(SCAN(0,A2,C2,E2,G2,LAMBDA(a,v,IF(v=TRUE,a+1,0))))

公式逻辑:

  1. SCAN(0, A2,C2,E2,G2, LAMBDA(a,v,IF(v=TRUE,a+1,0))):遍历目标列的每个值,遇到True就累加计数,遇到False或空白则重置计数为0,生成一组连续计数结果。
  2. MAX(...):从计数结果中取最大值,即为连续True的最大次数。

扩展:自动适配所有间隔奇数列

如果需要统计的间隔列是所有奇数列(A、C、E、G...)且列数较多,可使用动态数组自动提取目标列,无需手动指定:

=MAX(SCAN(0,INDEX(2:2,SEQUENCE(ROUNDUP(COLUMNS(2:2)/2,0),,1,2)),LAMBDA(a,v,IF(v=TRUE,a+1,0))))

将公式中的2:2替换为具体行号即可应用到指定行,下拉填充可批量处理所有行。


内容的提问来源于stack exchange,提问作者The_Train

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 19:02:28