Excel固定增量统计:按20行块统计列中1的数量
按固定行数块统计列中1的数量解决方案
核心公式(非易失性,大数据量推荐)
用INDEX定义统计区域,搭配SUMPRODUCT求和,避免易失性函数带来的性能问题:
=SUMPRODUCT(--(INDEX(A:A, (ROW()-1)*20 + 1):INDEX(A:A, ROW()*20)=1))
将公式放在空白单元格(比如F1),下拉即可依次统计A1:A20、A21:A40、A41:A60……每个20行块中1的数量。
用OFFSET的简化公式
如果习惯用OFFSET,可以用以下公式:
=COUNTIF(OFFSET($A$1, (ROW()-1)*20, 0, 20, 1), 1)
- 第一个参数
$A$1是统计区域的基点 (ROW()-1)*20是每次下拉时的行偏移量(第一行偏移0,第二行偏移20,以此类推)20是每个块的行数,1是列数
多列批量统计
如果要同时统计B-E列,只需将公式向右拖动:
- 用
INDEX的话,把公式中的A:A改成B:B/C:C等即可 - 用
OFFSET的话,可修改列偏移参数实现自动适配:
(注:假设结果从F列开始,=COUNTIF(OFFSET($A$1, (ROW()-1)*20, COLUMN()-6, 20, 1), 1)COLUMN()-6对应F列偏移0列(A列)、G列偏移1列(B列)……)
常见问题排查
你之前用COUNTIF+ROW+OFFSET组合失败,大概率是行偏移量计算错误:
- 错误写法可能用了
ROW()*20作为偏移量,导致第一个块从A21开始而非A1 - 确保偏移量是
(ROW()-1)*20,才能让第一行公式对应A1:A20区域
内容的提问来源于stack exchange,提问作者Eg It
相关产品推荐
相关产品推荐

