Excel自动生成符合特定规则的分类汇总公式需求
Excel自动生成符合特定规则的分类汇总公式需求
嗨,我完全明白你的需求了——要做一个能下拉复用的自动汇总公式:只有当A列对应行是"+"时,才汇总上方符合条件的C列数值,而且必须精准截止到上一个""所在行的下一行,完全排除""行的数值对吧?
给你一个稳定且完美匹配需求的公式,直接就能用:
=IF(A23="+", SUMIFS(INDEX(C:C, LOOKUP(2,1/(A$1:A22="*"),ROW(A$1:A22))+1):INDEX(C:C, 22), INDEX(A:A, LOOKUP(2,1/(A$1:A22="*"),ROW(A$1:A22))+1):INDEX(A:A, 22), "."), "")
公式怎么工作的(帮你吃透逻辑):
- 外层判断:
IF(A23="+", ..., "")——只有当前行A列是"+"时才计算汇总,其他行直接显示空值,避免表格出现多余的0或错误值。 - 定位最后一个"*":
LOOKUP(2,1/(A$1:A22="*"),ROW(A$1:A22))——不管你的""在上方哪个位置,它都能精准找到当前行之前最后一个出现""的行号(比如你例子里的A14)。 - 锁定求和区间:
INDEX(C:C, ...+1):INDEX(C:C,22)——从最后一个"*"的下一行(比如A15)开始,到当前行的上一行(C22)结束,确保只汇总这个区间内的内容。 - 精准筛选求和:
SUMIFS(...)——在上述区间里,只对A列标记为"."的行的C列数值求和,完美跳过所有不符合标记的行。
使用步骤:
- 把这个公式输入到第一个需要汇总的单元格(比如你例子里的C23)
- 直接下拉填充到其他行,公式会自动适配每一行的位置,自动找到对应的"*"位置和求和区间,完全不用手动调整。
比如你提到的C34,下拉后公式会自动定位到C34上方最后一个"*"的位置,然后汇总之后到C33之间所有A列为"."的C列数值,和你手动计算的结果完全一致。
备注:内容来源于stack exchange,提问作者Vasileios Georgakopoulos
相关产品推荐
相关产品推荐

