简化Excel长公式求助:两行表格的两类条件判断需求
简化两行Excel表格条件判断公式方案
需求1:统计符合条件的列数是否≥2
问题描述
需判断:满足「某列首行值在1-3之间,同列次行值在1-2之间」的列数≥2时返回TRUE,否则FALSE;若指定单元格为空则返回空值。
简化公式
=IF(ISBLANK(INDEX($C:$C,7+26*RIGHT(P7,1))),"",SUMPRODUCT((INDEX($C:$N,28+26*RIGHT(P7,1),0)>=1)*(INDEX($C:$N,28+26*RIGHT(P7,1),0)<=3)*(INDEX($C:$N,29+26*RIGHT(P7,1),0)>=1)*(INDEX($C:$N,29+26*RIGHT(P7,1),0)<=2))>=2)
简化说明
- 用
INDEX替代重复的OFFSET,一次性定位目标两行的C-N列数据,避免重复计算偏移量 SUMPRODUCT通过数组相乘自动统计满足所有条件的列数,无需逐个列写COUNTIFS累加- 直接用
>=2判断结果,Excel会自动返回TRUE/FALSE,省去冗余的IF(...,TRUE,FALSE)
需求2:判断是否同时存在三类相同值列
问题描述
需判断:是否同时存在一列首行和次行均为1、一列均为2、一列均为3,满足则返回TRUE,否则FALSE;若指定单元格为空则返回空值。
简化公式
=IF(ISBLANK(INDEX($C:$C,7+26*RIGHT(P7,1))),"",AND(COUNTIFS(INDEX($C:$N,28+26*RIGHT(P7,1),0),1,INDEX($C:$N,29+26*RIGHT(P7,1),0),1)>=1,COUNTIFS(INDEX($C:$N,28+26*RIGHT(P7,1),0),2,INDEX($C:$N,29+26*RIGHT(P7,1),0),2)>=1,COUNTIFS(INDEX($C:$N,28+26*RIGHT(P7,1),0),3,INDEX($C:$N,29+26*RIGHT(P7,1),0),3)>=1))
简化说明
- 同样用
INDEX定位目标两行的C-N列区域,减少重复的OFFSET调用 - 用
COUNTIFS直接统计每类相同值的列数,判断是否至少存在一列 - 通过
AND函数直接组合三个条件的结果,自动返回TRUE/FALSE,省去多层嵌套的IF
内容的提问来源于stack exchange,提问作者Kilimanj99
相关产品推荐
相关产品推荐

