加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Excel中IF函数的嵌套用法

(2015-09-25 08:47:14)
标签:

excel

函数

公式

分类: Excel函数

ExcelIF函数的嵌套用法

函数格式: 

if(logical_test,value_if_true,value_if_false) 其中:“logical_test”表示设定的条件,“value_if_true”表示当目标单元格与设定条件相符时返回的函数值,“value_if_false”表示当目标单元格与设定条件不符时返回的函数值。 

一、IF函数的语法结构: 

     IF:是执行真假值判断,根据逻辑测试的真假值返回不同的结果。 语法结构:IF(条件,结果1,结果2)  

二、操作方法  

     打开所需软件Excel,输入所需的的表格,再找到所填等级资料的第一行,然后,找到工具栏的的“fx”或者点菜单“插入”→“fx函数” →在出现的粘贴函数窗口中选择“全部” →移动滚动条选择“IF”此时出现IF函数编辑窗口,在第一个文本框内输入第一个条件,第二个文本框内输入第一个条件结果,第三个文本框内输入以后所有的 条件并相应的结果。如公式  IF(B2>89,"A",IF(B2>79,"B",IF(B2>69,"C",IF(B2>59,"D","F")))) 第一条件B2>89,第一条件结果"A",第三个文本框输入:IF(B2>79,"B",IF(B2>69,"C",IF(B2>59,"D","F"      

第二个方法是在编辑公式栏内直接输入以下的公式。 

三、示例 

1、在学生成绩工作表中,单元格 B2中包含计算当前成绩等级的公式。如果 B2 中的公式结果大于等于 60,则下面的函数将显示“及格”,否则将显示“不及格”。      

     条件   结果  结果

IF(B2>=60,"及格","不及格") 

2、如果要给以学生成绩为名称所引用的数字设置字母级别,请参阅下表:  

学生成绩统计情况

大于 89

80  89

70  79

60  69

小于 60

A或优

B或良

C或中

D 或及格

F或差

   可以使用下列嵌套 IF 函数:  

IF(B2>89,"A",IF(B2>79,"B",IF(B2>69,"C",IF(B2>59,"D","F"))))  

IF(B2>89,"",IF(B2>79,"",IF(B2>69,"",IF(B2>59,"及格","")))) 还有一种方法为:  

IF(B2<60,"F", IF(B2<=69,"D", IF(B2<=79,"C", IF(B2<=89,"B","A",))))   

IF(B2<60,"",IF(B2<=69,"及格",IF(B2<=79,"",IF(B2<=89,"","")))) 

当在第一个空格出现结果后,下面结果如下操作:按住Ctrl   把鼠标放在格子右下角,当鼠标变成十字时间向下拖动,即可产生所有结果。

 注:

1B2是所要计算的值所在的列和行号,“B”为列号,数字“2为第一个值所在的行。

2IF函数的结尾的“)”反括号的个数应为IF的个数。如:IF(B2<60,”差”IF(B2<=69,”及格”,IF(B2<=79,”中”,IF(B2<=89,”良”,”优”)))),有4IF,所以用了4个“)”。

Excel 如何实现函数IF的嵌套超过七层

1.将七层之外的IF语句,放在另外的单元格内来处理,例:C5=if(if,...,(if...),B5))),B5单元格就是存放七层之外的IF语句。依此类推,可以实现在数据库语言中CASE语句的功能。  

2.IF 函数的确有七层嵌套的限制。遇到七层嵌套还解决不了的问题,可以尝试用其它的函数组合和数组公式来解决;有时用 VBA 方案可以有很好的效果。  

这里给出一个解决IF函数嵌套超出范围的方法,可能比较容易使初学者看懂。其思路是:一个单元格做不了的事,分给两个或更多的单元格来做,文字内容是这样,函数内容也是这样。  

例子:假如 A11,则 B1AA12,则 B1B „„ A126,则 B1

解决方法如下:   

B1 =

IF(A1=1,"A",IF(A1=2,"B",IF(A1=3,"C",IF(A1=4,"D",IF(A1=5,"E",IF(A1=6,"F",IF(A1=7,"G",IF(A1=8,"H",C1))))))))  

C1 =

IF(A1=9,"I",IF(A1=10,"J",IF(A1=11,"K",IF(A1=12,"L",IF(A1=13,"M",IF(A1=14,"N",IF(A1=15,"O",IF(A1=16,"P",D1))))))))  

D1 =

