小伙伴们好,今天来联系一道数据查找的题目。在EXCEL中涉及到数据查找的常用函数有VLOOKUP函数、LOOKUP函数等等。而今天的题目又含有等第标准,正好可以用到这俩函数。
题目是这样的:
题目要求根据分值区和标准信息,在C列中列出每项的编码。
题目比较简单,所有涉及到阶梯分段数据的题目都可以用到LOOKUP函数。由于分值区数据的排列和A列中排列的顺序不一致,所以这道题目中还需要用到VLOOKUP函数。
01
IF函数大法
在单元格C2中输入下列公式,并向下拖曳即可。
=IF(VLOOKUP(A2,$E$1:$F$8,2,0)<=150,"A",IF(VLOOKUP(A2,$E$1:$F$8,2,0)<=200,"B",IF(VLOOKUP(A2,$E$1:$F$8,2,0)<=300,"C","D")))
多个IF函数嵌套,这是最基本的东西了,无需过多介绍。
02
LOOKUP函数法
上面那个公式逻辑上虽然很简单,但是公式书写太繁琐了。
在单元格C2中输入下列公式,并向下拖曳即可。
=LOOKUP(VLOOKUP(A2,E$1:F$8,2,),{0;151;201;301},I$3:I$6)
这里利用了LOOKUP函数,也是最基础的函数常用技巧。{0;151;201;301}是一个常量数组,解决了H列的标准不能被直接引用的问题。
03
复数方法
在这里之所以要介绍复数的方法,是因为随着工程函数逐渐在数据处理中的逐步使用,我们发现带阶梯数据的问题也可以借助一些复数函数的特点来解决问题。今后也有可能被广泛使用。
在单元格C2中输入下列公式,三键确认并向下拖曳即可。
=LOOKUP(VLOOKUP($A2,$E$2:$F$8,2,),IFERROR(IMAGINARY(IMDIV($H$3:$H$6&"i","-i")),0),$I$3:$I$6)
使用复数函数就首先要从阶梯标准入手。
$H$3:$H$6&"i"
给标准数据后面添加一个“i”,让他们变成复数的形式。这里的结果是{"<=150i";"151-200i";"201-300i";"301-i"}。
IMDIV($H$3:$H$6&"i","-i")
IMDIV函数返回一个复数和另外一个数的商。这里的“-i”就是另外一个数。这部分返回的结果是{#NUM!;"200+151i";"300+201i";"1+301i"}
IMAGINARY(IMDIV($H$3:$H$6&"i","-i"))
接下来通过IMAGINARY函数来提取到复数中的实数部分,分别是{#NUM!;151;201;301}。你看,现在除了第一项外,其余的数值分别都是每档标准的起始数值。
IFERROR(IMAGINARY(IMDIV($H$3:$H$6&"i","-i")),0)
利用IFERROR函数将错误值替换为“0”,这时的结果{0;151;201;301}正好是每一档的起始值。
到这里之后你就会发现,和第二个公式里面的{0;151;201;301}是一样的。只不过,在第二个公式中需要手动输入,而第三个公式则不需要,而且会动态随源数据变动而变动。
LOOKUP(VLOOKUP($A2,$E$2:$F$8,2,),IFERROR(IMAGINARY(IMDIV($H$3:$H$6&"i","-i")),0),$I$3:$I$6)
余下的解题思路和前面的就一样了,这里也不再过多介绍了。
本期内容练习文件提取方式:
链接:https://pan.baidu.com/s/1_cBSAVC43uWSth9WBkeKtw?pwd=ffib
提取码:ffib
Excel VBA学习路线知识框架梳理(小白VBA入门必看-建议收藏)
往期推荐:>>>>>>>>>>>>>>>
2-使用VBA自动发送微信消息(支持文件+WPS+OFFICE)
9-将数据从Excel写入TXT、读取TXT数据,我只需一行代码