我的自定义函数,通用百分比计算公式
在诸位帮助下,总算解决了一个很菜却很有用的难题,大家的成果,还奉献给大家。
通用百分比计算公式,尤其是负计划,正执行,那就更嫌麻烦。
实务中,如果利润计划为正还简单一些,这也有个执行中为亏损的问题;
如果利润计划为负数,那情况就复杂了:有比计划减亏的,有比计划增亏的,还有扭亏为盈的。从上例结果看,如下例,计算显然是比较复杂的。
计划 执行 完成占比
100 150 150
100 50 50
100 -50 -50
100 0 0
100 -190 -190
100 -200 -200
100 210 210
-100 -50 150
-100 -210 -10
-100 -190 10
-100 -500 -300
-100 50 250
-100 -300 -100
-100 400 600
假设计划、执行、完成百分比都在第2行,公式如下:
C2=IF(A2>0,100*B2/A2,IF(AND(A2<0,B2<0,B2>A2),(A2+B2)/A2*100,IF(AND(A2<0,B2<0,B2>=2*A2),100-(B2-A2)/A2*100,IF(AND(A2<0,B2>0),((-2*A2+B2)/A2)*-100,(B2-A2)/A2*-100+100))))
你如不嫌弃,将以上公式粘贴到你相应的EXCEL文件中稍加修改就可,之所以要稍加修改,是因为在你的表格中,计划数、执行数、结果不一定就在A3、B3、C3单元格。
以上公式如果用EXCEL自带的VB工具,写成一个简短的程序,原代码并不比公式复杂多少,反而更容易理解。原代码如下:
Function bfb(计划, 执行) ‘函数名:bfb ,两个参数:计划, 执行
If 计划 > 0 Then
bfb = 100 * 执行 / 计划
ElseIf 计划 < 0 And 执行 < 0 And 执行 > 计划 Then
bfb = (计划 + 执行) / 计划 * 100
ElseIf 计划 < 0 And 执行 < 0 And 执行 >= 2 * 计划 Then
bfb = 100 - (执行 - 计划) / 计划 * 100
ElseIf 计划 < 0 And 执行 > 0 Then
bfb = ((-2 * 计划 + 执行) / 计划) * -100
Else
bfb = (执行 - 计划) / 计划 * -100 + 100
End If
End Function
如有兴趣,试试??
[此贴子已经被作者于2003-6-12 8:40:22编辑过] |