作者:乔山办公网日期:
返回目录:excel表格制作
这个过于复杂,需要用vba写一个函数。
你可以试试,ALT+F11打开vba编辑器:复制下面的代码:
Public Function fen(w, j)
Dim a, b
If w - j < 0 Then
a = (j - w) / j
a = Application.Round(a, 2)
Select Case a
Case Is < 0.1
b = 20
Case 0.1 To 0.2
b = 20 - (a - 0.1) * 100 * 0.1
Case 0.2 To 0.3
b = 20 - (a - 0.2) * 100 * 0.2
Case 0.3 To 0.4
b = 20 - (a - 0.3) * 100 * 0.3
Case 0.4 To 0.5
b = 20 - (a - 0.4) * 100 * 0.4
Case Else
b = 20 - (a - 0.5) * 100 * 0.5
End Select
If b < 0 Then
b = 0
End If
ElseIf (w - j) / j > 0.05 Then
b = 20 + ((w - j) / j - 0.05) * 10
Else
b = 20
End If
fen = b
End Function
然后在excel里输入=fen(A2,B2) 如图:
即可。如果有不对的地方,e799bee5baa6e79fa5e98193e4b893e5b19e365请编辑vba代码相关数值。
假如数据在A1
B1输入公式=TEXT(IF(A1<=70%,0,MIN(IF(A1>70%,A1+(A1-70%)*2),100%)),"#%")
看图
c2输入公式:=AND(B2/$G$1>=1,B2/$G$1<=1.3)*(2-(B2/$G$1-1)*20)+AND(B2/$G$1<1,B2/$G$1>=0.9)*(2-(1-B2/$G$1)*10)
下拉
是你的基数在a列,在b2输入:
=if(a2<55%,-20*(55%-a2)+if(a2<45%,20*(45%-a2)-20(50%-45%),-20*(50%-a2)),if(a2=55%,(65%-55%)*20+(79%-65%)*10,20*(a2-55%)-if(a2<65%,0,10(a2-65%))))*100
函数解析:zd
1、当基数小回于55%时,答取每减小1%减少20,当不小于45%时额外每1%减少20,但当基数小于45%后,数值不再减小。
2、当基数等于55%时,取79%的系数值。
3、当基数大于55%时,取每增加1%增加20,当大于65%时,将原先每增加1%增加20减少到增加10。