原公式:=ROUND(IF(R6>=20,0,IF(R6<20,(20-R6)*5*$E6,IF(R6<17,(20-R6)*20*$E6))),0)
只含判定R6的单元格是否≥20,若是,则显示“0”,没有包含楼主说的为0的时候也显示0,这是第一个问题。
IF(R6<20,(20-R6)*5*$E6,IF(R6<17,(20-R6)*20*$E6))
这个函数的逻辑有问题,系统先判断是否小于20,如果是,就执行“ (20-R6)*5*$E6 ”,不是才执行“ IF(R6<17,(20-R6)*20*$E6) ”,这与楼主的目的是相违背的。举个栗子,若R6单元格的数值为15,楼主本来是想按照(20-R6)*20*$E6计算,但结果却是按照(20-R6)*5*$E6这个来计算,因为15是小于20的,满足“ R6<20 ”这个条件。(楼主可以自己验证下)
正确公式:=ROUND(IF(OR(R6>=20,R6=0),0,IF(R6<17,(20-R6)*20*$E6,(20-R6)*5*$E6)),0)