分享

Excel如何避开IF多重嵌套的麻烦

 L罗乐 2018-01-31

        Excel中的逻辑判断很有用,但有时又会让人感到混乱,尤其是多条件的逻辑判断,很容易出现疏漏,导致计算结果错误。

        当条件多于6个就已经不适合使用IF函数来处理了,需要转变思路将条件变为列表,使用查询函数来完成判断。

        我们通过两个例子来学习,通过构造条件表格,以查询函数替代IF函数:

        第一个例子:价格阶梯折扣

        根据单价的大小给予不同的折扣,或者是根据销量的大小给予不同的折扣。这是销售工作中经常遇到的。

        首先需要将这个商务政策转变成表格来描述:

接下来我们来看看怎么获得这个折扣:

首先:用IF函数嵌套判断获得折扣

=IF(B2<=30,0,IF(B2<=50,10%,IF(B2<=60,20%,IF(B2<=70,30%,IF(B2<=80,40%,IF(B2<=90,50%,60%))))))

其实如果逻辑清晰的人来编写也不是很困难,这里有个技巧,就是判断的方向要一致:

要么都用大于号,从大到小判断;

要么用小于号,从小到大判断;

上面的公式也可以写成这样:

=IF(B2>91,60%,IF(B2>81,50%,IF(B2>71,40%,IF(B2>61,30%,IF(B2>51,30%,IF(B2>31,10%,0))))))

当然更简单的方法是用LOOKUP函数来获取折扣:


=LOOKUP(B2,H$2:H$8,I$2:I$8)


如果你思维够清晰可以直接构造数组完成这个公式:


=LOOKUP(B2,{0,31,51,61,71,81,91},{0,0.1,0.2,0.3,0.4,0.5,0.6})


关于LOOKUP函数大家可以去专门学习一下,这也是个非常有用的函数,

值得注意的是:LOOKUP函数要求的是有序数据,乱序的数据得不到正确的结果。


    第二个例子:不同规格的产品加价率不同

    根据产品规格来确定加价率,可能会有不同的规格的产品有相同的加价率,也有一种产品规格,一个加价率。

    同样需要把文字版的价格政策转变成表格来表达:


我们还是先用IF来判断一下:


=IF(OR(B2='红色',B2='白色'),0.015,IF(B2='黄色',0.02,IF(B2='紫色',0.025,IF(B2='蓝色',0.03,0.035))))


接下来用VLOOKUP函数来试一试:


=IFERROR(VLOOKUP(Sheet2!$B2,H$9:I$14,2,0),0.035)


这里也是同样的可以直接构造数组作为VLOOKUP函数的第二参数:


=IFERROR(VLOOKUP(B2,{'红色',0.015;'白色',0.015;'黄色',0.02;'紫色',0.025;'蓝色',0.03},2,0),0.035)



也可以使用CHOOSE函数来查找结果:


=IFERROR(CHOOSE(MATCH(B8,$H$9:$H$14,),$I$9,$I$10,$I$11,$I$12,$I$13,$I$14),0.035)


        通过今天的例子,希望大家能够了解,IF函数在有些时候是可以通过其他函数来替代,并且更加简单,更加只管。

        最重要的是:通过构造数组,作为函数的参数,从而获得结果,其实是一种数据库思维,把原来的逻辑判断转换为数据查询。

        今天就到这里。




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多