CHOOSE函数是一个特别的Excel内置函数,它可以根据用户指定的自然数序号返回与其对应的数值、区域引用或者嵌套函数结果。
该函数的语法如下:
CHOOSE(index_num,value1,[value2],…)
其中:index_num必须为1~254的自然数序号。根据此函数的特性,用户可以在某些情况下用它代替IF条件判断函数。
注意:虽然CHOOSE函数和IF函数相似,结果只返回一个选项值,但IF函数只计算满足条件所对应的参数表达,而CHOOSE函数则完全相反,它会计算参数中的每一个选择后再返回结果。
一、生成员工工资单
对于根据工资表生成指定格式的工资单这项应用,在Excel
2010中实现的方法有很多种,下面介绍利用CHOOSE函数来实现的方法。
示例1:使用公式根据工资表生成工资单
如图1所示,模拟了一份某公司各部门员工的工资表,要求根据此表生成对应的工资单,格式为每名员工一行数据,员工之间各间隔一空行。
由于生成的结果只供查看,不需要计算,因此下面的公式直接生成文本型的员工工资单,A10单元格公式如下:
=OFFSET($A$1,CHOOSE(MOD(ROW(A1)-1,3)+1,0,(ROW(A1)-1)/3+1,65535),COLUMN()-1)&””
公式主要利用MOD函数来生成循环序列,并结合CHOOSE函数来隔行取出对应的工资表数据生成员工工资单,结果如图2所示。
注意:为了保证与Excel
2003兼容,建议指定空白行仍然指定为65536,如果仅仅在Excel
2010中使用,目前最大行已经可以设置为2^20(即1048576)。
二、使用VLOOKUP函数向左查找
通过前面的介绍,读者了解到VLOOKUP的常规用法,只能让其从左向右进行查询,但如果借助CHOOSE函数重新生成数组,则可以让VLOOKUP函数实现向左查找。
示例2:VLOOKUP函数结合CHOOSE函数实现向左查询
如图3所示员工信息表,下面将介绍如何通过函数组合应用实现数据查询。
E5单元格查询公式如下:
=VLOOKUP(B2,CHOOSE({1,2},$E$2:$E$9,$D$2:$D$9),2,)
在这里着重借助了CHOOSE结合常量数组{1,2},将姓名(E列)和员工号(D列)数据位置进行左右互换,从而生成了符合VLOOKUP查询要求的内存数组,最终由VLOOKUP函数按“姓名”进行查找,返回“黄思露”的员工号:A05023。
另外,由于只是两列数据的位置互换,还可以利用IF函数来实现,如公式修改为:
=VLOOKUP(B2,IF({1,0},$E$2:$E$9,$D$2:$D$9),2,)
网友评论