作者:钟伟
时间:2008年01月09日
在许多用户在使用 Excel中的 IF公式设置,可以非常高效的 简化工作数据处理,但由于 IF公式在设计时限制了层数(在 Excel中 IF本身只能嵌套 7层),所以导致在许多应用中无法正常使用(如计算个人所得税)。下为新的个人所得税率表:
级数 |
全月应纳税所得额 |
税率 % |
速算扣除法(元) |
1 |
不超过 500元的 |
5 |
0 |
2 |
超过 500元至 2000元的部分 |
10 |
25 |
3 |
超过 2000元至 5000元的部分 |
15 |
125 |
4 |
超过 5000元至 20000元的部分 |
20 |
375 |
5 |
超过 20000元至 40000元的部分 |
25 |
1375 |
6 |
超过 40000元至 60000元的部分 |
30 |
3375 |
7 |
超过 60000元至 80000元的部分 |
35 |
6375 |
8 |
超过 80000元至 100000元的部分 |
40 |
10375 |
9 |
超过 100000元的部分 |
45 |
15375 |
此时利用 IF由于限制无法直接进行计算。所以许多朋友会建议利用 VBA实现。其实通过优化 IF公式,其本身也可以实现。
其实大家都 IF公式格式: IF(条件,成立计算,不成立计算),所以对此类非常复杂的分支计算,建议可以进行分段计算,如上表数据以级数 5进行分支, 20000元以下为一大分类, 40000以上为另一大分大,从而扩展 IF公式的使用层数,
对于上表数据建立 IF公式如下:
=IF(L4<=20000,
IF(L4>5000,K4*0.2-375,IF(L4>2000,K4*0.15-125,IF(L4>500,K4*0.05,0))),
IF(L4<=40000,K4*0.25-1375,IF(L4<=60000,K4*0.3-3375,IF(L4<=80000,K4*0.35-6375,IF(L4<=100000,K4*0.4-10375,K4*0.45-15375))))
)
希望通过此案例告诉大家:公式可以进行变通使用,在默认方式无法实现时,可以进行转化实现!!