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

求统计指定区域内两个AAA之间空白单元格的Excel公式

解决Excel统计两"AAA"间空白单元格的问题

适用场景

统计第一行中每两个"AAA"之间的空白单元格数量,第二行每个单元格均输出对应统计值(包括"AAA"所在单元格,输出0)。


方案1:Excel 365/2021(支持动态数组)

直接在第二行第一个单元格(如A2)输入以下公式,公式会自动向右溢出填充所有结果:

=LET(
    rng, A1:X1,
    positions, FILTER(SEQUENCE(COLUMNS(rng)), rng="AAA"),
    result, MAP(SEQUENCE(COLUMNS(rng)), LAMBDA(col,
        IF(rng[col]="AAA", 0,
            LET(
                prev, XLOOKUP(col, positions, positions, 0, 1),
                next, XLOOKUP(col, positions, positions, COLUMNS(rng)+1, -1),
                COUNTBLANK(INDEX(rng, 1, prev+1):INDEX(rng, 1, next-1))
            )
        )
    )),
    result
)

公式逻辑:

  1. 用FILTER定位所有"AAA"在第一行的列位置
  2. 用MAP遍历每一列:
    • 若当前列是"AAA",直接返回0
    • 否则用XLOOKUP找到当前列前后最近的"AAA"位置,统计两者之间的空白单元格数

方案2:旧版Excel(不支持动态数组)

在第二行第一个单元格(如A2)输入以下数组公式,按Ctrl+Shift+Enter确认后,向右填充至目标列:

=IF(A1="AAA",0,COUNTBLANK(INDEX($1:$1,1,MAX(IF($A$1:A$1="AAA",COLUMN($A$1:A$1),0))+1):INDEX($1:$1,1,MIN(IF(A$1:$X$1="AAA",COLUMN(A$1:$X$1),COLUMN($X$1)+1))-1)))

公式逻辑:

  1. 用MAX(IF(...))找到当前列左侧最近的"AAA"列位置
  2. 用MIN(IF(...))找到当前列右侧最近的"AAA"列位置
  3. 统计这两个位置之间的空白单元格数,若当前列是"AAA"则返回0

为什么COUNTBLANK/COUNTA无效?

这两个函数仅能统计固定区域的空白/非空白单元格,但你的需求需要动态识别每两个"AAA"之间的可变区间,必须结合列位置查找函数(如XLOOKUP、IF+MAX/MIN)来定位统计范围,才能实现需求。

注意事项

  • 确保第一行的"AAA"为纯文本,无多余空格或格式差异
  • 若第一行开头无"AAA",公式会统计从行首到第一个"AAA"之间的空白;若结尾无"AAA",会统计最后一个"AAA"到行尾的空白

内容的提问来源于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.08 08:50:25