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,这是 CHOOSE 函数中索引号为 3 后的第三个参数。
注意:如果值是文本,请使用双引号将其括起来。
公式2:
=CHOOSE(2,A1,A2,A3,A4)
返回:Kate,即 A2 的值。由于索引号为 2,而 A2 是 CHOOSE 函数中的第二个值。
公式3:
=CHOOSE(4,8,9,7,6)
返回:6,即函数中的第四个列表参数。
假设您有一个每个产品的偏差列表,需要根据以下截图所示的条件进行标记。
通常,您可以使用 IF 函数来处理,但在这里我介绍如何使用 CHOOSE 函数轻松解决这个问题。
公式:
=CHOOSE((B7>0)+(B7>1)+(B7>5),"Top","Middle","Bottom")
解释:
(B7>0)+(B7>1)+(B7>5): 索引号,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")
结果:Middle
假设您需要根据数量和价格计算每种产品的折扣,如下图所示:
公式:
=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): 索引号,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: 可供选择的值,折扣等于价格 * 数量 * 折扣百分比,因为这里的索引号为 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): 索引号,随机获取 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 作为索引号参数。这里,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(): 索引号参数,获取给定日期的星期几编号,例如,WEEKDAY(A5) 返回 6,则索引号参数为 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(): 索引号参数,从给定日期中获取月份编号,例如,MONTH(A5) 返回 3。
在日常工作中,您可能希望根据今天计算下一个工作日或周末。这里的 CHOOSE 函数也可以帮到您。
例如,今天是 2018 年 12 月 20 日,星期四,现在您需要获取下一个工作日和周末。
公式 1:获取今天的日期
=TODAY()
结果:2018 年 12 月 20 日
公式 2:获取今天的星期几编号
=WEEKDAY(TODAY())
结果:5(当今天是 2018 年 12 月 20 日时)
星期几编号列表如下图所示:
公式 3:获取下一个工作日
=TODAY()+CHOOSE(WEEKDAY(TODAY()),1,1,1,1,1,3,2)
解释:
Today(): 返回当前日期
WEEKDAY(TODAY()): CHOOSE 函数中的索引号参数,获取今天的星期几编号,例如,星期日为 1,星期一为 2…
1,1,1,1,1,3,2: CHOOSE 函数中的值列表参数。例如,如果 weekday(today()) 返回 1(星期日),则从值列表中选择 1,整个公式变为 =Today()+1,这意味着加 1 天返回下一个星期一。如果 weekday(today()) 返回 6(星期五),则从值列表中选择 3,因为星期五距离下一个星期一还有 3 天。
结果(当今天是 2018 年 12 月 20 日时):
=2018 年 12 月 20 日+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(星期日),则从值列表中选择 6,整个公式变为 =Today()+6,这意味着加 6 天并返回下一个星期六。
结果:
=2018 年 12 月 20 日+CHOOSE(5,6,5,4,3,2,1,1)
=12/20/2018+2
=12/22/2018
最佳的办公生产力工具
Kutools for Excel - 助您脱颖而出
🤖 | Kutools AI 助手:基于智能执行革新数据分析:智能执行 | 生成代码 | 创建自定义公式 | 分析数据并生成图表 | 调用 Kutools 函数… |
热门功能:查找、高亮或标记重复项 | 删除空行 | 合并列或单元格而不丢失数据 | 无需公式四舍五入 ... | |
超级 VLookup:多条件 | 多值 | 跨多表 | 模糊查找... | |
高级下拉列表:简易下拉列表 | 级联下拉列表 | 多选下拉列表... | |
列管理器: 添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较列以 选择相同和不同单元格 ... | |
特色功能:网格聚焦 | 设计视图 | 增强编辑栏 | 工作簿与工作表管理器 | 资源库(自动文本) | 日期提取 | 合并工作表 | 加密/解密单元格 | 按列表发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/斜体/删除线...) ... | |
排名前 15 的工具集:12 个文本工具(添加文本,删除特定字符 ...) | 50+ 种图表 类型(甘特图 ...) | 40+ 实用 公式(基于生日计算年龄 ...) | 19 个插入工具(插入二维码,从路径插入图片 ...) | 12 个转换工具(小写金额转大写,汇率转换 ...) | 7 个合并和拆分工具(高级合并行,拆分 Excel 单元格 ...) | ... 更多功能 |
Kutools for Excel 拥有超过 300 项功能,确保您所需的一切都仅需一键之遥...
Office Tab - 在 Microsoft Office(包括 Excel)中启用标签式阅读和编辑
- 一秒内在数十个打开的文档之间切换!
- 每天为您减少数百次鼠标点击,告别鼠标手。
- 在查看和编辑多个文档时,您的生产力可提升 50%。
- 为 Office(包括 Excel)带来高效标签页,就像 Chrome、Edge 和 Firefox 一样。