这个公式是做什么的?

我试图理解这个Excel公式,并理解IF语句,但不是这个结构。 AND是做什么的?

=IF(AND(C8>59,C8<65),5%, IF(AND(C8>64,C8<70),5.5%, IF(AND(C8>69,C8<75),6%, IF(AND(C8>74,C8<80),6.5%, IF(AND(C8>79,C8<85),7%, IF(AND(C8>84,C8<90),7.5%, IF(AND(C8>89,C8<250),8%) ) ) ) ) ) )*D8 

AND函数接受两个布尔input,如果它们都为真则返回TRUE

整个公式查看单元格C8的值并返回以下内容:

如果C8在59和65之间,则为5%

5.5%如果C8在64和70之间,

如果C8在69和75之间则为6%等等。

哦,这是乘以无论是在单元格D8find

这(几乎)相当于:

 60 64 0.05 65 69 0.055 70 74 0.06 75 79 0.065 80 84 0.07 85 89 0.075 90 0.08 =VLOOKUP(C8,$A$1:$C$7,3,TRUE) 

AND()函数意味着函数的“所有参数必须为真”才能评估为真。 因此,你的第一行=IF(AND(C8>59,C8<65),5%,...意思是“如果C8在69到65之间,返回5%,否则继续下一行。 excel IF语句的结构为IF(conditional, true result, false result) ,如果公式中每行的语句不正确,则评估继续到下一行,否则停止并返回该行的百分比。

AND允许您在多个语句中检查布尔条件。

http://support.microsoft.com/kb/267982

Excel的AND采用2个或更多的参数,所有的参数都必须计算为true,以使最终的结果为真。 在这种情况下,单元格C8与2个值进行比较,以创build“之间”类似的构造。

用某种伪代码来重写,这可能是这样的:

 if ((C8>59) and (C8<65)) then // meaning, for all values between 60 and 64, return 5% returnvalue = 5% else if ((C8>64) and (C8<70)) then // meaning, for all values between 65 and 70, return 5.5% returnvalue = 5.5% 

等等

轻松阅读是..

IF C8> 59和C8 <65结果是D8 * 5%
IF C8> 64和C8 <70结果是D8 * 5.5%
IF C8> 69和C8 <75结果是D8 * 6%
如果C8> 74且C8 <80结果是D8 * 6.5%
IF C8> 79和C8 <85结果是D8 * 7%
IF C8> 84,C8 <90结果是D8 * 7.5%
IF C8> 89,C8 <250结果是D8 * 8%

所以如果你的C8是66D8是5那么结果是5 * 0.55 = 2.75