行业新闻 company
当前位置:网站首页 >> 新闻中心 >> 行业新闻

在用公式法解决多级菜单联动的教程中,进阶君留下了一个尾巴,不知道小伙伴们有没有进行思考。只有把这个尾巴割掉,公式法才算完美了。

1 问题引入

有这样一个案例,数据如下图所示:

多级下拉菜单联动,公式法留有一个陷阱,割掉这个尾巴,就完美了

要求用公式法实现学校、二级学院、专业之间的三级下拉菜单联动。

多级下拉菜单联动,公式法留有一个陷阱,割掉这个尾巴,就完美了

2 问题分析

通过上篇教程我们可以知道,用公式法实现多级下拉菜单联动是从第二级菜单开始。

公式法的本质:将上一级菜单的选择项,在当前级菜单的数据对应项去查找,查找上一级选项的开始位置和个数,然后运用OFFSET函数去获取当前级菜单数据项的区域。

于是,在当前级的数据对应项中,上一级选项对应的数据区域不应该有重复,否则,就不能正确的查找到开始位置和个数。

如要完成的案例中,三级菜单对应的数据区域如下图所示:

多级下拉菜单联动,公式法留有一个陷阱,割掉这个尾巴,就完美了

我们要根据上一级菜单“二级学院”的选项来确定本级菜单“专业”的数据选项区域,按公式法通常做法,是根据上一级菜单的选项来确定它所在起始位置和个数,但是我们发现,如果我们选择软件学院的话,在对应的区域中会有2个数据区域与之对应,这样就无法确定起始位置和个数了。

多级下拉菜单联动,公式法留有一个陷阱,割掉这个尾巴,就完美了

怎么处理呢?将多个对应的数据区域由多个变成一个。

处理思路:更改三级菜单对应的数据区域,将三级菜单对应的上一级菜单变成一级菜单和二级菜单的联合。

多级下拉菜单联动,公式法留有一个陷阱,割掉这个尾巴,就完美了

这样处理后,专业对应的上一级菜单就是学校和二级学院的联合,如京东大学软件学院,在数据区域里面就只会有一个区域与之对应。由多个区域变成一个区域后,公式法就可以完美实现了。

多级下拉菜单联动,公式法留有一个陷阱,割掉这个尾巴,就完美了

3 问题解决

多级下拉菜单联动,公式法留有一个陷阱,割掉这个尾巴,就完美了

在实际工作当中,我们得到的数据表最有可能是上图所示。我们要完成多级菜单联动,需要先形成各级菜单对应的数据关系表,然后再利用公式法完成。

(一)形成各级菜单对应的数据关系表

(1)巧用删除重复项,形成一级菜单数据表

第一步:复制表中“学校”这列数据到单独一列。

第二步:运用 数据菜单 下的 删除重复项 命令,得到一级菜单数据表。这种方法非常简单且高效。

具体操作过程及效果如下动图所示:

多级下拉菜单联动,公式法留有一个陷阱,割掉这个尾巴,就完美了

(2)巧用删除重复项,形成二级菜单数据对应表

第一步:复制表中“学校”和“二级学院”两列数据到单独区域。

第二步:运用 数据菜单 下的 删除重复项 命令,得到二级菜单数据对应表。

具体操作过程及效果如下动图所示:

多级下拉菜单联动,公式法留有一个陷阱,割掉这个尾巴,就完美了

(3)巧用公式,形成三级菜单数据对应表

第一步:运用公式将“学校”和“二级学院”两列数据联合在一起,放到单独一列中。

表中“学校”数据从B2开始往下,“二级学院”数据从C2开始往下,公式:=B2&C2,表示将两个单元格的内容联合在一起。其它区域采取公式复制的方式完成。

第二步:复制表中“专业”数据列到第一步位置右侧的区域

具体操作过程及效果如下动图所示:

多级下拉菜单联动,公式法留有一个陷阱,割掉这个尾巴,就完美了

(二)运用数据有效性,完成一级菜单设定

根据一级菜单数据表,运有数据有效性完成一级菜单设定。具体操作过程及效果如下动图所示: