Excel IF函数妙用

作者:  //  2012 年 3 月 9 日  //  Excel相关  //  没有评论

             

IF是个数组函数

回到最初的案例中。话说灰太狼买了葡萄,欢天喜地回到了家,本想邀功,结果被老婆大人是一通猛K:去了超市就卖点破葡萄,为啥不卖点其它的,说说这个价格在5块钱以上的都有些啥水果。此言一出,灰太狼给杵在那里,没了主意。他只记得红枣10元,玫瑰香葡萄6.6元…可要倒过来反查,这难度有些大了。Excel中的LOOKUP系列函数似乎不好使了,此时神奇的IF函数再次利剑出鞘,这题的解答是:

=IF(B2:B10>5,A2:A10,"")

选中1列,9行空白单元格,编辑栏输入公式后Ctrl+Shift+Enter三键结束

“红枣”、”玫瑰香葡萄”、”猕猴桃”、”富士苹果”,瞬时出现在单元格中。然后,只见老婆大人瞪着大眼看着灰太狼,傻眼了,硬是没有明白这结果怎么得来的。于是说为啥不用VLOOKUP函数来查找,你这结果不知对不对,给我验算一下。灰太狼暗自高兴,看来不再关注水果了,开始纠结函数公式了。问题是这个貌似比刚才的解答更复杂了,VLOOKUP函数在普通用法中只能从数据表的左侧向右侧进行查找引用。在焦躁不安中,神奇的IF函数又一次雪中送炭:

=VLOOKUP(IF(B2:B10>5,B2:B10),IF({1,0},B2:B10,A2:A10),2,FALSE)

选中1列,9行空白单元格,编辑栏输入公式后Ctrl+Shift+Enter三键结束

看完这个函数公式,老婆大人良久没有回过神来,使用个VLOOKUP函数居然还是要使用到IF函数,这函数居然阴魂不散。想不见都不行,而且这里居然还出现了{1,0}这么一个神奇的东东。看来得要补补课了:

现在再回到IF()函数,当条件是单个变量时,其总是代表TRUE和FALSE二选一,即只返回两个值中的一个。在Excel中逻辑判断TRUE和FALSE,往往可以使用1和0来表示,即“真”与“假”。当IF函数条件为一个数组时,即条件为{1,0}时,结果又将如何?此处所返回的结果和条件一样是数组,并且与条件数组的列数相同。

把{1,0}这个条件写到最初的举例:

=IF({1,0},”玫瑰香葡萄”,”巨峰葡萄”) 中

它将返回{”玫瑰香葡萄”,”巨峰葡萄”}

如果不好理解,可以将这个函数敲进单元格,鼠标移至在公式编辑栏,按下F9即可知答案。如果将这个函数扩展到IF({1,0},B2:B10,A2:A10)中,这个结果就是:{10,”红枣”;6.6,”玫瑰香葡萄”;5.8,”猕猴桃”;5.6,”富士苹果”;5,”香蕉”;4.8,”樱桃西红柿”;4.4,”巨峰葡萄”;3.2,”哈密瓜”;1.4,”西瓜”},这是一个两列9行的一个数组。在上面的公式中,这个方法将原始单元格的排布,在内存中重构为新的列排布次序,自然这个数据表就符合VLOOKUP函数左侧向右侧进行查找引用的规范了。

至于公式中:IF(B2:B10>5,A2:A10) 和 IF(B2:B10>5,B2:B10)理解了上述内容,再回头看就变得非常简单了,B2:B10>5构建了一个{1,1,1,1,0,0,0,0,0}的垂直数组条件,根据这条件依次取出符合条件的A列或B列数值。老婆大人又实际操作几次之后,渐渐懂得其中奥妙了,高兴的讲:哈哈,看来以后不要和VLOOKUP死磕了,和IF死磕更有效,更好玩。

灰太狼正在洋洋自得中,老婆大人突然脸一沉,如此简单的问题被你搞得如此复杂,使用自动筛选,鼠标动动就知结果的事,给你忽悠半天,显摆你比我懂是不是?还不快去洗葡萄,洗完葡萄去卖点红枣,给我补补气血。

相关附件下载:

关于作者

Ms Office爱好者,仅仅就是一个懂得高效偷懒的伙计,但绝对不是属于Office软件的骨灰级玩家,相对注重实用。比较热衷数据可视化,当然这个爱好中忒注重视觉的部分,和我的工作基本无关,但就是喜欢。

查看所有 的文章

留下您的评论

您必须 方可发表评论。