Excel基于关联重复值匹配的多条件行数统计问题
兼容全Excel版本的可落地公式
=SUMPRODUCT( (B1:B8="sad")* (C1:C8="1-veggies")* (COUNTIF(A1:A8,A1:A8)>1)* ((COUNTIFS(A1:A8,A1:A8,D1:D8,"GHF")+COUNTIFS(A1:A8,A1:A8,D1:D8,"FGH")-((D1:D8="GHF")+(D1:D8="FGH")))>0) )
公式逻辑对应需求说明
- 基础行匹配逻辑完全对齐统计要求
(B1:B8="sad"):逐行判断是否满足B列取值为"sad"的要求(C1:C8="1-veggies"):逐行判断是否满足C列取值为"1-veggies"的要求(COUNTIF(A1:A8,A1:A8)>1):逐行判断当前行的A值在全A列的出现次数大于1,即存在重复记录
- 跨同A组关联行的D列匹配逻辑,完全解决原公式的两个核心缺陷
- 不再仅校验当前行的D列取值:先通过两次COUNTIFS,统计和当前行同A值的所有行中,D列为"GHF"、"FGH"的总数量,实现双值OR逻辑判断
- 扣除当前行自身的匹配计数:避免将当前行的D值纳入跨组匹配范围,确保匹配结果来自同A组的其他关联行,符合“跨同A值关联行完成匹配”的要求
- 最后判断剩余计数是否大于0,即同A组其他行中存在任意D列为"GHF"或"FGH"的记录,满足最后一个统计条件
样表校验结果
将公式应用到提供的8行样表数据中,最终返回值为1,和预期结果完全一致:
- 仅第2行(A=1,B=sad,C=1-veggies,D=HGF)满足全部条件:A列值1存在重复记录,同A组的第1行D列为"GHF",符合跨组匹配要求
- 第4行虽满足B列sad、C列1-veggies、A列重复的基础要求,但同A组的其他行无D列匹配GHF/FGH的记录,当前行自身的D值"FGH"属于单行匹配,不符合跨组校验规则,不计入统计
- 其余行均不满足基础筛选条件,无额外匹配项
提示:如果使用的是Excel 365/2021及以上支持动态数组的版本,可通过FILTER+BYROW简化公式写法,核心逻辑和上述SUMPRODUCT版本完全一致。
内容的提问来源于stack exchange,提问作者Sweepster
相关产品推荐
相关产品推荐

