您好,欢迎来到花图问答。
搜索
您的当前位置:首页多条件判断计算求值

多条件判断计算求值

来源:花图问答
工资分类额(T):

(单重≤.5,40元/kg),(.5<单重≤1,50元/kg). ( 1<单重≤2, 60元/kg.) ( 2<单重≤3, 70元/kg.) ( 单重>3, 80元/kg)工资分类额(J):

(单重≤10,5元/件). ( 10<单重≤20, 6元/件.) ( 20<单重≤30, 7元/件.) ( 单重>30, 8元/件)

=IF(A15<=0.5,40,IF(A15<=1,50,IF(A15<=2,60,IF(A15<=3,70,80))))1、常规求解法:

常规求解,就是运用IF函数,逐步判断来求解。该方法简单,但由于IF函数有最高7层嵌套,因此有一定局限性,而且一旦分区值变化,需要逐个修改区间值,容易出错。T类:J类:040051501051.1601262.1702173.180318100801008=VLOOKUP(A43,A$36:B$39,2,1)2、Vlookup引用解法:

除了方法1外,我们还可以利用辅助列,先将区间用单元格定义好,再通过Vlookup()引用进行求解。(这也是目前最常用的方

注:因为本例是向上舍入,但Vlookup()、Hlookup()、Lookup()都不支持倒序,只能是升序查询并向下舍去。所以只采用了一个变通的做利用辅助表来定义区间:T类:J类:040050.515010.0161.016020.0172.017030.0183.0180T类:011.12.13.1100J类:405060708080010122131100556788=HLOOKUP(A25,{0,0.51,1.01,2.01,3.01;40,50,60,70,80},2,1)3、常量数组解法:

由于为了解决IF函数7层嵌套问题,CHENJUN版主提供一经典解法--还原HLOOKUP函数的原型来求解。解法思路与方法2一样,但对于使用常量数组法什么时候用呢?

我们有时可能不希望单独建立辅助列(或辅助表),那么我们就可以通过定义常量数组的名称来实现,而且这样做的好处是当使用该名称名称也会被自动复制(由于是常量数组,也不会涉及到外部引用)。T类:J类:040051501051.1601262.1702173.180318100801008=CHOOSE(MIN(4,ROUNDUP(D53/10,0))+1,5,5,6,7,8)4、巧用CHOOSE函数解法:

首先大家需要了解CHOOSE函数的用法,第1个参数需要注意:为<=30的自然数,我们将区间通过公式转换进行求解。T类:J类:040051501051.1601262.1702173.180318100801008=5+SUM((D64>{10,20,30})*1)5、巧用常量数组解法:

该解法对于区间结果是等差数列递增的非常有用,公式也比较简洁。思路是:通过区间逐项进行比较,满足条件后求和汇总进行求解。T类:J类:040051501051.1601262.1702173.180318100801008=SMALL(B$80:B$84,COUNTIF(A$80:A$84,\"<\"&A87))6、条件统计法:

该解法则利用了结果有序的情况(升序或降序),通过Countif()来进行统计判断求解。

思路:通过区间值与条件判断统计,再通过如Small()、Large()或Index()函数来取出结果。缺点:Countif()首参数必须是单元格引用,不能是常量数组。T类:J类:0400A0.55010B16020C27030D380T类:0.111.12.13.1100结束前:

大家看后可能会问到,如果我们的条件区间非常随意(很难找到规律),那么除了用前3种解法来实现外,是否还有办法处理?如果条件变成:值<555<=值<888<=值<201720<=值<2535值>=2540

J类:405060708080110122031100AABBDD我们可以用方法4,即结合match()+choose()函数来求解:其实该解法与vlookup思路相同,只不过便于大家理解一些。

45588171217

=CHOOSE(MATCH(A83,{0,5,8,20,25},1),5,8,17,35,40)

221003540

我们还可以借助方法4和5,我的实例中的区间是等差数列的关系,=CHOOSE(SUM((A92>={5,8,20,25})*1)+1,5,8,17,35,40)如果是上面的条件区间,我们仍然可以使用这种思路,但公式不会象数组常量这么简单,只不过公式还是便于初学者理解。

45588171217223510040=5+SUM(IF(A101>={5,8,20,25},{3,9,18,5}))最后一招:(另类IF条件判断解法)

我们可以看到第2个数组实际上是取值之间的差(即:5+3=8,5+3+9=17,5+3+9+18=35…以此类推),通过求和即可。

45588171217223510040我们在编辑公式时需注意其差值,该公式仍然比使用IF()函数便于书写。

以上是大致对我们平时用IF()函数来求解的问题的一种拓展思路,希望对大家解题有帮助:)

限性,而且一旦分区值变化,

用的方法之一)

。所以只采用了一个变通的做法:外加一个足够小的小数来强行向下舍入。

这样做的好处是当使用该名称的工作表复制到其他工作薄中时,

是否还有办法处理?

,40)

35,40)

于初学者理解。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuowenda.com 版权所有 湘ICP备2023022495号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务