Excel多级下拉选

Excel中为了规范信息录入,经常会用到下拉菜单,很多人只会简单的一级,遇到稍微复杂一点的二级甚至更多级的联动下拉菜单就犯难。原文 Excel创建一级、二级、三级……联动下拉菜单,这一次彻底讲透它! - 知乎 (zhihu.com)

img

先给大家看一下完成以后的效果。

动图封面

(二级联动下拉菜单)

动图封面

(三级联动下拉菜单)

那么接下来,我们就逐级开始讲解!

【一】一级下拉菜单

这种比较简单,直接使用【数据验证】就可以完成。

img

选中需要设置下拉菜单的单元格,点击【数据】-【数据验证】-【序列】,如果下拉选项比较少,可以直接输入,只是需要注意中间用英文状态下的逗号隔开。

动图封面

如果下拉选项不想自己输入也可以,直接点击 来源单元格 也可以。

动图封面

继续升级一下。

如果右侧的文字顺序更新了,能否实现下拉菜单同步更新呢?

当然可以!只需要多一个步骤,将右侧的表格设置为智能表格( 超级表 ),单击右侧任意单元格,按下Ctrl+T,单击确定即可。

动图封面

后面的步骤是一样的,区别是通过鼠标拖动改变了右侧单元格中顺序的时候,左侧下拉选项的顺序也会同步更新。

比如"销售部"原本在最后,鼠标拖动调整为第一个以后,左侧的会自动同步更新为最新的顺序。

动图封面

当然,使用这种方法,不仅可以调整顺序,增删也是可以同步更新的。

【二】二级 下拉菜单

二级下拉的关键就是“联动”,就是二级的下拉选项需要根据一级的下拉结果变化而变化。

源数据部分一般有两种常见的形式,一种是一级菜单在上方。

img

一种是一级菜单在左侧。

img

那么 一级菜单 的做法和上面的方法是一样的。

先设置好一级下拉菜单。

动图封面

接下来选中左侧数据源表格,点击【公式】-【根据所选内容创建】,在弹出的对话框中,取消勾选【最左列】(如果是左侧是一级菜单,则取消“首行”)。

点击左上角的名称框下拉按钮,每选择一个省份,相应省份的市就会被选中。为什么会这样呢?……当我们点击【 名称管理器 】就知道原因了。原来刚刚的操作其实就是用一级菜单的名字赋值给相应区域,当在左上角的名称框中选择省份的时候,相应的单元格区域就会被选中。

动图封面

我们再E7单元格中,使用【 数据验证 】,数据源填写“=湖南省”,就会发现下拉选项全部都是湖南省下面的市。

它的原理是把“=湖南省”看成一个区域名称,对应的其实就是湖南省下面的市。

动图封面

接下来进行到最关键的“联动”部分。

如何让二级菜单的数据源自动调用一级菜单的结果,而不是我手动输入?

这里需要用到一个函数,叫做“INDIRECT函数”。

英文直接翻译的意思是“间接的”,函数的意思是“返回所指的引用”。

img

然后我们将刚刚手动输入省份的步骤用这个INDIRECT函数来替代。

需要注意的是函数中的D7需要按下两次F4取消锁定,因为是 相对引用 (如果不理解,后面我专门讲解)。

然后二级菜单的下拉选项就可以实现根据一级菜单的变化而变化了。

动图封面

【二】三级下拉菜单

其实掌握了二级下拉菜单,三级甚至更多级也就掌握了,因为方法是类似的,无非就是多设置几次而已。

为了区分,我将三级部分的选项设置为二级菜单在左侧,也方便理解。

img

设置好以后,就是得到了开篇的效果,实现 三级联动 下拉菜单。

动图封面