今天看到一个网友问了这样一个问题,要统计指定代码的非空数据个数,如“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”)所在行号。
- 在“A001”后面的单元格输入“=Match()”;
- 点击上图中公式按钮“fx”;
- 在弹出的弹框中,查找值点击“N3”单元格,就是“A001”所在单元格,查找区域点击左侧的“A003”按住鼠标不放拖动到“A009”,这个是个显示的是“B3:B15”,这里需要注意的是需要使用绝对引用,选中“B3:B15”后按快捷键(Win:F4,Mac:fn+F4),查找区域内容变为了“$B$3:$B$15”。
- 点击“确定”后单元格显示的是 12,意思就是在选择区域(B3:B15)的第 12 行;
这种方式设置函数对于新手比较友好,如果你对公式比较熟悉,其实可以直接手搓;
使用 Index 获取值数据
通过 Match 函数拿到了行号后,接着使用 Index 获取该行的整行数据。
- 将Match 函数先复制下,然后重新输入=index();
- 点击“fx”弹出函数参数弹框;
- 数组直接拖动鼠标选择 C3:L15 的数据区域,还是需要采用绝对引用;
- 行序数就是行号,输入之前的 Match 函数“MATCH(N3,$B$3:$B$15,0)”;
- 列序数为 0,表示获取整行数据。
点击“确定”后就获取了该行的所有数据;
使用 CountA 获取非空总数
最后将 Index 函数采用 CountA 函数进行包裹就可以了。
直接在函数参数弹框的值 1 中复制 Index 完整函数即可,看下最终效果;
好了,今天的分享就到这里了,如果你觉得有用,请点赞支持一下!我会持续分享更多实用干货~
作者:Leo,原百度产品经理,专注办公实用技能及AI提效实战分享,如果有任何想要的内容,欢迎随时私信我安排~。