IF(A1=17,"Q",IF(A1=18,"R",IF(A1=19,"S",IF(A1=20,"T",IF(A1=21,"U",IF(A1=22,"V",IF(A1=23,"W",IF(A1=24,"X",E1)))))))) 

 E1 = IF(A1=25,"Y",IF(A1=26,"Z","超出范围"))  

根据情况,可以将 CDE 这些从事辅助运算的单元格放在其它任何地方 

3.   一个单元格也可以实现  

=IF(A1=1,"A",IF(A1=2,"B",IF(A1=3,"C",IF(A1=4,"D",IF(A1=5,"E",IF(A1=6,"F",IF(A1=7,"G",IF(A1=8,"H",""))))))))&IF(A1=9,"I",IF(A1=10,"J",IF(A1=11,"K",IF(A1=12,"L",IF(A1=13,"M",IF(A1=14,"N",IF(A1=15,"O",IF(A1=16,"P",""))))))))&IF(A1=17,"Q",IF(A1=18,"R",IF(A1=19,"S",IF(A1=20,"T",IF(A1=21,"U",IF(A1=22,"V",IF(A1=23,"W",IF(A1=24,"X",""))))))))&IF(A1=25,"Y",IF(A1=26,"Z",""))(数组形式输入) 

5.  以一例:a1=1,2,3,4,5,6,7,8,9,10  

6.   b=if(a1=1,"",if(a1=2,"",if(a3=3"",.......if(a1=9,"",if(a1=10,"")))))),if超过7层不起作用,我该如何办  

解答:1b=if(a1>5,if(a1=6,""。。。。。。)),明白意思?就是截为两段再做判断,这样可以不超过7重。  

2、可以用自定义数字格式。也可以用=CHOOSE(A1+1,"一二三四五六七八九十") 

问:实际上我的要求是现行高一成绩统计中:b=if(a1="语文","语文",if(a1="数学","数学",if(a1="英语","英语",if(a1="物理","物理",if(a1="化学","化学",ifa1="历史","历史",if(a1="政治",政治",if(a1="生物","生物“,if(a1="地理","地理")))))))),这样超过了7层。我不知如何处理。因为下面的公式要引用语、数、英、等。  

答:新建一表,取名Data,找一区域设置名称为SubjectTable 

语文 Chinese 

英语 English 

……

=vlookup(SubjectTable,a1,2,false)可以有65536个,够了吧。其实,稍加改进,理论上,可以有达到你硬盘空间的个数。或用ifor的组合可以解决15个。  

再举个例子: 

 =IF(A16="","",IF(B16="","样办尚未交",IF(OR(B16="内部检查中",B16="数据查询中",B16="数据查询中"),CONCATENATE(IF(B16="内部检查中","品质检测中",""),IF(B16="数据查询中","图纸未确认",""),IF(B16="为不合格","需要修正 ","")),CONCATENATE(IF(C16="客户检查中","待客回复",""),IF(C16="合格","P/O生产",""),IF(C16="取消","客户取消",""),IF(C16="为客户设变中","客户设变中",""),IF(C16="不合格","需要修正","")))))

从个人所得税的计算谈IF函数的使用     

最近,国家采取提高公务员和职工的工资水平,低收入阶层的收入的政策以启动消费推动经济增长,相当一部分人工资收入达到和超过了交纳个人所得税的水平。根据我国税法的规定,个人所得税是采用超额累进税率分段计算,

见下表:

级数

应纳税所得额

税率 %

速算扣除数

1

不超过500元的

5

0

2

超过5002000元的部分

10

25

3

超过20005000元的部分

15

125

4

超过500020000元的部分

20

375

5

超过2000040000元的部分

25

1375

6

超过4000060000元的部分

30

3375

7

超过6000080000元的部分

35

6375

8

超过80000100000元的部分

40

10375

9

超过100000元的部分

45

15375

这时,用ExcelIF函数来进行计算是再方便不过的了。对原工资表只要增加“应纳税所得额”和“应交个人所得税”两列就可以,“应纳税所得额”根据“应发工资”数扣除800元和其他可免税的部分计算(这一列也可省略),“应交个人所得税”设在工资表的应扣金额部分,将其象“代扣房租”等等项目一样作为工资表中的一个扣除项目,计算个人所得税的公式就设置在此列。    

Excel中的逻辑函数IF一个适用范围很广,功能极强的函数,IF函数在工作表中的用途是用于对数值和公式进行条件检测,然后根据不同的检测结果,返回不同的结果(执行不同的操作命令)。它的这种功能用来判断应纳税所得额的适用税率再合适不过。

