求行累积和列中>3值的COUNTIF公式:无需中间网格直接计算?
直接计算目标结果的Excel公式方案
当然可以跳过中间累积和的单元格!针对你的大数据量场景,我们可以用Excel的数组/动态数组公式直接完成计算,完全不需要额外的中间存储区域,省下来的单元格空间能帮你减少文件负担。
核心思路
我们把「每行计算累积和」的逻辑直接嵌入到「统计大于3的数量」的公式里,让Excel在后台悄悄完成累积和的计算,同时输出最终的统计结果,全程不用单独存中间值。
具体公式(分版本适配)
假设你的原始数据区域是 A2:C10(第一行是表头,数据从第2行到第10行,共3列),要把每列的最终结果放在 E2:E4,可以用以下两种方案:
方案1:Excel 365/2021(动态数组版本)
在E2单元格输入公式后按回车,结果会自动溢出到整列,不用手动下拉:
=BYCOL(A2:C10, LAMBDA(col, SUM(--(SCAN(0, col, LAMBDA(a,b, a+b))>3))))
方案2:旧版Excel(非动态数组版本)
在E2单元格输入公式后,按 Ctrl+Shift+Enter 作为数组公式确认,再下拉填充到E4:
=SUM(--(MMULT(N(ROW(A2:A10)>=TRANSPOSE(ROW(A2:A10))), A2:C10)>3))
公式拆解说明
动态数组版本:
BYCOL会逐个遍历每一列数据;SCAN(0, col, LAMBDA(a,b, a+b))对当前列的每行计算累积和(从0开始,依次累加每行的值);--(...)>3把「累积和>3」的判断结果转成1(符合条件)和0(不符合);SUM把这些1和0加起来,就是当前列中符合条件的行数。
旧版Excel版本:
MMULT(N(ROW(A2:A10)>=TRANSPOSE(ROW(A2:A10))), A2:C10)通过行号比较生成三角矩阵,和原数据相乘后得到每行的累积和矩阵;--(...)>3同样把判断结果转成1/0;SUM求和得到每列的符合条件数量。
小提示
记得把公式里的 A2:C10 替换成你实际的数据区域,确保公式范围和你的表格匹配哦。
内容的提问来源于stack exchange,提问作者indigene
相关产品推荐
相关产品推荐

