Google表格动态行中用Array Formula实现COUNTA非空统计需求
动态统计Google表格每行非空单元格数量(适配新增行)
针对固定列(B2:F)、行数动态的表格,要在H列实现每行非空单元格的统计且自动适配新增行,可直接使用以下数组公式(输入到H1单元格):
方案1(适配新版Google表格,推荐)
={"非空单元格计数"; BYROW(B2:INDEX(B:B,COUNTA(A:A)), LAMBDA(row, COUNTA(row)))}
- 逻辑说明:
BYROW遍历B列到最后一行(通过COUNTA(A:A)判断,假设A列是每行必有的标识列;若A列无固定内容,可替换为MAX(ROW(B:B)*(B:B<>""))获取B列最后有值的行),LAMBDA对每行执行COUNTA统计非空单元格数。
方案2(兼容旧版Google表格)
如果你的表格不支持BYROW/LAMBDA函数,可使用矩阵求和方案:
={"非空单元格计数"; ARRAYFORMULA(MMULT(--(B2:F<>""), SEQUENCE(COLUMNS(B2:F),1,1,0)))}
- 逻辑说明:
--(B2:F<>"")将非空单元格转为1、空单元格转为0,MMULT对每行的1求和,得到每行的非空数量。
为什么之前的拼接公式思路不适用?
你之前用的FLATTEN+QUERY是针对文本拼接的批量处理逻辑,而统计每行非空数需要逐行独立计算,上述两种方案更贴合需求,且能自动适配新增行。
内容的提问来源于stack exchange,提问作者PSAB Plalangan
相关产品推荐
相关产品推荐

