1.choose函数的含义
根据索引值返回后面对应的值
A、Index_Num 为 1 到 254 之间的数值;如果 Index_Num 为 1,则返回 Value1,为 2,则返回 Value2,以此类推;如果 Index_Num 小于 1 或大于最后一个值的索引号,则返回错误 #VALUE!;如果 Index_Num 为小数,则只取整数部分作为索引号。
B、Value 至少有一个,最多只能有 254 个。当 Value 为对单元格区域的引用时,只返回与公式所在单元格对应的单元格的值,具体见下文的实例。
2.choose函数的语法格式
=Choose(index_num, value1, [value2], ...)
=Choose(索引值,值1,值2,,,)
参数Index_num ——可以是表达式(运算结果是数值)或直接是数值,介于1-254之间。
当index_num 等于 1时,choose 函数返回 value1。
如果为 2,则返回 value2,以此类推。
3.如图所示,参数Index_num为数值2,则返回value2。
4.如图所示,参数Index_num为表达式if(D2<60,1,2)最终也是返回数值1和2,如果是1,则返回value1不合格。否则返回value2合格。
5.如图所示,参数value也可以是数组,这里参数Index_num为数值2,则返回数组{B1:B4},然后执行计算sum求和。
6.如图所示,如果参数index_num 是小数,则截尾取整。
choose函数的索引值为2.6,截尾取整为2,则返回value2,然后进行sum求和计算。所以=SUM(CHOOSE(2.6,A1:A4,B1:B4,C1:C4))相当于=SUM(B1:B4)。
(一)直接列值的实例
1、选中 A1 单元格,把公式 =CHOOSE(1,87,26,"excel",41,57) 复制到 A1,按回车,返回 87;双击 A1,把公式中的 1 改为 2,按回车,返回 26;再次双击 A1,把 2 改为 3,按回车,返回 excel;操作过程步骤,如图1所示:
2、公式 =CHOOSE(1,87,26,"excel",41,57) 的索引号为 1,共列了 5 个值;索引号为 1 时,返回第一个值 87,索引号为 2 时,返回第二个值,其它的以此类推。
(二)Index_Num 小于 1 与大于列表最后一个值的实例
1、把公式 =CHOOSE(0,87,26,"excel",41,57) 复制到 A1 单元格,按回车,返回错误 #VALUE!;双击 A1,把公式中的 0 改为 6,按回车,也返回错误 #VALUE!;操作过程步骤,如图2所示:
2、0 小于 1,不在 Choose函数要求的 1 到 254 之间,因此,返回错误 #VALUE!;6 大于最后一个值(即 57)的索引号(即 5),所以也返回错误 #VALUE!。
(三)Index_Num 为小数的实例
1、把公式 =CHOOSE(2.5,D2,D3,D4,D5,D6) 复制到 E2 单元格,如图3所示:
图3
2、按回车,返回 D3 中的值 892,如图4所示:
3、公式说明:
A、公式 =VLOOKUP(B8,CHOOSE({2,1},A2:A6,B2:B6),2) 用 CHOOSE({2,1},A2:A6,B2:B6) 返回一个“产品名称/编号”数组,即 {"长袖白衬衫","WS-563";"粉红衬衫","WS-585";"白色T恤",NS-283;"红色T恤","WS-587";"黑色T恤","NS-288"}。这个数组是怎么返回的?Choose 的索引号为数组 {2,1},当公式执行时,Choose 先从索引号数组中取出第一个元素 2,而 2 对应的值为 B2:B6,因此从 B2:B6 中取出 B2 单元格的值“长袖白衬衫”;接着,从索引号数组中取出 1,1 对应的值为 A2:A6,所以从 A2:A6 中取出 A2 单元格的值“WS-563”;按此循环直到取完 B2:B6 和 A2:A6 中的所有值。
B、CHOOSE({2,1},A2:A6,B2:B6) 返回数组后,公式变为 =VLOOKUP(B8,{"长袖白衬衫","WS-563";"粉红衬衫","WS-585";"白色T恤",NS-283;"红色T恤","WS-587";"黑色T恤","NS-288"},2),接着用 VLookUp 在数组中查找 B8的值(白色T色),找到后返回与“白色T色”对应的第二列的值,它正是编号 NS-283。
(二)Choose函数与Match函数的组合使用
1、假如要根据学生的成绩返回评定“不及格、及格、中、良和优”。把公式 =CHOOSE(MATCH(I2,{0,60,70,80,90,100}),"不及格","及格","中","良","优") 复制到 J2 单元格,按回车,返回“中”;把鼠标移到 I2 右下角的单元格填充柄上,按住左键,往下拖,则所经过单元格都用 I2 的“中”填充,按 Ctrl + S 保存,单元格的值都变为与本行对应的评定;操作过程步骤,如图8所示:
2、公式说明:
A、公式 =CHOOSE(MATCH(I2,{0,60,70,80,90,100}),"不及格","及格","中","良","优") 用 MATCH(I2,{0,60,70,80,90,100}) 查找 I2 在 数组 {0,60,70,80,90,100} 对应的值,由于 I2 为 78.6,数组中没有这个值,又因为Match函数省略了最后一个参数默认查找小于等于 78.6 的最大值,而该值是 70,所以返回 70 在数组中的位置 3。
B、此时,公式变为 =CHOOSE(3,"不及格","及格","中","良","优"),索引号 3 对应的值恰好是“中”,因此返回“中”。