跳转至

CHOOSE 函数

函数概述

CHOOSE 是 Excel 中用于“按序号从多个候选值中选一个”的函数。它的核心思路非常直观:你给它一个 索引号(第几个),再给它一组 候选值,它就返回对应位置的那个值。

典型用途包括:

  • 根据数字编号切换返回结果(例如 1=“周一”、2=“周二”…)
  • 在多套固定口径/方案之间快速切换(如“标准价/会员价/促销价”)
  • 作为小型“映射表”(当映射项不多且固定时)
  • 配合其它函数实现动态选择(如用 MATCH 产生索引号,再交给 CHOOSE

基础语法

=CHOOSE(index_num, value1, [value2], ...)

参数说明

参数 是否必填 说明
index_num 索引号,表示要返回第几个候选值。通常为 1 到候选值个数之间的整数。
value1 第 1 个候选值(可以是常量、单元格引用、公式、文本、数组等)。
value2... 第 2、3…个候选值,数量可变。

候选值既可以是数值/文本,也可以是表达式,甚至可以是区域引用(如 A1:A10)。


基础用法示范

1)按编号返回对应文本

需求:A1 输入 1~4,分别返回“优秀/良好/合格/不合格”。

=CHOOSE(A1, "优秀", "良好", "合格", "不合格")
  • A1=1 → 优秀
  • A1=4 → 不合格

2)在多套口径之间切换计算公式

需求:B1 为模式选择(1=含税价,2=不含税价),A2 为成本,税率 13%。

=CHOOSE(B1, A2*(1+13%), A2)
  • B1=1 → 返回含税价
  • B1=2 → 返回不含税价

这种写法适合“方案数量少、逻辑固定”的场景。


3)配合 MATCH 做“小型映射”

需求:根据 D1 的产品等级(A/B/C)返回对应折扣(95%/90%/85%)。

=CHOOSE(MATCH(D1, {"A","B","C"}, 0), 95%, 90%, 85%)

解释:

  • MATCH 把 “A/B/C” 转成 1/2/3
  • CHOOSE 再用这个索引号取折扣

4)返回不同区域引用

需求:E1=1 用 A 列数据,E1=2 用 B 列数据,求对应列的总和(第 2 行到第 10 行)。

=SUM(CHOOSE(E1, A2:A10, B2:B10))

要点:CHOOSE 可以返回区域引用,再交给其它函数(如 SUM)继续计算。


5)做“列/行选择”的简化版

如果你的 Excel 版本没有更现代的选择函数,CHOOSE 也能用来实现“从几列里选一列”的需求(候选列不多时):

=CHOOSE(G1, A2, B2, C2)
  • G1=1 返回 A2
  • G1=2 返回 B2
  • G1=3 返回 C2

当列很多时,更建议用查找/动态数组函数体系(如 XLOOKUPINDEX 等)来组织。


总结

  • CHOOSE 的本质是 “索引号 + 候选值列表 = 返回对应项”,适合固定小规模的条件分支与映射。
  • 它既能返回普通值,也能返回公式结果,甚至可以返回区域引用并交给其它函数继续计算。
  • 常见组合方式是:

    • CHOOSE + MATCH:把文本条件转成序号再选择
    • CHOOSE + SUM/AVERAGE 等:切换计算口径或数据源
  • 当分支数量变多、规则经常变化时,通常用查找函数或表驱动方式(如 XLOOKUPINDEX+MATCH、结构化引用表)会更易维护。