求筛选非全正非全负列对应数据的更优Excel公式
优化Excel筛选公式:筛选对应行既不全正也不全负的数据
原公式分析
你的原公式逻辑是正确的,通过逐个判断每行S到W列是否全正或全负,取反后筛选AC列数据。但当列数较多时,逐个列相乘的写法会显得繁琐,可通过更简洁的函数组合实现相同需求。
优化后的公式
推荐使用BYROW结合MIN/MAX的写法,简洁且通用:
=FILTER(AC2:AC, BYROW(S2:W, LAMBDA(row, MIN(row)<=0)*(MAX(row)>=0)))
公式逻辑解释
BYROW(S2:W, LAMBDA(row, ...)):遍历S到W列的每一行,对每行执行自定义判断逻辑MIN(row)<=0:判断该行不全为正值(只要有一个单元格≤0,该条件即成立)MAX(row)>=0:判断该行不全为负值(只要有一个单元格≥0,该条件即成立)- 两个条件相乘(等价于逻辑与),只有同时满足两个条件的行才会被保留,最终通过
FILTER提取对应的AC列数据
额外简化版本
如果你的Excel版本支持动态数组,也可以用以下紧凑写法(可读性稍弱):
=FILTER(AC2:AC, (MMULT(--(S2:W<=0), SEQUENCE(COLUMNS(S:W),,1,0))>0)*(MMULT(--(S2:W>=0), SEQUENCE(COLUMNS(S:W),,1,0))>0))
更推荐BYROW+LAMBDA的写法,可读性更强,后期维护更方便。
内容的提问来源于stack exchange,提问作者Digital Farmer
相关产品推荐
相关产品推荐

