Excel CHOOSE 功能
- 例1-基本用法:使用 CHOOSE 仅从列表参数中选择值的函数
- 例2 –根据多个条件返回不同的结果
- 示例3 –根据条件返回不同的计算结果
- 示例4 –从列表中随机选择
- 示例5 –合并 CHOOSE 和 VLOOKUP 函数返回左列中的值
- 示例6 –根据给定日期返回工作日或月份
- 例7 –根据今天返回到下一个工作日/周末
详情描述
新的 CHOOSE 函数根据给定的索引号从值参数列表中返回一个值。 例如, CHOOSE(3,”Apple”,”Peach”,”Orange”) 返回Orange,索引号为3,Orange是函数中索引号之后的第三个值。
语法和参数
公式语法
CHOOSE(index_num, value1, [value2], …) |
参数
|
Value1, value2…可以是数字,文本,公式,单元格引用或定义的名称。
回报值
新的 CHOOSE 函数根据给定位置从列表中返回一个值。
用法与范例
在这一部分中,我列出了一些简单但有代表性的示例,以解释 CHOOSE 功能。
例1-基本用法:使用 CHOOSE 仅从列表参数中选择值的函数
公式1:
=CHOOSE(3,"a","b","c","d")
返回值:c,它是index_num 3之后的第三个参数。 CHOOSE 功能。
注意:如果值是文本,请在值周围使用双引号。
公式2:
=CHOOSE(2,A1,A2,A3,A4)
返回值:Kate,A2的值。 由于index_num为2,并且A2是 CHOOSE 功能。
公式3:
=CHOOSE(4,8,9,7,6)
返回值:6,函数中的第4个list参数。
假设您有每个产品的偏差列表,这些偏差需要根据条件进行标记,如下图所示。
通常,您可以使用IF函数来处理,但在这里我将介绍如何使用 CHOOSE 轻松解决此问题的功能
分子式:
=CHOOSE((B7>0)+(B7>1)+(B7>5),"Top","Middle","Bottom")
说明:
(B7>0)+(B7>1)+(B7>5): index_num,B7为2,它大于0和1但小于5,所以我们得到中间结果:
=CHOOSE(True+Ture+False,"Top","Middle","Bottom")
众所周知,True = 1,False = 0,因此公式可以看成:
=CHOOSE(1+1+0,"Top","Middle","Bottom")
然后
=CHOOSE(2,"Top","Middle","Bottom")
结果:中
假设您需要根据数量和价格计算每种产品的返利,如下图所示:
分子式:
=CHOOSE((B8>0)+(B8>100)+(B8>200)+(B8>300),B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5)
说明:
(B8>0)+(B8>100)+(B8>200)+(B8>300): index_number,B8为102,大于100但小于201,因此在此部分中,其返回结果显示为:
=CHOOSE(true+true+false+false,B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5)
=CHOOSE(1+1+0+0,B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5)
然后
=CHOOSE(2,B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5)
B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5: 回扣的值等于价格*金额*回扣百分比,因为这里的index_num为2,所以选择B8 * C8 * 0.2
返回值:102 * 2 * 0.2 = 40.8
在Excel中,有时您可能需要从给定列表中随机选择一个值, CHOOSE 功能可以解决这项工作。
从列表中随机选择一个值:
分子式:
=CHOOSE(RANDBETWEEN(1,5),$D$2,$D$3,$D$4,$D$5,$D$6)
说明:
RANDBETWEEN(1,5): index_num,随机获取1到5之间的数字
$D$2,$D$3,$D$4,$D$5,$D$6: 可供选择的值列表
示例5 –合并 CHOOSE 和 VLOOKUP 函数返回左列中的值
通常,我们使用VLOOKUP函数 =VLOOKUP (value, table, col_index, [range_lookup]) 根据表格范围中的给定值返回一个值。 但是随着 VLOOKUP 函数,当返回列位于查找列的左侧时,它将返回一个错误值,如下图所示:
在这种情况下,您可以将 CHOOSE 函数与VLOOKUP函数一起解决该问题。
分子式:
=VLOOKUP(E1,CHOOSE({1,2},B1:B7,A1:A7),2,FALSE)
说明:
CHOOSE({1,2},B1:B7,A1:A7): 作为VLOOKUP函数中的table_range参数。 {1,2}表示根据VLOOKUP函数中的col_num参数显示1或2作为index_num参数。 在这里,VLOOKUP函数中的col_num为2,因此 CHOOSE 功能显示为 CHOOSE(2, B1:B7,A1:A7),表示从A1:A7中选择值。
随着 CHOOSE 函数,您还可以根据给定的日期返回相对的工作日和月份。
配方1: 按日期返回工作日
=CHOOSE(WEEKDAY(),"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
说明:
WEEKDAY(): index_num参数,以获取给定日期的星期几,例如,WEEKDAY(A5)返回6,则index_num参数为6。
"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday": 值列表参数,请以“ Sunday”开头,因为工作日数字“ 1”表示“ Sunday”。
配方2: 按日期返回月份
=CHOOSE(MONTH(),"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
说明:
MONTH(): index_num参数,该参数获取给定日期的月份数,例如MONTH(A5)返回3。
在日常工作中,您可能希望根据今天来计算下一个工作日或周末。 在这里 CHOOSE 功能也可以帮您一个忙。
例如,今天是12/20/2018,星期四,现在您需要获取下一个工作日和周末。
配方1: 获取今天的日期
=TODAY()
结果:12/20/2018
配方2: 获取今天的工作日数
=WEEKDAY(TODAY())
结果:5(今天是12/20/2018)
工作日号码列表如下截图所示:
配方3: 得到下一个工作日
=TODAY()+CHOOSE(WEEKDAY(TODAY()),1,1,1,1,1,3,2)
说明:
Today(): 返回当前日期
WEEKDAY(TODAY()): 中的index_num参数 CHOOSE 函数,获取今天的工作日数,例如,星期日为1,星期一为2…
1,1,1,1,1,3,2: 中的值列表参数 CHOOSE 功能。 例如,如果weekday(today())返回1(Sunday),则从值列表中选择1,然后整个公式将更改为= Today()+ 1,这意味着要增加1天以返回下周一。 如果Weekday(today())返回6(Friday),则从值列表中选择3,因为Friday离下周一3天。
结果(今天是12/20/2018):
=12/20/2018+CHOOSE(5,1,1,1,1,1,3,2)
= 12/20/2018 + 1
= 12/21/2018
配方4: 得到下一个周末
=TODAY()+CHOOSE(WEEKDAY(TODAY()),6,5,4,3,2,1,1)
说明:
6,5,4,3,2,1,1: 中的值列表参数 CHOOSE 功能。 例如,如果weekday(today())返回1(Sunday),则从值列表中选择6,则整个公式将更改为= Today()+ 6,这意味着要添加6天并在下周六返回。
结果:
=12/20/2018+CHOOSE(5,6,5,4,3,2,1,1)
= 12/20/2018 + 2
= 12/22/2018
最佳办公效率工具
Kutools for Excel-帮助您从人群中脱颖而出
您想快速完美地完成日常工作吗? Kutools for Excel 带来了 300 种强大的高级功能(合并工作簿、按颜色求和、拆分单元格内容、转换日期等等......)并为您节省 80% 的时间。
- 专为1500种工作场景设计,帮你解决80%的Excel问题。
- 每天减少成千上万的键盘和鼠标点击,减轻您疲倦的眼睛和手部的疲劳。
- 在3分钟内成为一名Excel专家。 不再需要记住任何痛苦的公式和VBA代码。
- 30天无限制免费试用。 60天退款保证。 免费升级和支持2年。

Office选项卡-在Microsoft Office(包括Excel)中启用选项卡式阅读和编辑
- 一秒钟即可在数十个打开的文档之间切换!
- 每天为您减少数百次鼠标单击,告别鼠标手。
- 查看和编辑多个文档时,可将您的工作效率提高50%。
- 像Chrome,Firefox和新的Internet Explorer一样,为Office(包括Excel)带来高效选项卡。
