如何用公式计算区域内每行非空单元格的数量?
按行统计A:D区域非空单元格数量的正确公式
方案1:用BYROW(直观易懂,适配新版Google Sheets)
直接通过BYROW遍历每行,搭配COUNTA统计单行列非空单元格数:
=BYROW(A:D, LAMBDA(row, COUNTA(row)))
这个公式会逐行处理A:D区域,对每一行单独执行COUNTA统计,直接输出每行的结果,完全匹配你需要的4、2、3这类行级统计需求。
方案2:用MMULT兼容旧版
如果你的Google Sheets版本不支持BYROW,可以用MMULT实现矩阵求和:
=ARRAYFORMULA(MMULT(N(A:D<>""), SEQUENCE(COLUMNS(A:D), 1, 1, 0)))
原理说明:N(A:D<>"")将非空单元格转为数值1,空单元格转为0;SEQUENCE(COLUMNS(A:D),1,1,0)生成一列与A:D列数一致的1,通过矩阵乘法MMULT将每行的1相加,最终得到每行的非空单元格数量。
原公式失效原因
你使用的=ARRAYFORMULA(COUNTIF(A:D,"<>"))会统计A:D整个区域的非空单元格总数,因为COUNTIF在该写法下未指定行级范围,无法拆分到每行单独计算。
内容的提问来源于stack exchange,提问作者icecream sugar black
相关产品推荐
相关产品推荐

