先整理主类与子类数据,再通过名称管理器为每个主类定义对应子类区域,接着在数据验证中设置一级下拉序列和二级INDIRECT函数联动,确保名称一致性和数据结构清晰,即可实现二级联动下拉菜单。

在Excel中制作二级联动下拉菜单,可以实现选择一个主类别后,第二个下拉框只显示对应子类别的内容。这种功能常用于地区选择(如省-市)、产品分类等场景,提升数据录入效率和准确性。
一、准备基础数据
要实现二级联动,先整理好原始数据结构:
- 将主类别(如“省份”)列在某一列,例如A列。
- 每个主类别对应的子项(如“城市”)按列排布或集中放在另一区域,并命名区域。
- 建议使用“表格名称+子类”的方式组织,比如“广东”对应“广州、深圳、东莞”,单独放在某几列或一行。
示例布局:
A1: 省份 B1: 城市A2: 广东 B2: 广州
A3: 广东 B3: 深圳
A4: 江苏 B4: 南京
A5: 江苏 B5: 苏州
然后将这些数据转换为“唯一主类 + 对应子类列表”的格式,便于后续定义名称。
二、定义名称管理器中的动态范围
使用“名称管理器”为每个主类创建对应的子类名称:
- 选中所有包含“省份-城市”的数据区域(含标题)。
- 点击菜单栏的公式 → 创建到名称,勾选“最左列”,生成以省份为名的名称区域。
- 或者手动添加:进入公式 → 名称管理器 → 新建,名称输入“广东”,引用位置为=OFFSET(INDIRECT("B2"),0,0,COUNTIF(A:A,"广东"))(根据实际调整),也可用FILTER函数(适用于Office 365)。
更推荐方法:将城市按主类分组放在右侧独立区域,如D列是“广东”,E列是“江苏”,然后分别为它们命名:
选中D列城市数据 → 公式 → 定义名称 → 名称为“广东”;同理设置“江苏”等。三、设置一级与二级下拉列表
现在开始插入数据验证规则:
- 一级下拉(主类):选中要设置一级菜单的单元格(如G2),点击数据 → 数据验证,允许条件选“序列”,来源输入主类所在列的去重值区域,如=$A$2:$A$100。
- 二级下拉(子类):选中相邻单元格(如H2),数据验证同样选“序列”,来源输入公式:=INDIRECT(G2)。
这样当G2选择“广东”时,H2就会自动调用名为“广东”的区域作为下拉选项。
四、注意事项与优化
确保以下几点避免出错:
- 主类名称必须与定义的名称完全一致(区分大小写、空格)。
- 子类数据区域建议放在独立区域并命名清晰。
- 若主类有重复项,提前去重或使用表格结构化引用。
- 使用表格(Ctrl+T)可让名称动态扩展,提升维护性。
如果使用的是Microsoft 365版本,还可以结合UNIQUE、FILTER等函数实现更智能的动态筛选。
基本上就这些。只要数据结构清晰,定义好名称,再通过INDIRECT函数关联,就能轻松实现Excel二级联动下拉菜单。不复杂但容易忽略细节,尤其是名称拼写和引用方式。










