多条件判断计算求值
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工资分类额(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元/件)
1、常规求解法:=IF(A15<=0.5,40,IF(A15<=1,50,IF(A15<=2,60,IF(A15<=3,70,80))))
常规求解,就是运用IF函数,逐步判断来求解。该方法简单,但由于IF函数有最高7层嵌套,因此有一定局限性,而且一旦分区值变化,
2、Vlookup引用解法:=VLOOKUP(A43,A$36:B$39,2,1)
除了方法1外,我们还可以利用辅助列,先将区间用单元格定义好,再通过Vlookup()引用进行求解。(这也是目前最常用的方
注:因为本例是向上舍入,但Vlookup()、Hlookup()、Lookup()都不支持倒序,只能是升序查询并向下舍去。所以只采用了一个变通的做
0.515010.016
1.016020.017
2.017030.018
3.0180
3、常量数组解法:=HLOOKUP(A25,{0,0.51,1.01,2.01,3.01;40,50,60,70,80},2,1)
由于为了解决IF函数7层嵌套问题,CHENJUN版主提供一经典解法--还原HLOOKUP函数的原型来求解。
解法思路与方法2一样,但对于使用常量数组法什么时候用呢?
我们有时可能不希望单独建立辅助列(或辅助表),那么我们就可以通过定义常量数组的名称来实现,而且这样做的好处是当使用该名称
4、巧用CHOOSE函数解法:=CHOOSE(MIN(4,ROUNDUP(D53/10,0))+1,5,5,6,7,8)
的自然数,我们将区间通过公式转换进行求解。
5、巧用常量数组解法:=5+SUM((D64>{10,20,30})*1)
该解法对于区间结果是等差数列递增的非常有用,公式也比较简洁。
6、条件统计法:=SMALL(B$80:B$84,COUNTIF(A$80:A$84,"<"&A87))
该解法则利用了结果有序的情况(升序或降序),通过Countif()来进行统计判断求解。
思路:通过区间值与条件判断统计,再通过如Small()、Large()或Index()函数来取出结果。
0.55010B
16020C
27030D
380
结束前:
大家看后可能会问到,如果我们的条件区间非常随意(很难找到规律),那么除了用前3种解法来实现外,是否还有办法处理?如果条件变成:
值<55
5<=值<88
8<=值<2017
20<=值<2535
值>=2540
我们可以用方法4,即结合match()+choose()函数来求解:=CHOOSE(MATCH(A83,{0,5,8,20,25},1),5,8,17,35,40)
其实该解法与vlookup思路相同,只不过便于大家理解一些。
45
58
817
1217
2235
10040
我们还可以借助方法4和5,我的实例中的区间是等差数列的关系,=CHOOSE(SUM((A92>={5,8,20,25})*1)+1,5,8,17,35,40)如果是上面的条件区间,我们仍然可以使用这种思路,但公式不会象数组常量这么简单,只不过公式还是便于初学者理解。
45
58
817
1217
2235
10040
最后一招:(另类IF条件判断解法)=5+SUM(IF(A101>={5,8,20,25},{3,9,18,5}))
我们可以看到第2个数组实际上是取值之间的差(即:5+3=8,5+3+9=17,5+3+9+18=35…以此类推),通过求和即可。
45
58
817
1217
2235
10040
我们在编辑公式时需注意其差值,该公式仍然比使用IF()函数便于书写。
以上是大致对我们平时用IF()函数来求解的问题的一种拓展思路,希望对大家解题有帮助:)
限性,而且一旦分区值变化,
用的方法之一)
。所以只采用了一个变通的做法:外加一个足够小的小数来强行向下舍入。这样做的好处是当使用该名称的工作表复制到其他工作薄中时,
是否还有办法处理?
,40)
35,40)于初学者理解。