KutoolsforOffice — 一套方案,五大工具。事半功倍。

Excel CHOOSE 函数

作者Sun修改日期
doc 选择函数 1

描述

语法与参数

用法与示例


描述

CHOOSE 函数可根据指定的索引号,从数值参数列表中返回对应的值。例如,输入 CHOOSE(3,”Apple”,”Peach”,”Orange”) 时,将返回 Orange,因为索引数字为 3,Orange 位于函数的第三个参数位置。

语法与参数

公式语法

CHOOSE()index_num, value 1, [value 2], …)

参数

  • Index_num: 必需。请输入 1-254 之间的数值,用于指定要选择的参数值。如果 index_num 超出 1-254 范围,CHOOSE 将返回 #VALUE! 错误值。若 index_num 为小数,公式会自动向下取整为整数后再应用。
  • Value 1: 必填项。公式中可选的第一个值。
  • Value 2: 可选。从第二个值开始,最多可选择至第 254 个可用值。

Value 1, value 2……可以是数字、文本、公式、单元格引用或已定义的名称。

返回值

CHOOSE 函数可根据指定位置,从列表中返回对应的数值。

用法与示例

本部分列举了一些简单且具有代表性的案例,帮助您轻松理解 CHOOSE 函数的用法。

示例 1 —— 基本用法:单独使用 CHOOSE 函数从数值列表中选择一个值

公式 1:

=CHOOSE(3,"a","b","c","d")

返回值:c,这是在 CHOOSE 函数中,index_num 为 3 时对应的第三个参数。

注意:如为文本值,请务必使用双引号括起来。

公式 2:

=CHOOSE(2,A1,A2,A3,A4)

返回值:Kate,即 A2 的值。因为 index_num 为 2,A2 是 CHOOSE 函数中的第二个参数。

公式 3:

=CHOOSE(4,8,9,7,6)

返回值:6,即该函数的第 4 个列表参数。
doc 选择函数 2


示例 2 – 根据多个条件返回不同结果

假设您拥有每个产品的偏差值列表,并需要根据特定条件进行标记,如下图所示。
doc 选择函数 3

通常您可以用 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")

结果:中等
doc 选择函数 4


示例 3 – 根据条件返回不同的计算结果

假设您需要根据每个产品的数量和单价计算返利,如下截图所示:
doc 选择函数 5

公式:

=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
doc 选择函数 6


示例 4 – 从列表中随机选择

在 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: 从中选择的数值列表
doc 选择函数 7


示例 5 – 结合 CHOOSEVLOOKUP 函数在最左列中返回值

通常,我们会使用 VLOOKUP 函数 =VLOOKUP (value, table, col_index, [range_lookup]),根据给定值从指定表格区域返回对应数值。但如果在使用 VLOOKUP 函数时,返回列位于查找列左侧(如下截图所示),则会返回错误值。
doc 选择函数 8在本案例中,您可以结合使用 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 区域选择数值。


示例 6 – 根据指定日期返回星期几或月份 通过 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.

示例 7 – 根据今天返回下一个工作日 / 周末日期 在日常工作中,您可能需要根据今天的日期计算下一个工作日或周末。此时,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()):CHOOSE 在函数中作为 index_num 参数使用,用于获取今天是星期几。例如,星期天为 1,星期一为 2,依此类推。1,1,1,1,1,3,2: 这是 CHOOSE 函数中的数值列表参数。例如,如果 weekday(today()) 返回 1(星期天),则会从数值列表中选择 1,此时整个公式为 =Today()+1,即加 1 天,得到下周一。如果 weekday(today()) 返回 6(星期五),则会选择 3,因为星期五距离下周一还有 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(星期天),则会从数值列表中选择 6,整个公式就变为 =Today()+6,即加 6 天,轻松获取下一个周六。不容错过,立即体验高效日期计算!结果:=12/20/2018+CHOOSE(5,6,5,4,3,2,1,1)=12/20/2018+2=12/22/2018

示例文件
doc 示例文件

这款最佳办公效率工具

Kutools for Excel —— 助您脱颖而出

🤖KUTOOLS AI 助手:基于数据分析进行革新智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮或标记重复项  |  删除空白行  |  合并列或单元格且不会丢失数据  |  不使用公式的四舍五入……
超级 VLookup多条件  |  多值  |  跨多表操作  |  模糊查找……
高级下拉列表快速下拉列表  |  多级联动下拉列表  |  多选下拉列表……
列管理器添加指定数量的列  |  移动列  |  切换隐藏列的可见状态  |对比列到选择相同/不同单元格……
特色功能网格聚焦  |  设计视图  |  增强编辑栏  |  工作簿和表管理器|资源库(自动文本)|  日期提取  |  汇总工作表  |  加密 / 解密单元格  |  按列表批量发送邮件  |  超级筛选  |  特殊筛选(筛选粗体单元格/斜体/删除线等) ......
顶级 15 工具集12 文本工具添加文本删除特定字符……)|  50+ 图表 类型甘特图……)|  40+ 实用公式基于生日计算年龄……)|  19 插入工具插入二维码按路径插入图片……)|  12 转换工具小写金额转大写汇率转换……)|  7 合并和拆分工具高级合并行拆分单元格……)|……更多功能
在您的首选语言中使用 Kutools - 支持英语、西班牙语、德语、法语、中文及 40+ 多种语言!

Kutools for Excel 拥有超过 300 项功能,让您的需求只需轻点鼠标即可满足……


Office Tab —— 为 Microsoft Office(含 Excel)带来标签式阅读与编辑

  • 一秒钟即可切换数十个已打开的文档!
  • 每天为您减少上百次鼠标点击,轻松告别鼠标手困扰。
  • 在同时查看和编辑多个文档时,您的工作效率提升高达 50%。
  • 为 Office(包括 Excel)带来高效标签页体验,操作流畅如同在 Chrome、Edge 或 Firefox 浏览器中切换标签页。