麻烦朋友们解释一下excel中的一段VBA代码,谢谢
D4和C4是excel当中的列
E4=IF(OR(0.7*D4>C4,C4>=1.3*D4),50,IF(AND(1.3*D4>C4,C4>=D4),50+40*(1.3*D4-C4)/D4/0.3,IF(AND(D4>C4,C4>=0.7*D4),90+10*(D4-C4)/D4/0.3,-1)))
麻烦朋友们帮忙解释一下这段代码的意思,谢谢,分部够可以再加
[解决办法]
up
[解决办法]
对Excel公式,简单的还行,复杂的不行。
帮顶一下吧。
[解决办法]
如果 0.7乘D4的值大于C4 或 C4大于或等于1.3乘D4的值,则E4的值等于50
如果 1.3*D4大于C4并且C4大于D4, 则E4的值等于50加上40*(1.3*D4-C4)/D4/0.3
如果 D4大于C4并且C4大于或等于0.7*D4,则E4的值等于90+10*(D4-C4)/D4/0.3
其余情况下,则E4的值等于 -1
[解决办法]
如果 0.7乘D4的值大于C4 或 C4大于或等于1.3乘D4的值,则E4的值等于50
如果 1.3*D4大于C4并且C4大于或等于D4, 则E4的值等于50加上40*(1.3*D4-C4)/D4/0.3
如果 D4大于C4并且C4大于或等于0.7*D4,则E4的值等于90+10*(D4-C4)/D4/0.3
其余情况下,则E4的值等于 -1
[解决办法]
跟着大胡子UP
[解决办法]
先看大的逻辑
E4=IF(OR(0.7*D4>C4,C4>=1.3*D4),50,IF(AND(1.3*D4>C4,C4>=D4),50+40*(1.3*D4-C4)/D4/0.3,IF(AND(D4>C4,C4>=0.7*D4),90+10*(D4-C4)/D4/0.3,-1))) if( 条件 ,真做, 假做 ) IF(AND(1.3*D4>C4,C4>=D4),50+40*(1.3*D4-C4)/D4/0.3,IF(AND(D4>C4,C4>=0.7*D4),90+10*(D4-C4)/D4/0.3,-1)) if( 条件 , 真做 , 假做 ) IF(AND(D4>C4,C4>=0.7*D4),90+10*(D4-C4)/D4/0.3,-1) if( 条件 , 真做 ,假做)
[解决办法]
再看细节
E4=IF(OR(0.7*D4>C4,C4>=1.3*D4),50,IF(AND(1.3*D4>C4,C4>=D4),50+40*(1.3*D4-C4)/D4/0.3,IF(AND(D4>C4,C4>=0.7*D4),90+10*(D4-C4)/D4/0.3,-1)))
*************************
OR(0.7*D4>C4,C4>=1.3*D4)
或的关系
0.7*D4>C4 和 C4>=1.3*D4 有一个为真即为真
————————————————————————
AND(1.3*D4>C4,C4>=D4)
和的关系
1.3*D4>C4 和 C4>=D4 全部为真才为真
————————————————————————
AND(D4>C4,C4>=0.7*D4)
和的关系
D4>C4 和 C4>=0.7*D4 全部为真才为真
[解决办法]
转换为 VB/VBA 的逻辑(下面的 C4、D4、E4指的是相应单元格的值):
If ((0.7*D4 > C4) Or (C4 >= 1.3*D4)) Then E4 = 50Else IF((1.3*D4 > C4) And (C4 >= D4)) Then E4 = 50+40*(1.3*D4-C4)/D4/0.3 Else If ((D4 > C4) And (C4>=0.7*D4)) Then E4 = 90+10*(D4-C4)/D4/0.3 Else E4 = -1 End If End IfEnd If
[解决办法]
如果 0.7乘D4的值大于C4 或 C4大于或等于1.3乘D4的值,则E4的值等于50,否则 如果 1.3*D4大于C4并且C4大于D4, 则E4的值等于50加上40*(1.3*D4-C4)/D4/0.3,否则 如果 D4大于C4并且C4大于或等于0.7*D4,则E4的值等于90+10*(D4-C4)/D4/0.3,否则 E4的值等于 -1