聚热点 juredian

choose(CHOOSE函数应用范例)

今天给大家介绍一个不太常用但是很有用的函数: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函数的高级用法举例

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函数在发挥作用。下面简要介绍一下制作方法。

首先,选中一个空白单元格作为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来进行处理。

END

关注ExcelEasy

关于Excel的一切问题,你都可以在这里找到答案

搜索建议:choose  choose词条