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

如何在Excel/Google Sheets中统计相邻非空单元格数量

问题说明
  • 使用Excel/Google Sheets处理表格时,部分行的非空单元格之间夹杂空白单元格,需要按从左到右顺序统计连续相邻的非空单元格数量
  • 直接使用COUNTA(A2:F2)仅能计算区域内所有非空单元格的总个数,无法识别空白单元格的分隔作用,返回结果不符合预期
  • 自定义计数预期效果与传统COUNTA函数结果对比如下:
    连续非空计数效果对比
实现公式

根据所用软件版本选择对应公式即可,若统计范围不是A2:F2,将公式中所有A2:F2替换为实际统计的行区域即可。

Excel 365/2021及以上版本、Google Sheets

统计整行最长连续相邻非空单元格数量

在结果单元格输入以下公式按回车即可:

=MAX(SCAN(0,A2:F2,LAMBDA(a,b,IF(b<>"",a+1,0))))

逻辑说明:SCAN从左到右遍历范围内的每个单元格,遇到非空单元格时累计计数+1,遇到空白单元格则将计数器重置为0,最后用MAX提取遍历过程中的最大计数值,即为最长连续非空单元格数。

如果需要逐列返回每个位置对应的连续计数(遍历到当前单元格时,往前连续的非空单元格个数),去掉公式外层的MAX即可:

=SCAN(0,A2:F2,LAMBDA(a,b,IF(b<>"",a+1,0)))

该公式为数组公式,会自动溢出匹配统计范围长度的结果,无需手动拖拽填充。

Excel 2019及更早版本

旧版Excel不支持LAMBDA类函数,可使用以下数组公式统计整行最长连续非空数,输入完成后需按Ctrl+Shift+Enter三键确认数组计算:

=MAX(FREQUENCY(IF(A2:F2<>"",COLUMN(A2:F2)),IF(A2:F2="",COLUMN(A2:F2))))

逻辑说明:先分别提取非空单元格、空白单元格对应的列号,再通过FREQUENCY统计列号的频率分布得到每段连续非空单元格的长度,最后用MAX提取最大值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 04:15:14