今天给大家介绍一个不太常用但是很有用的函数: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来进行处理。 |
|