理解IF函数在计算个人所得税中的用法 

IF函数的语法  IF(参数1,参数2,参数3     

该函数的含义是在单元格中以参数1为条件进行检测,当检测结果符合参数1时,执行参数2的命令,反之则执行参数3的命令。其中:参数1为函数执行检测的条件,它一般是一个公式或一个数值表达式,参数2和参数3可以是显示一个字符串、显示一个数值或显示某一公式的计算结果。参数之间用半角的“,”隔开,字符串也要用半角引号括住。    

设工资表中“应纳税所得额”在E列,“应交个人所得税”在H列。我们要在H列的各行设置IF函数公式,由函数公式来对E列各行的应纳税工资进行判断,并自动套用适用税率和速算扣除数计算应纳税额。可在H列设置函数(以第2行为例)     

IF(E2 > 100000E2*0.45-15375IFE2 > 80000E2*0.40-10375IF(E2 > 60000E2*0.35-6375IF(E2 > 40000E2*0.30-3375IF(E2 > 20000E2*0.25-1375IF(E2 > 5000E2*0.20-375IF(E2 > 2000E2*0.15-125IF(E2 > 500E2*0.10-25E2*0.05 ) ) ) ) ) ) ) )    

该函数十分亢长,其中嵌套了7个同样的IF函数,从第2IF 函数开始到最后是第1个嵌套函数,从第3IF开始到最后是第2个嵌套函数„„,为帮助理解,我们将这些嵌套函数分别设为X1X2、„„于是将整个函数简化如下:    

IFE2 > 100000E2*0.45-15375X1     

该函数意为:当E2中工资额大于100000元时,H2中计算出的应纳所得税额为E2*45%-15375,否则(指当工资额等于或小于100000元时),则H2应按X1的方法计算;把X1展开:    

 IFE2 > 80000E2*0.40-10375X2     

其含义与上面相仿。最后一个嵌套函数X7展开为:    

IFE2 > 500E2*0.10-25E2*0.05     

该函数意为:当E2中工资额大于500元时,H2中计算出的应纳所得税额为E2*10%-25,否则(当工资额等于或小于500元时),H2等于E2*5%     

怎么样,明白了吗?够复杂的,好在计算个人所得税只有一种规定,将别人的公式搬过来用就是了。一般单位个人的工资不会高的太吓人,我们可根据人员的实际工资水平减少函数的嵌套数目简化运算。    

学会灵活使用IF函数     

从以上计算个人所得税的例子中可以看出,学会在Excel的工作表中运用这个函数设定各种条件,可实现许多特定的操作要求,起到事半功倍的作用。本文再举几个实例来讲解IF函数的使用方法,读者们可举一反三,在自己的Excel工作表中灵活运用。

IF函数的参数1中含有两个或两个以上的检测条件时,就要在参数中嵌套另外两个逻辑函数ANDOR了。

设单元格A4的数值只能严格为正小数,当A4符合此条件时,则在B4中显示该数值,否则提示错误信息。

A4的条件看它应同时满足>0且<1的要求,因而应结合运用AND函数,在B4中建立函数如下:    

 =IFAND0A4A41),A4"数值超出范围"

设单元格A4的数值应该是绝对值大于10的任何数值,当A4符合此条件时,则在B4中显示该数值,否则提示错误信息。

这里A4的条件既可>10又可<-10,两个条件只要满足一个即可,因而应结合OR函数,在B4中建立函数如下:    

=IFOR10A4A4<-10),A4"数值超出范围"      

从以上例子可以看出,IF函数是一个十分有用的函数,要用Excel,不可不学IF函数。本文所举例子并不能包括它的所有用法,相信大家一定能发现IF 函数的更多功能。

  发奖金:            姓名       销售额      奖金  

10000以内的提1             王五        5124       51.24

20000以内的提1.2            赵六        25135     402.16 

30000以内的提1.4            黑七        2154      21.54  

40000以内的提1.6            白云        1354     341.664 

50000以内的提1.8            红枣        45111    811.998

50000以上的提2              啊好       851352   17027.04

  公式:

=IF(C4<=10000,C4*0.01,IF(C4<=20000,C4*0.012,IF(C4<=3000,C4*0.014,IF(C4<=40000,C4*0.016,IF(C4<=50000,C4*0.018,IF(C4>50000,C4*0.02))))))  

  取款       

654321卡资料                      请插入磁卡!    

