跳至主要内容

Excel CHOOSE 函数

Author: Sun Last Modified: 2025-07-31
doc choose function 1

描述

语法和参数

用法和示例


描述

CHOOSE 函数根据给定的索引号从值列表参数中返回一个值。例如,CHOOSE(3,”Apple”,”Peach”,”Orange”) 返回 Orange,索引号为 3,而 Orange 是函数中索引号之后的第三个值。

语法和参数

公式语法

CHOOSE(index_num, value1, [value2], …)

参数

  • Index_num: 必需。介于 1-254 之间的数值,用于间接指定将选择哪个参数值。如果 index_num 超出 1-254 的范围,CHOOSE 将返回 #VALUE! 错误值。如果 index_num 是小数,它将在公式使用前向下取整为整数。
  • Value1: 必需。公式中的第一个可选值。
  • Value2: 可选。第二个到第 254 个可选值。

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,即函数中的第四个列表参数。
doc choose function 2


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

假设您有一个每个产品的偏差列表,需要根据以下截图所示的条件进行标记。
doc choose function 3

通常,您可以使用 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
doc choose function 4


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

假设您需要根据数量和价格计算每种产品的折扣,如下图所示:
doc choose function 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): 索引号,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
doc choose function 6


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

在 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: 可供选择的值列表
doc choose function 7


示例5 – 结合 CHOOSEVLOOKUP 函数返回左侧列的值

通常,我们使用 VLOOKUP 函数 =VLOOKUP (value, table, col_index, [range_lookup]) 根据给定值从表格范围内返回值。但是使用 VLOOKUP 函数时,如果返回列位于查找列的左侧,则会返回错误值,如下图所示:
doc choose function 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 作为索引号参数。这里,VLOOKUP 函数中的 col_num 为 2,因此 CHOOSE 函数显示为 CHOOSE(2, B1:B7,A1:A7),表示从 A1:A7 中选择值。
doc choose function 9


示例6 – 根据给定日期返回星期几或月份

使用 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。
doc choose function 10


示例7 – 根据今天返回下一个工作日/周末日期

在日常工作中,您可能希望根据今天计算下一个工作日或周末。这里的 CHOOSE 函数也可以帮到您。

例如,今天是 2018 年 12 月 20 日,星期四,现在您需要获取下一个工作日和周末。

公式 1:获取今天的日期

=TODAY()

结果:2018 年 12 月 20 日

公式 2:获取今天的星期几编号

=WEEKDAY(TODAY())

结果:5(当今天是 2018 年 12 月 20 日时)

星期几编号列表如下图所示:
doc choose function 10

公式 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
doc choose function 10


示例文件
doc sample file


最佳的办公生产力工具

Kutools for Excel - 助您脱颖而出

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

Kutools for Excel 拥有超过 300 项功能,确保您所需的一切都仅需一键之遥...


Office Tab - 在 Microsoft Office(包括 Excel)中启用标签式阅读和编辑

  • 一秒内在数十个打开的文档之间切换!
  • 每天为您减少数百次鼠标点击,告别鼠标手。
  • 在查看和编辑多个文档时,您的生产力可提升 50%。
  • 为 Office(包括 Excel)带来高效标签页,就像 Chrome、Edge 和 Firefox 一样。