我有一组数据,我需要使用包含AND运算符的IF语句,并比较第1行到第2行,然后是3到4行等。我最关心的是公式中的失败。它可以工作(不产生任何错误),但不会返回我预期的值。我已经在这里完成了搜索,并根据其他人发布的建议编写了我的公式,但我无法解释结果中的差异。我的数据如下:
+------+------+------+
| ColA | ColB | ColC |
+------+------+------+
| 60 | 160 | 38 |
| 22 | 22 | -38 |
+------+------+------+
我在D栏第1行和第2行有公式。
第1行公式如下所示,并返回预期值5: = IF(C1&GT = 12,5,IF((C1< = 11 *和(B1> B2)),3,0))
第2行公式如下所示,但返回值3而不是预期的0: = IF(C2&GT = 12,5,IF((C2< = 11 * AND(B2> B1)),3,0))
我认为我的AND做错了。正如它(对我而言),这两个陈述都不应该是真的,应该返回0。第一部分是真的,C2小于11,它是-38。第二部分不是真的,B2不大于B1。
感谢任何帮助。
答案 0 :(得分:0)
使用AND()的正确方法:
=IF(C1>=12,5,IF(AND(C1<=11,B1>B2),3,0))
第2行中的:
=IF(C2>=12,5,IF(AND(C2<=11,B2>B1),3,0))
答案 1 :(得分:0)
AND函数(以及OR函数)使用的语法结构不像它可能&#34;读取。&#34;例如,在某些编程中,&#34; AND&#34;是一个运算符,介于两个逻辑测试之间,如下所示:
If a=b AND a=c Then...
这很容易&#34;阅读&#34; as&#34;如果a等于b 和 a等于c则...&#34;
但是,在Excel公式中,AND是一个需要参数的函数,这些参数是要执行的逻辑测试。因此,上面的相同测试将被编写为Excel公式,如:
=IF(AND(a=b,a=c), "Both were equal", "Not both were equal")
因此,如果我已正确理解您的公式的目的,我相信您的公式=IF(C1>=12,5,IF((C1<=11*AND(B1>B2)),3,0))
应该写成:
=IF(C1>=12,5,IF(AND(C1<=11,B1>B2),3,0))
如果C1大于或等于12,则返回5.如果不是,那么如果C1小于或等于11 且 < / strong> B1大于B2,然后返回3.如果不是,则返回0.&#34;