IF要多层嵌套,VLOOKUP举手投降,阶梯类问题只有它可以完美解决!
送人玫瑰,手有余香,请将文章分享给更多朋友
动手操作是熟练掌握EXCEL的最快捷途径!
【置顶公众号】或者【设为星标】及时接收更新不迷路
朋友们啊,今天和大家分享一个关于工资计算的问题。
小明同学小时候不好好学习,长大后只好到工厂里打工,在生产线上做了一名组装工人。他的工资是计件制的,具体如下图。
快来帮小明看看该如何计算他的薪水吧!
首先,使用IF函数是可以解决这个问题的。但是需要进行多次嵌套。如果阶梯分层比较多,公式书写起来比较繁琐。
在单元格B2中输入公式“=$E$1+A2*$E$2+IF(A2<85,-A2*1.5,IF(A2<105,a2*1,if(a2>=105,A2*1.2)))”,并向下拖曳即可。
这个公式逻辑思路非常简单,只要按照要求逐次嵌套IF函数就可以了,不需要过多的解释。
VLOOKUP函数是根本解决不了这个问题的。而使用LOOKUP函数则能够完美地解决。
在单元格B2中输入公式“=$E$1+A2*($E$2+LOOKUP(A2,{0,85,105},$H$2:$H$4))”,向下拖曳即可。
这里使用的是LOOKUP函数的向量形式。它的语法结构是:
LOOKUP(lookup_value, lookup_vector, [result_vector])
lookup_value 必需。LOOKUP 在第一个向量中搜索的值。Lookup_value 可以是数字、文本、逻辑值、名称或对值的引用。
lookup_vector 必需。只包含一行或一列的区域。lookup_vector 中的值可以是文本、数字或逻辑值。 lookup_vector 中的值必须按升序排列:..., -2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE;否则,LOOKUP 可能无法返回正确的值。文本不区分大小写。
result_vector 可选。只包含一行或一列的区域。result_vector 参数必须与 lookup_vector 参数大小相同。其大小必须相同。
思路:
以单元格A2为例。LOOKUP函数在数组{0,85,105}中查找56,由于找不到,因此返回小于等于它的最大数0,并在对应的$H$2:$H$4中返回对应位置上的数值-1.5
接下来的计算就很简单了,不再过多介绍
所以说,解决这类阶梯类的问题,LOOKUP函数是最快、最有效的!
-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
我就知道你“在看”