You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel中结合筛选条件用SMALL函数并忽略零值求父产品最低非零价格

解决父产品变体的最低非零价格计算问题

嘿,针对你这种有多父产品变体(不同尺寸、颜色)且存在0值价格的场景,你写出的公式逻辑其实已经很靠谱了!咱们先拆解下它的运行思路,再看看有没有更简洁的优化方案:

原公式逻辑拆解

你写的公式是这样的:

=IF(SUMIFS(I:I,A:A,A3)=0,0,IF(AND(SUMIFS(I:I,A:A,A3)>0,MINIFS(I:I,A:A,A3)>0),MINIFS(I:I,A:A,A3),SMALL(IF(A:A=A3,I:I),2)))

它的执行步骤是:

  1. 先用SUMIFS(I:I,A:A,A3)=0判断当前父产品的所有变体价格是不是全为0,如果是,直接返回0
  2. 如果存在非零价格,再检查该父产品的最低价格本身是不是非零——如果是,就直接返回这个最低值
  3. 要是最低价格是0,就用SMALL(IF(A:A=A3,I:I),2)取第二小的价格(毕竟最小的是0,第二小就是咱们要的最低非零值)

更简洁的替代公式

其实咱们可以直接利用MINIFS的多条件筛选能力,一步到位搞定,不用嵌套这么多层:

=IFERROR(MINIFS(I:I,A:A,A3,I:I,">0"),0)

逻辑说明:

  • MINIFS(I:I,A:A,A3,I:I,">0")会直接筛选出当前父产品(A列等于A3)且价格大于0的所有变体价格,然后取最小值
  • 如果这个父产品的所有价格都是0,MINIFS会返回错误值,这时候IFERROR就会捕获这个错误,返回0

兼容旧版Excel的方案

要是你用的是Excel 2016及更早的版本,不支持MINIFS函数,可以用数组公式替代:

=IFERROR(MIN(IF((A:A=A3)*(I:I>0),I:I)),0)

⚠️ 注意:输入这个公式后,需要按Ctrl+Shift+Enter触发数组计算(Excel 365及以后的版本不需要这一步,直接回车就行)

小提示

尽量避免用整列引用(比如A:A、I:I),改成实际的数据范围(比如A2:A1000、I2:I1000),这样能提升公式的运行效率哦!

内容的提问来源于stack exchange,提问作者RVPSRichard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:55:44