用wps表格做二级联动下拉菜单,操作逻辑很简单:先把一级、二级选项整理成对应列表,用「数据验证/数据有效性」给一级单元格做好下拉,二级单元格的来源直接用 =indirect(一级单元格) 引用对应列表就行。比如你在d列先选「云南省」,e列的下拉就只会跳出昆明市、玉溪市、曲靖市这些云南下辖的城市。
这个方法适配很多有层级关系的场景:省市联动、部门配员工、产品对应型号、课程对应班级都能用。核心要点不是把所有选项都堆进来源框,而是要让一级选项的文字,和对应的二级列表的自定义名称完全对上。名称匹配,联动就顺;名称对不上,二级下拉大概率会空白或者直接报错。

第一步:先整理一级和二级选项列表
先找表格里的空白区域搭数据源。第一行直接放所有一级选项,比如「云南省」「贵州省」;每个一级选项下面纵向列对应的二级内容,比如云南省下面依次放昆明市、玉溪市、曲靖市、大理州,贵州省下面放贵阳市、安顺市、黔东南州、黔西南州。
数据源最好放在当前工作表的最右侧空白区,或者单独新建一个叫「选项表」的工作表存。要是后续想把辅助数据源区域藏起来,一定要等整个下拉菜单测试完全正常了再操作。别在二级列表中间插空行,空行藏在下拉里很难发现,用的时候会误以为少了选项。
第二步:把二级列表定义成名称
选中某一个省份对应的全部城市列表,点开顶部「公式」选项卡找名称相关的功能,或者从「定位/名称管理器」的入口进去,把这段选中的城市列表自定义成一个名称。这个名称必须和一级菜单里对应的文字完全一致,比如一级菜单里写的是「云南省」,对应的城市列表的名称也要设成「云南省」。
要是一级选项里带空格、括号、斜杠这类特殊符号,很可能没法成功创建自定义名称,建议提前把一级选项的文字改得规整点。做部门和员工的联动时也一样,一级名称尽量用「销售部」「财务部」这种简单直白的叫法,少用「销售部(华东)」这类容易出问题的写法。


第三步:给一级单元格设置数据验证
选中要填一级选项的单元格区域或者整列,比如D2:D6,切到顶部「数据」选项卡,点「数据有效性」或者「数据验证」。设置页里把「允许」的类型改成「序列」,来源就选刚才整理好的一级选项的单元格范围,比如所有省份所在的区域。
记得勾上「提供下拉箭头」,点确定就好。回到表格里,一级单元格旁边就会出现下拉箭头,直接就能选云南省、贵州省这些选项。这步最好先测试下一级菜单能不能正常展开选值,毕竟后面的二级菜单全靠它返回的内容联动。
{"answer":"协助 macOS 用户准备、转换、导出及排查 Word、PDF、Markdown、PowerPoint 和 Excel 文件,确保 WPS Office 工作流程可靠。"}

第四步:给二级单元格输入 INDIRECT 公式
选中要放二级选项的单元格区域或者整列,比如E2:E6,再进一次「数据有效性」设置。「允许」的类型还是选「序列」,在来源输入框里直接填 =INDIRECT(D2)。这里的D2指的是当前行对应的一级选择单元格,意思是二级列表会根据D2里选中的省份名称,自动去找同名的自定义区域。
如果是从第2行开始批量设置整列二级菜单,公式里写D2就行,千万别写成带绝对引用的$D$2,不然整列的二级菜单都会固定跟着D2的内容走。设置完之后,E3会自动匹配D3选中的内容找对应列表,E4也会跟着D4联动,不用逐个改公式。

第五步:测试一级改变后二级是否跟着变
切回你要填数据的主区域,先在D2选「云南省」,点开E2的下拉菜单,正常情况下只会显示云南对应的几个城市。把D2的选项改成「贵州省」,再开E2的下拉,内容应该自动切换成贵州对应的城市列表。
要是改完一级选项,二级下拉没跟着变,先排查三个地方:一是一级单元格里是不是真的正确选中了对应选项,有没有手动输入错字;二是二级来源公式里的单元格引用,是不是对应同一行的一级单元格;三是自定义的名称,是不是和一级选项的文字完全一模一样。中文的省份、部门名称看着差不多,多一个空格少一个字,都会让INDIRECT函数找不到对应的列表。

第六步:后续维护时只改来源列表
二级联动菜单做好之后,后续要新增城市、员工这类二级选项,直接去之前存的数据源列表里加就行。如果定义名称的时候选的引用范围不够长,新内容没被包进去,就进名称管理器把对应名称的引用范围扩展到包含新数据。直接改数据源就行,不用动已经设好的下拉单元格本身。
这种联动菜单特别适合一级选项固定、二级内容经常要补充的表格。把表格发给同事填之前,最好把数据源区域保护起来,或者把存辅助数据的工作表隐藏好,避免有人误删了名称对应的数据源区域,导致整列的二级菜单直接失效。










