Excel'如果'公式如何检查值是否小于x但超过y?

我有一个Excel如果公式,我有麻烦。

=IF(OR(C7<9.97, D7<9.97, E7<9.97, F7<9.97), "NG", IF(OR(C7>10.03, D7>10.03, E7>10.03, F7>10.03), "NG", IF(OR(C7=0, D7=0, E7=0, F7 = 0), "N/A", "OK"))) 

对于那些有麻烦的人(我不怪你…)公式分为4个步骤。

1)如果单元格C7,D7,E7和F7中的值小于9.97,则该单元格将生成NG。

2)如果单元格C7,D7,E7和F7中的值大于10.03,则该单元格也将生成NG。

3)如果单元格C7,D7,E7和F7中的值等于0,则该单元格将生成N \ A。

4)如果以上条件都不符合,这个单元格会生成OK。

到目前为止,他们都工作得很好,除了3)。 由于1)涵盖了所有低于9.97的值,包括0以及默认为NG,这不是我想要的。

在我的脑海中,我打算改变1)的IF语句,以便它将检查值小于9.97但不等于0,但我不太清楚如何解决它。 有人可以帮我吗?

你可以统一前两个条件,如下所示:

 =IF(OR(C7<9.97, D7<9.97, E7<9.97, F7<9.97, C7>10.03, D7>10.03,E7>10.03, F7>10.03), "NG", IF(OR(C7=0, D7=0, E7=0, F7 = 0), "N/A", "OK"))) 

然后改变这样的条件的地方,所以你先检查=0

 =IF(OR(C7=0, D7=0, E7=0, F7 = 0), "N/A", IF(OR(C7<9.97, D7<9.97, E7<9.97, F7<9.97, C7>10.03, D7>10.03,E7>10.03, F7>10.03), "NG", "OK"))) 

就像脚注一样,由于单元格处于连续范围内,因此可以使用countif将其缩短:

 =IF(COUNTIF(C7:F7,0),"N/A",IF(COUNTIF(C7:F7,"<9.97")+COUNTIF(C7:F7,">10.03"),"NG","OK"))