Google Sheets Array Formula故障求助:余额小于最大预设值时返回FALSE
Google Sheets ArrayFormula余额拆解功能修复
原公式问题根源
原嵌套IF逻辑仅处理了**余额≥最大预设值($B$11)**的场景,当余额小于$B$11时,所有嵌套条件均不触发,直接返回FALSE,完全遗漏了余额匹配次大值、第三大值以及可重复小值的分支。
修正后的ArrayFormula
将D2单元格的公式替换为:
=ArrayFormula(IF(C2:C25=0,"",IF(C2:C25>=0, IF(AND(C2:C25>=$B$11,COUNTIF(D$2:D2,$B$11)=0),$B$11, IF(AND(C2:C25>=$B$10,COUNTIF(D$2:D2,$B$10)=0),$B$10, IF(AND(C2:C25>=$B$9,COUNTIF(D$2:D2,$B$9)=0),$B$9, IF(C2:C25>0,INDEX($B$2:$B$8,MATCH(TRUE,$B$2:$B$8<=C2:C25,0)),"") ) ) ),""))
修正逻辑说明
- 优先处理余额为0的情况,返回空值避免无效输出
- 从最大的单次可用值($B$11)开始校验:余额足够且未使用过则扣减该值
- 依次校验次大($B$10)、第三大($B$9)的单次可用值,逻辑一致
- 若三个单次值均无法使用(余额不足或已用过),则从可重复的$B$2:$B$8中匹配最大的不超过当前余额的值,确保拆解步骤最短
- 余额为负时返回空值
注意事项
- 需保证$B$2:$B$8区域为从小到大排序,
MATCH(TRUE,$B$2:$B$8<=C2:C25,0)才能准确定位最大可用值 - 数组公式仅需在D2输入一次,自动填充至D25区域
内容的提问来源于stack exchange,提问作者Nathan L
相关产品推荐
相关产品推荐

