Excel中特别有用的不常用函数之Choose函数
今天给大家介绍一个不太常用但是很有用的函数:CHOOSE。
Excel中,对choose函数的解释是:
根据给定的索引值,从参数串中选出相应值或操作,
Choose函数的语法是这样的:
CHOOSE(index_num, value1, [value2], ...)
其中
index_num是索引值,
value1, value2, ...是参数串(至少需要有一个参数,最多可以有254个参数)。
下面是一些例子:
如果索引值(第一个参数)超过了后面参数串中参数的个数,就返回错误值。如果索引值小于等于0,也返回错误值。
这个函数还是挺简单的。
如果还是不明白,其实可以把这个函数理解成为IF函数,例如,上图中的CHOOSE函数可以写成下面的IF公式:
=IF(A1=1,"A",IF(A1=2,"B","C"))
CHOOSE函数很少自己单独使用,多数都是跟其他函数配合使用。例如,跟RANDBETWEEN函数配合使用,可以生成一个随机的字母:
=CHOOSE(RANDBETWEEN(1,5),"A","B","C","D","E")
CHOOSE函数用的最多的地方是跟VLOOKUP函数配合使用进行所谓“反向查找”:
例如,我们要根据输入的名称(G2)在B3:C7区域中查找相应的ID。直接用Vlookup函数不行,所以我们通过公式:
CHOOSE({1,2},C3:C7,B3:B7)
将两个区域进行了对调,结果区域变成了C列在前,B列在后,就可以使用VLOOKUP函数了。
需要注意的是,对调后,由于ID列放到了后面,所以VLOOKUP函数的第三个参数需要写2(即返回第2列)
CHOOSE函数的另外一个用法是简化复杂的嵌套的IF。
我们知道,IF函数一旦嵌套过多,就比较难以理解,还容易出错,比如,下面这个公式:
=IF(A1=1,"A",IF(A1=2,"B",IF(A1=3,"C",IF(A1=4,"D","E"))))
我们可以以一个简单的CHOOSE公式代替:
=CHOOSE(A1,"A","B","C","D","E")
这个公式就非常简单明了。不过有一个问题,只有当第一个参数A1是1,2,3,...这样的自然数时才能这样写。如果是下面的IF公式:
=IF(A1>=90,"A",IF(A1>=80,"B",IF(A1>=70,"C",IF(A1>=60,"D","E"))))
就不能使用刚才的CHOOSE公式来代替。这时,我们需要用MATCH函数结合CHOOSE函数来使用:
=CHOOSE(MATCH(A1,{0,60,70,80,90},1),"E","D","C","B","A")
这里,我们使用MATCH公式:
MATCH(A1,{0,60,70,80,90},1)
根据A1返回在级别中的位置,这个位置是1,2,3,...的自然数,可以作为CHOOSE的第一个参数。
我们可以使用CHOOSE函数计算如下的交互式表格:
这个报表的制作也很简单,其中主要是CHOOSE函数在发挥作用。下面简要介绍一下制作方法。
首先,选中一个空白单元格作为CHOOSE的第一个参数,在其中输入1,我们这里选的是G1:
然后将表格中所有的“销售额”用公式代替:
我们使用CHOOSE函数:=CHOOSE($G$1,"销售额","销售量")来根据G1的值动态选择是销售额还是销售量
再然后将表格中销售额的公式修改为使用CHOOSE函数:
这里的公式为:=SUMIFS(CHOOSE($G$1,$Q$3:$Q$18,$R$3:$R$18),$O$3:$O$18,$B4,$P$3:$P$18,C$2)
其中求和区域是一个CHOOSE公式:
CHOOSE($G$1,$Q$3:$Q$18,$R$3:$R$18)
这个公式根据G1中的值返回是用哪一个区域进行求和。
最后,添加两个选项按钮:
将选项按钮链接单元格设为G1:
大功告成!
CHOOSE函数还是很有用的一个函数。在使用时需要注意一点,那就是它是从后面的参数串中选择,这个参数串必须手动写出来,象:
=CHOOSE(A1,"A","B","C","D","E")
如果你想偷懒,把A,B,C,D,E等值输入到单元格G1:G5区域,然后使用公式:
=CHOOSE(A1,G1:G5)
这个公式返回的是一个区域G1:G5,而不是你想要的答案。
另外,我们说CHOOSE的原理跟IF相似,复杂的IF嵌套可以改成CHOOSE,或者CHOOSE+MATCH,但是这里有一个问题,那就是如果第一个参数的值超过了后面参数串的个数,就会返回错误值,而在原来的IF公式中(如果设计的好的话)是不会有这个问题的。所以,如果你不能限制第一个参数值的范围,那么就需要用IFERROR来进行处理。