供应商自定义最小箱量的Excel批量计算公式优化求助
解决Excel动态箱量倍数匹配公式问题
原公式错误分析
你修改后的公式存在三个核心问题:
- 语法错误:
AND函数参数里混入了返回值(比如12),且括号未正确闭合,导致公式无法解析 - 逻辑硬编码:返回值用了固定的
12、24,没有关联到I9的倍数,无法适配6或12的不同箱量输入 - 冗余嵌套:手动嵌套
IF到300会极度繁琐,完全没必要
简洁替代公式
根据你描述的需求(匹配不小于D9的最小I9倍数,上限到300,D9=0时返回0),可以用ROUNDUP函数实现一键计算,无需多层嵌套:
=IF(D9=0,0,IF(ROUNDUP(D9/I9,0)*I9<=300,ROUNDUP(D9/I9,0)*I9,D9))
公式逻辑说明:
ROUNDUP(D9/I9,0):计算D9是I9的多少倍,向上取整(比如D9=13、I9=12时,得到2)ROUNDUP(...) * I9:得到不小于D9的最小I9倍数(比如上述例子得到24)- 外层
IF判断该倍数是否≤300,是则返回该倍数,否则返回D9原值 - 优先处理D9=0的特殊情况
适配原公式的精准逻辑
如果你需要严格匹配原公式的区间判断逻辑(0<D9≤I9→I9;I9<D9≤2I9→2I9;…直到300),上述公式完全适用,且自动扩展到300的上限,无需手动添加任何嵌套。
内容的提问来源于stack exchange,提问作者Logan Gordon
相关产品推荐
相关产品推荐

