新手必看!别再手数了,用COUNTA+INDEX+MATCH轻松统计指定行数据

今天看到一个网友问了这样一个问题,要统计指定代码的非空数据个数,如“A001”这行 10 个数据的非空个数,如下图:

我就用了一条公式搞定,具体怎么做,接下来给大家讲一讲;

=COUNTA(INDEX($C$3:$L$15,MATCH(N3,$B$3:$B$15,0),0,1))

先来看下效果动图:

其实在 excel 中已经一共了统计非空数量的函数,那就是 CountA,下面看下基本用法:

=COUNTA(值1, [值2], [值3], ...)

最多支持 255 个参数值,返回值为:范围内所有非空单元格的总数

那么这个值([值1],, [值2], [值3], ...)我们如何获取呢,这里需要用到 Index+Match函数的组合。

MATCH(查找值, 查找范围, 匹配模式) //在指定范围内查找特定值的位置
INDEX(数据区域, 行号, [列号])  //根据行列号返回指定区域的值

使用 Match 函数获取行号

首先通过 Match 函数获取代码(如“A001”)所在行号。

  1. 在“A001”后面的单元格输入“=Match()”;
  2. 点击上图中公式按钮“fx”
  3. 在弹出的弹框中,查找值点击“N3”单元格,就是“A001”所在单元格,查找区域点击左侧的“A003”按住鼠标不放拖动到“A009”,这个是个显示的是“B3:B15”,这里需要注意的是需要使用绝对引用,选中“B3:B15”后按快捷键(Win:F4,Mac:fn+F4),查找区域内容变为了“$B$3:$B$15”。
  4. 点击“确定”后单元格显示的是 12,意思就是在选择区域(B3:B15)的第 12 行;

这种方式设置函数对于新手比较友好,如果你对公式比较熟悉,其实可以直接手搓;

使用 Index 获取值数据

通过 Match 函数拿到了行号后,接着使用 Index 获取该行的整行数据。

  1. 将Match 函数先复制下,然后重新输入=index();
  2. 点击“fx”弹出函数参数弹框;
  3. 数组直接拖动鼠标选择 C3:L15 的数据区域,还是需要采用绝对引用;
  4. 行序数就是行号,输入之前的 Match 函数“MATCH(N3,$B$3:$B$15,0)”;
  5. 列序数为 0,表示获取整行数据。

点击“确定”后就获取了该行的所有数据;

使用 CountA 获取非空总数

最后将 Index 函数采用 CountA 函数进行包裹就可以了。

直接在函数参数弹框的值 1 中复制 Index 完整函数即可,看下最终效果;

好了,今天的分享就到这里了,如果你觉得有用,请点赞支持一下!我会持续分享更多实用干货~


作者:Leo,原百度产品经理,专注办公实用技能及AI提效实战分享,如果有任何想要的内容,欢迎随时私信我安排~。

原文链接:,转发请注明来源!