卡号 654321                              卡号:  654321 

密码 123456                        请输入密码!    

余额 1000                              密码:  123456       

请输入您要支取的 数额       

金额:  5000                

取款机反 应: 对不起你的卡上金额不足,请重输! 

公式: 

=IF(E16="","请插入磁卡!",IF(E18="","输入密码!",IF(OR(E16<>B16,B17<>E18),"您的磁卡无效,或密码不正确,请重新输入",IF(E20="","请输入金额!",IF(E20>B18,"对不起你的卡上

10 12   金额不足,请重输!",IF(INT(E20/50)*50<>E20,"对不起,您输入的金额应是50的倍数!","您的申请成功,系统正在操作中,请稍候„ "))))))   

大凡所有的程序都是从这些最基础的判断做起的,例2模仿了取款机用户取款的反应过程。实际的程序比这复杂的多,但原理是一样的。看起来公式很长,但是它是由几个很简单的IF函数嵌套而成的。实际的应用当中有很多是比这个复杂的。 

我们看这一段公式:=IF(E16="","请插入磁卡!",IF(E18="","输入密码!",„„,p 里面是两个IF的嵌套,第一个if:条件E16=""成立执行第一个分支 "请插入磁卡!" 就不管后面的了,因为对于第一个IF来说后面的公式只是其中的一个参数。同理,条件E16=""不成立,excel就不理第一个分支了,就会直接跳到第二个分支了:IF(E18="","输入密码!",„„ 碰到第二个if时,又对条件E18=""进行判断,条件E18=""成立执行它的第一个分支"输入密码!",不成立又会跳过第一个分支"输入密码!",执行后面的公式,以此类推......  

再示例: 

=if(a2>700,">700",if(a2>600,"600-699",if(a2>500,"500-599",if(a2>400,"400-499",if(a2>300,"300-399",if(a2>200,"200-299",if(a2>100,"100-199","<100")))))))   

新税率如何利用EXCEL计算个人所得税  国家税务局国税发(2011)第20号规定工资、薪金所得,以每月收入额减除费用3500元后的余额,为应纳税所得额,计算征收个人所得税。  个人所得税为超额累进税,即超过一定的额度后按不同的税率计算。税率表如下:

  级数 含税级距  下限  上限 税率 速算扣除数 上下限差 

1 不超过1500元的  0 1500 3% 0 1500

2 超过1500元至4,500元的部分 1500 4500 10% 105 3000

3 超过4,500元至9,000元的部分 4500 9000 20% 555 4500

4 超过9,000元至35,000元的部分 9000  35000  25% 1005 26000

5 超过35,000元至55,000元的部分 35000 55000 30% 2755 20000

6 超过55,000元至80,000元的部分 55000 80000 35% 5505 25000

超过80,000元的部分  80000 1E+308  45%  13505  1.E+308   

假设税前收入为8400(为简化说明不考虑社保公积金等),那么应纳税额为8400-3500=4900元, 

本文件中定义名称X=K24 

为了便于理解超额累进税的课税原理,我们用坐标轴形象直观的说明: 

以下各图中,坐标轴上方的值为临界值(此处只标注到20000),坐标轴下方的值为相临临界值的间隔。 

根据个人所得税的计税原理,我们可以采取最少13种方法计算个人所得税,这里只举5种代表13种方法,因为以下讲解中的第四种,按9个税率计算的话,就是13种方法。

 第一种:4900=1500+3000+500 那么所得税应当为:

=1500*3%+3000*10%+400*20%  超额累进法运用此原理的相应的Excel公式比较少,

我此处给出一例 

=SUM((X>=D8:D14)*(E8:E14)*(G8:G14))+MIN(X-((X>=C8:C14)*(C8:C14)))*MAX((X>=C8:C14)*(E8:E14))  此公式较长,实用性不大,只在公式栏按F9,即可转为常量数组公式 第二种: 速算扣除数法 

可能有人会问,速算扣除数是怎么计算得出的?在些我们先简单介绍一下速算扣除数的由来 速算扣除数实际上是在级距和税率不变条件下,全额累进税率的应纳税额比超额累进税率的应纳税额多纳的一个常数。 

因此,在超额累进税率条件下,用全额累进的计税方法,只要减掉这个常数,就等于用超额累进方法计算的应纳税额,故称速算扣除数。

速算扣除数计算公式推导过程 

1级速算扣除数等于0,因为此处的全额累进税等于超额累进税 

2级速算扣除数,4500按全额累计计算,4500*10%,但1500部分已经交纳3%的税,因此多交纳的税为1500*(10%-3%) 

3级速算扣除数,4900按全额累进计算,4900*20%,但1500已按3%计算,3000已经按10%交税,

多交的税为

1500*(20%-3%)+3000*(20%-10%)=4500*20%-1500*3%-3000*10%=4500*(20%-10%)+1500*(10%-3%) 依此类推,但出速算扣除数公式如下: 

本级速算扣除额=上一级最高所得额×(本级税率-上一级税率)+上一级速算扣除数

那么理解了上述原理后,

公式 =4900*20%-555 

运用速算扣除数计算税的公式特别多,如IF函数法,Vlookup+辅助列方法等,对应EXCEL公式,此类公式直观,易理解,所以不做解释

此处仅解释比较难理解的一个公式,Max函数法 

=MAX(X*0.01*{3,10,20,25,30,35,45}-5*{0,21,111,201,551,1101,2701},0)

=MAX(X*0.01*{3,10,20,25,30,35,45}-5*{0,21,111,201,551,1101,2701},0) 

我们知道个税的起征点为3500,因此X少于等于3500时,不需交税,故要用得出的数值与0进行比较。 

为什么根据各级税率减速算扣除数的最大值为应交税呢?

分解公式的结构 

第一部分即X*0.01*{3,10,20,25,30,35,45}为全额累进计算的税 

第二部分5*{0,21,111,201,551,1101,2701}为速算扣除数,即全额累计计算所得税-超额累计应纳税  那么为什么最大值就是正确的税呢?原因就在于减去重复计算值得时候,公式直接按照重复的区间计算减去值,减去的比正常减去的多。 所以高税率计算出的值是一个错误值。 

所以, 该公式计算得到的数组中最大值只有一个,等于合适税率下计算的答案。而比这个值小的数显然都不是正确答案。

以上述X为例子说明:  

=MAX(X*0.01*{3,10,20,25,30,35,45}-5*{0,21,111,201,551,1101,2701},0)

=MAX({147,385,425,220,-1285,-3790,-11300},0)

4900按高税率20%计算时,多计算的税应当是=1500*3%+3000*10%+400*20%=555 

而运用速算扣除数时,是按高一区间的速算扣除数(多计算的税)计算的,

上述公式中5*111计算的 

所以按高税率计算时,减去多计算的税时(速算扣除数),比正常减去的要多 所以,公式中的最大值才是正确结果。

第三种方法: 全额累进减多算的税 

这实际上是根据计算速算扣除数的原理来计算税 

如果490020%计算,那么对应的1500由于已经按1500*3%计算过一次税,所以500部分多计的税是1500*20%-5% 

相应的3000部分,由于3000部分已经按10%计算过税,所以3000部分多计的税是3000*20%-10%

相应的计算公式如下:

 =4900*20%-3000*10%-1500*17% EXCEL中应用此原理的也不多  =X*MAX((X>=C8:C14)*(E8:E14))-SUM((X>=D8:D14)*(G8:G14)*(MAX((X>=C8:C14)*(E8:E14))-E8:E14)) 

=SUMPRODUCT(TEXT(4900-D8:D14,"0;!0")*{3;7;10;5;5;5;10}%) =SUMPRODUCT(TEXT(4900-D8:D14,"0;!0")*{3;7;10;5;5;5;10}%) 

第四种方法: 按最低档的3%计算 

假如都按3%来计税,怎么算?4900都按3%计税时,其中的可以看到1500部分已经交纳其应交的税 

3400也按3%计算了税,而3000本应按10%计算税,40020%交税,而4900部分的3400已经按3%交了一部分税  所以说3000部分只应再交7%的税,如果此时400再交7%的税,那么最后400只要再交10%的税就是全部应该交纳的全部税 那么计算公式:  =400*10%+3400*7%+4900*3% 

为了进一步理解,对上述公式分解后就是:

 4900*3%=1500*3%+3000*3%+400*3%  3000少交7%400少交17%,那么再交变化 3400*7%=3000*7%+400*7%  那么最后400再交10%就是全部应交的税即400*10% 对应的Excel公式

  =SUM(TEXT(X-C8:C14,"0;!0")*{3,7,10,5,5,5,10}*0.01)     

上述公式只要把D9D16在公式编辑栏中用F9变为常量数组,即可移植到您需要的地方。  此公式在Excel中应用比较广泛。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有