如何对VLOOKUP返回的表格逐行使用COUNTA统计条目数?
解决VLOOKUP数组返回值每行计数问题
针对Excel 365/2021及以上版本(推荐)
用BYROW函数遍历VLOOKUP返回的每一行,单独执行COUNTA:
=BYROW(VLOOKUP(你的查询键数组, 数据源区域, 返回列数数组, FALSE), LAMBDA(row, COUNTA(row)))
这个公式会把VLOOKUP输出的二维数据逐行传入LAMBDA,对每行单独统计非空单元格数量,最终返回一个对应每行计数的数组。
兼容旧版Excel的方案
如果你的Excel不支持BYROW,用数组公式(输入后按Ctrl+Shift+Enter确认):
=MMULT(--(VLOOKUP(你的查询键数组, 数据源区域, 返回列数数组, FALSE)<>""), TRANSPOSE(COLUMN(返回列区域)^0))
原理是把VLOOKUP结果里的非空单元格转成1、空单元格转成0,再通过矩阵乘法把每行的1相加,得到每行的非空条目数。
额外提示
如果VLOOKUP返回的行里包含#N/A这类错误值,COUNTA会把错误值算成非空条目。要是需要排除错误值,把COUNTA(row)替换成SUMPRODUCT(--(NOT(ISERROR(row))))即可。
内容的提问来源于stack exchange,提问作者となりの動く城
相关产品推荐
相关产品推荐

