之前有一篇文章介绍过这情况,在这一篇中,所有的“省市地区”等菜单选项都是固定的,不能随意添加。
今天,一种二级联动菜单的做法,这样做出来的菜单,不管是一级还是二级,选项都是可以随意添加、删除、修改的。
效果如下:
实现方法第一步:定义名称
1、定义一级菜单名称:
在【公式】菜单下,选择【定义名称】,在【新建名称】对话框内输入:
名称:一级
引用位置:=OFFSET(源数据!$A$1,,,1,COUNTA(源数据!$1:$1))
如下图:
2、定义二级菜单名称:
在【公式】菜单下,选择【定义名称】,在【新建名称】对话框内输入:
名称:二级
引用位置:=OFFSET(源数据!$A$2,,MATCH(联动菜单!$A2,一级,0)-1,COUNTA(OFFSET(源数据!$A$2,,MATCH(联动菜单!$A2,一级,0)-1,200)))
如下图:
此处插播一则广告:
广告过后,继续学习……
第二步:数据验证设置一级二级菜单
1、设置一级菜单:
鼠标放在要做一级菜单的单元格,在【数据】菜单中选【数据验证】,在跳出的【数据验证】对话框中的【设置】选择卡中,选择验证条件为允许【序列】,来源为“=一级”,确定,如下图:
2、设置二级菜单:
鼠标放在要做二级菜单的单元格,在【数据】菜单中选【数据验证】,在跳出的【数据验证】对话框中的【设置】选择卡中,选择验证条件为允许【序列】,来源为“=二级”,确定,如下图:
通过以上两步的设置,不管使添加选项还是删除选项,一级与二级菜单都跟着改变。
公式解析
1、一级菜单公式:
=OFFSET(源数据!$A$1,,,1,COUNTA(源数据!$1:$1))
该公式的含义是:以数据源表中的A2单元格为基准,偏移到1行、COUNTA(源数据!$1:$1)列的区域。其中,COUNTA(源数据!$1:$1)的返回值随着第一行数据的增多二增多,可以实现一级菜单的动态数量变化。
2、二级菜单公式:
=OFFSET(源数据!$A$2,,MATCH(联动菜单!$A2,一级,0)-1,COUNTA(OFFSET(源数据!$A$2,,MATCH(联动菜单!$A2,一级,0)-1,200)))
该公式的含义是:以数据源表中的A2单元格为基准,偏移到0行、MATCH(联动菜单!$A2,一级,0)-1列以后的单元格,然后取该单元格所在列的行数,列数为200的区域,此处200为比较的数,可以根据实际情况变化。