安越咨询|专业致力于财务管理培训
财务培训在线报名   
| 首 页 | 关于我们 | 公开课程 | 企业内训 | 咨询服务 | 讲师介绍 | 工作机会 | 财务天地 | 联系我们 |
您当前的位置:安越咨询首页 财务天地 -> 财务管理文摘 -> 更多财务管理文萃 -> 文章内容

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的嵌套最大可以为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最好不要多用。不是说不能用,而是说用多了会叫人伤心。 
  其实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的公式往往是最好的公式。之所以用“往往”来做限制,就是因为我没有根据来做一定如此的定论。凡事都要实事求是,具体情况具体分析。 
  例三: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),"退","未退"))这种用法的。


[返回上一页] [打 印]

作者:不详  来源:Excelhome  发布时间:2008-6-10 14:42:08  发布人:angela.sun
以上文章只代表作者观点,欢迎来访者提出意见或建议
联系我们:webmaster@easyfinance.com.cn


安越动态


近期财务培训课程

近期培训客户

培训客户-上海通用汽车有限公司
培训客户-霍尼韦尔(中国)有限公司
培训客户-西门子电子
培训客户-艾欧史密斯(中国)热水器有限公司
培训客户-爱立信管理学院
培训客户-惠氏制药有限公司
培训客户-东风日产乘用车有限公司
培训客户-3M(中国)有限公司
培训客户-上海庄臣
培训客户-卡特比勒中国投资有限公司
培训客户-伊莱克斯电器
培训客户-美国铝业
培训客户-梅特勒-托利多
培训客户-阿姆斯壮
培训客户-上海家化
培训客户-三九医药股份有限公司
培训客户-中国移动新疆分公司
培训客户-中海油研究中心
培训客户-奇瑞汽车
更多客户……
财务专题 | 财务图书 | 安越俱乐部 | 安越动态 | 我们的客户 | 直击公开课 | 热门下载 | 订阅快讯 | 财务词典 | 网站地图 | 友情链接
安越培训|网站LOGO   
上海安越企业管理咨询有限公司 EASYFINANCE MANAGEMENT CONSULTING CO.,LTD CopyRight® 安越咨询 版权所有
电话:021-58361891 / 15801919100 传真:021-58361896 沪ICP备 05001842
电子邮箱:BD@EasyFinance.com.cn 网站:http://www.EasyFinance.com.cn/ 安越咨询专业致力于财务培训