Office中国论坛/Access中国论坛

标题: 经纪人奖励函数 [打印本页]

作者: hellobear    时间: 2009-2-13 12:57
标题: 经纪人奖励函数
Function jjrjl(bjzcl, bzyj)
'经纪人奖励函数
   
    jjrjl = 0
   
   '1
    If bjzcl > 0 And bjzcl < 5000 Then
   
       jjrjl = Switch(bzyj >= 0.0015, ((bzyj - 0.0015) * 10000 * 0.05 + 1) * 50, bzyj < 0.0015, (1 - (0.0015 - bzyj) * 10000 * 0.2) * 50)
       jjrjl = Switch(jjrjl <= 0, 0, jjrjl >= 50 * 1.3, 50 * 1.3, jjrjl > 0 And jjrjl < 50 * 1.3, jjrjl)
      
       Exit Function
      
    End If
      
    '2
    If bjzcl >= 5000 And bjzcl < 20000 Then
       jjrjl = Switch(bzyj >= 0.0012, ((bzyj - 0.0012) * 10000 * 0.05 + 1) * 150, bzyj < 0.0012, (1 - (0.0012 - bzyj) * 10000 * 0.2) * 150)
       jjrjl = Switch(jjrjl <= 0, 0, jjrjl >= 150 * 1.3, 150 * 1.3, jjrjl > 0 And jjrjl < 150 * 1.3, jjrjl)
       Exit Function
   
    End If
   
    '3
    If bjzcl >= 20000 And bjzcl < 50000 Then
   
       jjrjl = Switch(bzyj >= 0.0012, ((bzyj - 0.0012) * 10000 * 0.05 + 1) * 250, bzyj < 0.0012, (1 - (0.0012 - bzyj) * 10000 * 0.2) * 250)
       jjrjl = Switch(jjrjl <= 0, 0, jjrjl >= 250 * 1.3, 250 * 1.3, jjrjl > 0 And jjrjl < 250 * 1.3, jjrjl)
      
       Exit Function
   
    End If
   
   '4
    If bjzcl >= 50000 And bjzcl < 20000 Then
   
       jjrjl = Switch(bzyj >= 0.001, ((bzyj - 0.001) * 10000 * 0.05 + 1) * 400, bzyj < 0.001, (1 - (0.001 - bzyj) * 10000 * 0.2) * 400)
       jjrjl = Switch(jjrjl <= 0, 0, jjrjl >= 400 * 1.3, 400 * 1.3, jjrjl > 0 And jjrjl < 400 * 1.3, jjrjl)
      
       Exit Function
    End If
   
   
   '5
    If bjzcl >= 200000 And bjzcl < 500000 Then
       jjrjl = Switch(bzyj >= 0.001, ((bzyj - 0.001) * 10000 * 0.05 + 1) * 600, bzyj < 0.001, (1 - (0.001 - bzyj) * 10000 * 0.2) * 600)
       jjrjl = Switch(jjrjl <= 0, 0, jjrjl >= 600 * 1.3, 600 * 1.3, jjrjl > 0 And jjrjl < 600 * 1.3, jjrjl)
      
       Exit Function
    End If
   
   
    '6
    If bjzcl >= 500000 And bjzcl < 2000000 Then
       jjrjl = Switch(bzyj >= 0.001, ((bzyj - 0.001) * 10000 * 0.05 + 1) * 800, bzyj < 0.001, (1 - (0.001 - bzyj) * 10000 * 0.2) * 800)
       jjrjl = Switch(jjrjl <= 0, 0, jjrjl >= 800 * 1.3, 800 * 1.3, jjrjl > 0 And jjrjl < 800 * 1.3, jjrjl)
      
       Exit Function
    End If
   
   
    '7
    If bjzcl >= 2000000 And bjzcl < 5000000 Then
     jjrjl = Switch(bzyj >= 0.0008, ((bzyj - 0.0008) * 10000 * 0.05 + 1) * 1000, bzyj < 0.0008, (1 - (0.0008 - bzyj) * 10000 * 0.2) * 1000)
       jjrjl = Switch(jjrjl <= 0, 0, jjrjl >= 1000 * 1.3, 1000 * 1.3, jjrjl > 0 And jjrjl < 1000 * 1.3, jjrjl)
      
       Exit Function
    End If
   
   
    '8
    If bjzcl >= 5000000 And bjzcl < 10000000 Then
       jjrjl = Switch(bzyj >= 0.0008, ((bzyj - 0.0008) * 10000 * 0.05 + 1) * 1500, bzyj < 0.0008, (1 - (0.0008 - bzyj) * 10000 * 0.2) * 1500)
       jjrjl = Switch(jjrjl <= 0, 0, jjrjl >= 1500 * 1.3, 1500 * 1.3, jjrjl > 0 And jjrjl < 1500 * 1.3, jjrjl)
      
       Exit Function
    End If
   
   
   
    '9
    If bjzcl >= 10000000 Then
       jjrjl = Switch(bzyj >= 0.0008, ((bzyj - 0.0008) * 10000 * 0.05 + 1) * 2000, bzyj < 0.0008, (1 - (0.0008 - bzyj) * 10000 * 0.2) * 2000)
       jjrjl = Switch(jjrjl <= 0, 0, jjrjl >= 2000 * 1.3, 2000 * 1.3, jjrjl > 0 And jjrjl < 2000 * 1.3, jjrjl)
      
       Exit Function
    End If
作者: todaynew    时间: 2009-2-13 13:34
超额累进(退)算法可以简化为
y=ax+b
b为速算系数。
这样可以用一张表存:区间编号、区间、比率、速算系数。
然后通过区间编号的引用,通过上述公式,计算需要的结果。
这样做的好处是数据便于维护,不至于去改VB代码中的数据。

仅供参考
作者: 咱家是猫    时间: 2009-2-13 13:49
看不懂,对经济人不熟
作者: andymark    时间: 2009-2-13 14:00
参数用表保存,简单易拓展
作者: ACMAIN_CHM    时间: 2009-2-13 15:09
超额累进(退)算法可以简化为
y=ax+b
b为速算系数。
这样可以用一张表存:区间编号、区间、比率、速算系数。
然后通过区间编号的引用,通过上述公式,计算需要的结果。
这样做的好处是数据便于维护,不至于去改 ...
todaynew 发表于 2009-2-13 13:34


个税的算法。这样比较容易。
作者: ynjxw    时间: 2012-2-17 14:30
todaynew 发表于 2009-2-13 13:34
超额累进(退)算法可以简化为
y=ax+b
b为速算系数。

能有个例子就好了。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3