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

Excel需求:统计相邻非空单元格间空白单元格数并加1

解决Excel中统计非空单元格间隔(空白数+1)的问题

方法一:公式法(适合小数据量)

假设目标数据在A列,通过辅助列实现统计:

  1. 新增辅助列B,在B1输入公式并下拉填充,用于记录每个单元格对应的上一个非空单元格的行号:
    =IF(A1<>"",ROW(),B1)
    
  2. 新增结果列C,在C1输入公式并下拉填充,非空单元格位置会自动计算间隔值(空白数+1):
    =IF(A1<>"",IF(ROW()>1,ROW()-OFFSET(B1,-1,0),""),"")
    
    逻辑说明:当当前单元格非空时,用当前行号减去上一个非空单元格的行号,得到的数值就是两个非空之间的空白单元格数量加1。

方法二:VBA脚本法(适合大数据量)

如果数据行数较多,用VBA批量处理更高效:

Sub CalculateNonEmptyGap()
    Dim lastRow As Long
    Dim prevNonEmptyRow As Long
    Dim i As Long
    
    lastRow = Cells(Rows.Count, "A").End(xlUp).Row
    prevNonEmptyRow = 0 ' 初始化上一个非空单元格行号
    
    For i = 1 To lastRow
        If Cells(i, "A").Value <> "" Then
            If prevNonEmptyRow <> 0 Then
                ' 计算间隔并写入结果列C
                Cells(i, "C").Value = i - prevNonEmptyRow
            End If
            prevNonEmptyRow = i ' 更新上一个非空单元格行号
        End If
    Next i
End Sub

使用步骤:

  • 按下Alt+F11打开VBA编辑器
  • 插入新模块,粘贴上述代码
  • 点击运行按钮,结果会自动写入C列

效果示例

若A列数据如下:

数值1
(空白)
(空白)
数值2
(空白)
数值3

则C列对应结果为:数值2的位置显示3(2个空白+1),数值3的位置显示2(1个空白+1),完全匹配需求效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:25:28