佛山会计学院网:IF不可不用,不可多用
来源:
高顿网校
2014-07-11
高顿网校友情提示,*7佛山会计学院网上公布相关会计实务IF不可不用,不可多用等内容总结如下: 一、先说不可不用。
if最善于解决非此即彼、非男即女、非阴即阳、非前即后、非有即无的问题。如果问题的H答案H是二选其一,则除了if,没有更好的办法。比如学龄,以7岁为条件,if(H年龄H>=7,"已到学龄","未到学龄"),做这样的判断,任何函数方法都不会更简明于此了。
如果我们的问题都是这么简单就好了。
有一个著名的数组公式,其内核公式为:if(match(列起点:列终点,列起点:列终点,0)=row(列起点:列终点),row(列起点:列终点),""),作用是在一列中查找重复值各单项的所在行号,这个if就是不可或缺,不可不用的,因为到目前为止还没有其他更简明的办法来达到用公式筛选重复值的目的。但说穿了,if在这里所解决的,仍然还是一个非此即彼的问题。
再看一例:设A列为H姓名H,B列为数值,求姓名甲的数值合计。{=SUM(IF(A1:A15="甲",B1:B15))},其实也是一类问题,是{=SUM(IF(A1:A15="甲",B1:B15,0))}的一种简写,叫做非甲即0。而在数组公式中,*号可以用来替代AND,+号则可以替代OR,因此也可以进一步简写作{=SUM((A1:A15=F1)*B1:B15)},而且条件越多,越可以体现这种写法的优点,比如再加上一列月份,求甲在3月份的数值合计,你可以省下两个if,多用一个*号就可以了(自己试试?)
二、再来说不可多用。
为什么不可多用?大致是因为:一、会增加公式写入的强度;二、降低公式的可读性;三、降低运算速率;四、不利于脑力的发挥和开掘,使人懒惰。
例一:A1为一个数值,其范围为1-7,B1设置公式,按A1数值变化分别等于A-G。
先来看看纯粹使用if的解法:
=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","")))))))
是不是很麻烦?何止是麻烦,假如再增加两个条件,A1的数值范围为1-26,B1相应取值为A-Z,你又当如何?
if的嵌套*5可以为7层,上面的公式已经用到了极限。虽然说可以用一些旁门左道来“突破”这个限制,但也只是一种堆沙式的H游戏H,如上例,可以采用以下方式:=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",""))……
这样的用法,真是叫人兴味荡然,昏昏欲睡,EXCEL何必还要学下去,还不如去跟儿子摆积木更好玩呢!
所以说,if*4不要多用。不是说不能用,而是说用多了会叫人伤心。
其实EXCEL里准备了许多办法来替代上面的愚蠢的做法。
比如CHOOSE函数。=CHOOSE(A1,"a","b","c","d","e","f","g","h","i"),这是不是方便多了?CHOOSE的参数清单可以有29项之多,一般足够你使用了。如果还不够,那么请看下面:
=LOOKUP(A1,{1,2,3,4,5,6,7,8,9;"a","b","c","d","e","f","g","h","i"}),你可以尽情地输入参数,只要公式H内容H长度允许(规定公式内容长度为1024个字符)。
如果真的如例中所举,只是生成A-Z等字母的话,则只需=CHAR(A1+64)就可以了。当然,实际使用中这样的巧合实在是太少了,但作为一种方法还是有提及的必要。
一个if只能处理一个有无或是否的问题,即使这个问题可能是由诸多小的方面组合而成的。我们可以利用这一点,来达到替代if使用的目的。
例二:公司结算日期为每月24日,账目的月份一栏,如果超过24日,就要记为下月。
如果按照普通思路,公式应该是这样的:
=IF(DAY(A1)>24,IF(MONTH(A1)=12,1,MONTH(A1)+1),MONTH(A1))
要用到两个if判断,外层的是判断日期是否大于24,内层的是判断月份是否在12月,因为12月的下月是1月而非13月。现在对比一下下面的公式:
=MONTH(DATE(YEAR(A1),MONTH(A1)+1,0)+(DAY(A1)>24))
后者用了A1日期当月最后一天的序列值,最重要的是后面加了一个由判断是否大于24而生成的逻辑值,相当于=if(day(a1)>24,1,0)。逻辑值在公式设置中是一个很重要的概念,是对问题本身的逻辑关系的判断,其中TRUE=1,FALSE=0,生成的同样是有无或是否的结果,用得恰当,会使你的公式格外生动有趣。
是不是一定要少用if,以至于该用的也想办法不用?我曾经说,最少用到if的公式往往是*4的公式。之所以用“往往”来做限制,就是因为我没有根据来做一定如此的定论。凡事都要实事求是,具体情况具体分析。
例三:A1为性别,B1为年龄,C1标注是否退休。条件是男60岁,女55岁。
对这个问题,=IF(OR(AND(A1="男",B1>=60),AND(A1="女",B1>=55)),"退","未退")只用到一个if,但未必就比=IF(B1-IF(A1="男",5)>=55,"退","未退")更简洁,尽管后者用到两个if判断。当然我还是反对=IF(AND(A1="男",B1>=60),"退",IF(AND(A1="女",B1>=55),"退","未退"))这种用法的。
扫一扫微信,学习实务技巧
版权声明:本条内容自发布之日起,有效期为一个月。凡本网站注明“来源高顿教育”或“来源高顿网校”或“来源高顿”的所有作品,均为本网站合法拥有版权的作品,未经本网站授权,任何媒体、网站、个人不得转载、链接、转帖或以其他方式使用。
经本网站合法授权的,应在授权范围内使用,且使用时必须注明“来源高顿教育”或“来源高顿网校”或“来源高顿”,并不得对作品中出现的“高顿”字样进行删减、替换等。违反上述声明者,本网站将依法追究其法律责任。
本网站的部分资料转载自互联网,均尽力标明作者和出处。本网站转载的目的在于传递更多信息,并不意味着赞同其观点或证实其描述,本网站不对其真实性负责。
如您认为本网站刊载作品涉及版权等问题,请与本网站联系(邮箱fawu@gaodun.com,电话:021-31587497),本网站核实确认后会尽快予以处理。
严选名师 全流程服务
其他人还搜了
热门推荐
-
呆滞库存 2023-06-16
-
递延资产及其确认的依据 2023-06-16
-
主办会计 2023-06-16
-
预付货款 2023-06-16
-
银行间接与直接融资的比较 2023-06-16
-
银行融资 2023-06-16
-
收入核算 2023-06-16
-
借贷记账法的主要原理 2023-06-16
-
借贷记账 2023-06-16
-
试算平衡 2023-06-16
-
专用基金 2023-06-16
-
市场法及市场法的应用 2023-06-16
-
房地产的转换形式有哪些 2023-06-16
-
其他应付款的审计程序 2023-06-16
-
其他应付款和其他应收款的区别 2023-06-16
-
其他应付款和其他应收款的区别 2023-06-16
-
其他应付款 2023-06-16
-
会计监督职能的具体内容有 2023-06-16
-
平均收现期 2023-06-16
-
会计监督职能的监督体现 2023-06-16
-
会计监督职能的内容 2023-06-16
-
资产处置收益与营业外收支的区别 2023-06-16
-
资产处置收益 2023-06-16
-
年度利润总额 2023-06-16
-
多栏式明细账 2023-06-16
-
敏感性资产 2023-06-16
-
不相容职务的分离 2023-06-16
-
不相容职务 2023-06-16
-
自发性负债 2023-06-16
-
平均资产总额 2023-06-16