你好,我是刘卓。欢迎来到我的公号,excel函数解析。今天要和你分享的是choose函数的用法。它的功能是根据给定的索引值从参数列表中选出相应的值。某种程度上可以把它看作if函数的加强版。
函数说明
choose函数可以根据给定的索引值从参数列表中选出相应的值。语法如下,最多可以有255个参数:
CHOOSE(index_num, value1, [value2], ...)
第1参数index_num:是一个索引值,介于1到254之间。如果index_num是1,那么choose返回value1。如果是2,返回value2,以此类推。
value1,value2,...:是1到254个参数值。value1是必须的,其他参数是可选的。
1.如果index_num小于1或大于列表中最后一个值的索引号,结果返回#VALUE!错误值。
2.如果index_num为小数,将被截尾取整。
示例解释
如下图所示,当索引值是1时,返回value1,就是"春"。当索引值是2时,返回value2,就是"夏"。以此类推,索引值是3时,返回"秋"。索引值是4时,返回"冬"。很好理解有木有?
第1参数就相当于指定了一个位置,然后从后面的参数列表中返回对应的值。
1.根据身份证号查找姓名和成绩
这个题目直接用vlookup查找肯定是不行的,因为身份证号不在查找区域的第1列。很多小伙伴可能会想到用if({1,0},,)来重构数组,但是它只能重构两列数据。现在我们有3列数据,那么就可以用choose函数。
=VLOOKUP($E9,CHOOSE({1,2,3},$B9:$B17,$A9:$A17,$C9:$C17),COLUMN(B1),)
CHOOSE({1,2,3},$B9:$B17,$A9:$A17,$C9:$C17)这部分就是对3列数据重新组合,把身份证号放在第1列,姓名放在第2列,成绩放在第3列。如下图所示。
有了这个重组后的数组,就可以用vlookup查找了。查找的值是身份证号,查找的区域就是重组后的数组,返回的列号是第2列,查找的方式是精确查找。除了查找姓名,还要查找成绩,成绩在第3列。所以返回的列号用的是COLUMN(B1),当公式右拉的时候就会变成COLUMN(C1)。这样列号就由2变为3。
2.根据成绩计算等级
等级判断的标准如右表所示,0-59为差,60-79为中,80-89为良,90-100为优。在D22单元格输入下面的公式,向下填充。
=CHOOSE(MATCH(C22,{0,60,80,90}),"差","中","良","优")
首先用match查找C22在{0,60,80,90}中的位置,也就是在分数段中的位置,然后用choose根据位置返回对应的等级。比如查找到C22在{0,60,80,90}中的位置是1,choose根据这个位置1,返回对应的等级"差"。这里match用的是模糊查找的方式,第3参数省略相当于1。查找的区域必须是升序。
https://pan.baidu.com/s/1OuwTqUUP7s95bhD_pFdAsQ