📌 软件教程

Excel二级下拉菜单怎么做?数据验证加名称管理器一次搞定

选了省份之后城市那列要跟着变,靠手敲数据验证再做一遍肯定不行。本文用最老但也最稳的一套做法:先把省市区整理成一列对一个区域的原始表,用名称管理器给每座城市起名,再到目标列用数据验证配合 INDIRECT 引用名称,最后讲清楚为什么中间不能出现空格、合并单元格和点数不一致这三种常见翻车点。

✍️ 表格小林 🕒 2026-10-13 09:31 👁 262 阅读 📖 898 字 ⏱ 约 2 分钟

先把原始表整理成这个样子

找个空地方(或者单独一张工作表)做对照表:第一行写省份,从第二行开始往下写这个省下面的城市,一列一个省。比如 A1 写「江苏」,A2 往下填「南京、苏州、无锡」;B1 写「浙江」,B2 往下填「杭州、宁波、温州」。

注意三点:第一行必须是省份名,且和目标表里下拉出来的字一模一样;城市中间不要留空行;不要用合并单元格。这三样里坏一样,后面就白干。

这张表可以后期隐藏起来,或者挪到一张叫「数据源」的工作表里,眼不见心不烦。

第二步:给每列起个名字

选中整张对照表(含第一行省份名),按 Ctrl+Shift+F3,或者进「公式」→「根据所选内容创建」。弹出的窗口里只勾选「首行」,确定。

这一步的含义是:Excel 会以每个省的名字为名称,把那一列下面的城市区域定义成一个名字。可以在「公式」→「名称管理器」里查看,会看到「江苏」对应着某个 RefersTo。

顺手说一句,这一步是整件事的核心,很多人失败就是因为跳过了它,直接用 INDIRECT 引用地址。坚持用名称管理器,后期加城市只要调整区域范围就行。

第三步:一级下拉,用最普通的序列

选中要填省份的那一片单元格,「数据」→「数据验证」,允许里选「序列」,来源直接框选对照表的第一行(也就是那几个省所在的整行),确定。到这里省份列能选了。

第四步:二级下拉,关键是 INDIRECT

选中要填城市的那一片,「数据」→「数据验证」,允许还是「序列」,来源这次输入:

=INDIRECT($A2)

这里的 A2 换成本行一级下拉所在的单元格。它做的事是:把 A2 里的文字(比如「江苏」)当成名称去引用对应的城市区域,于是二级下拉就跟着变了。

写完这一个,往下拖填充即可。

翻车点排查

提示「源当前包含错误」:多数是城市列里有空格或多行了处理不当,先把对照表重排一遍。

二级下拉不跟着变:检查 INDIRECT 里的一级单元格是不是写死了行号以外的东西,或者对照表首行的省名和一级下拉的选项是否完全一致,多一个空格都不行。

改了一个省、另一个省的城市也跟着变:一级下拉单元格位置写错位了。

WPS 表格的操作位置和名字基本一致,「数据」→「有效性」,同样支持 INDIRECT,不用换软件。

🔠 字号

看累了?去工具区松一松 🧘

白噪音、深呼吸、三分钟小游戏,满血复活再回来。