2022-10-12 05:02来源:m.sf1369.com作者:宇宇
逻辑函数IF
语法:IF(logical_test,value_if_true,value_if_false)。
参数:logical_test是结果为true(真)或false(假)的数值或表达式;value_if_true是logical_test为true时函数的返回值,如果logical_test为ture并且省略了value_if_true,则返回true。而且value_if_true可以是一个表达式;value_if_false是logical_test为false时函数的返回值。如果logical_test为false并且省略value_if_false,则返回false。Value_if_false也可以是一个表达式。
应用实例一:个人收入调节税计算
假设个人收入调节税的稽征办法是:工资在1000元以下的免征调节税,工资1000元以上至1500元的超过部分按5%的税率征收,1500元以上至2000元的超过部分按8%的税率征收,高于2000元的超过部分按30%的税率征收。
假如工作表的B列存放职工姓名,C列存放工资,选中D列的空白单元格输入公式“=IF(C2<=1000,〃〃,IF((C2-1000)<=1500,(C2-1000)*0.05,IF(C2-E2<=1500,(C2-1500)*0.08,IF(C2>2000,(C2-2000)*0.3))))”,回车后即可计算出C2工资应缴纳的收入调节税。
公式中的IF语句是逐次计算的,如果第一个逻辑判断C2<=1000成立,则公式所在单元格被填入空格;如果第一个逻辑判断式不成立,则计算第二个IF语句;直至计算结束。如果税率征收标准发生了变化,只须改变逻辑和计算式中的值,如1000、1500和2000等即可。
应用实例二:消除无意义的零
用SUM函数计算工资总额等问题时,若引用的全部参数均为空白单元格,公式仍然会计算出一个“0”。这样打印出来的报表不仅很不美观。为此可将计算公式设计为“=IF(SUM(A1:B1,D2:E8)<>0,SUM(A1:B1,D2:E8),〃〃)”,即是当SUM(A1:B1,D2:E8)计算结果不等于零时,公式所在单元格显示SUM(A1:B1,D2:E8)的计算结果,否则显示一个空格。
上面这个问题在财务计算中依然存在,如公式“=A1-A6-A9”有可能为零或显示负数。为了避免打印零或负数,可以设计公式“=IF(A2-A6-A9=0,〃〃,IF(A2-A6-A9<0,RMB(A2-A6-A9),A2-A6-A9))”。当A2-A6-A9=0时在单元格中填写零,否则进行下一个逻辑判断。如果A2-A6-A9<0则在结果前添加一个“¥”符号,否则进行正常运算直至结束。
应用实例三:多条件求和
假设C1:C460区域内存放着职工的职称,D1:D460区域存放着职工的性别。如果要统计具有高级职称的男性职工总数,可以使用公式“=SUM(IF(C1:C460=〃高级〃,IF(D1:D460=〃男〃,1,0)))”。这是一个数组公式,输入结束后按住Ctrl+Shift回车即可计算出结果。
试一下以下:
S6=IF(P6>VLOOKUP(N6,'定义的名称!$M$2:$Q$100,5,0),0,15)
=IF(P4>=90,无提成,B4*LOOKUP(P4,{0;5;10;15;19;30;60;70;80;90},{17;13;10;7;5;0;-3;-5;-8}))
注意,你的公式中没有等于的情况,如等于5时返回什么?等于10时返回什么?另其中还有断号15到19中返回什么?
请先测试我的公式,如返回结果出错,请再追问,说明出错情况。
这个只用if写不了,因为if都是嵌套处理数据的,理论不能超过7层的。你这条件显然不止8个。
参考:
=IF(A1公式中有部分特殊数据也许不符合你的需要,比如 a1=4b1的时候,自己微调下吧。
B1:=IF(A1>=10,16,A1*4)
B2:=IF((A1>=20)*(A1<30),(A1-20)*8,)
B3:=IF(A1>=30,(A1-30)*14,)
=IF(A2<350,,IF(A2<451,1,IF(A2<771,2,IF(A2<1051,3,))))
=IF(A1>80,IF(A1<=83,B1+(A1-80)*5,B1+(A1-80)*10),IF(A1<75,B1-(75-A1)*20,B1-(80-A1)*5))
还有,你没表达清楚,到底是分段加减:0-75的-20,75-80的-5,80-83的+5,83以上的+10,还是这样的:
当A1=84的时候,在原来的基础上加3+5+10了还是4*10了?
嵌套函数:
=IF(条件1,IF(条件2,结果1,结果2),结果3)
有时结合AND、OR函数一起用,要看具体情况:
=IF(AND(条件1,条件2),结果1,结果2)
=IF(OR(条件1,条件2),结果1,结果2)
各位小伙伴都知道EXCEL中有条件计数函数(COUNTIF\COUNTIFS),有条件求和函数(SUMIF\SUMIFS),但是没有条件求最大值或最小值函数,那么如果我们想求符合条件的最大值时该怎么做呢?聪明的小伙伴们肯定立刻就想到了,使用MAX函数与IF函数的嵌套即可。。本案例数据如下:
员工某天打卡时间数据如上图,需要找出各员工该天的最晚打卡时间。
使用公式:=MAX(IF(F2=$C$2:$C$7,$D$2:$D$7,0)),因为需要用到数组,所以公式输入后需要按住ctrl与shift+enter进行确认,效果如下