html⼆级联动获取下拉菜单数值_多级联动下拉菜单,你也试
试
Excel中下拉菜单功能可以帮助我们节省输⼊时间,通过选取下拉菜单中的值来实现输⼊数据,⾮常快捷、⽅便。但是⽇常⼯作中,我们常需要⼀个下拉菜单,让后⾯的下拉菜单依据前⾯的下拉菜单的内容的改变⽽改变(也就是联动的下拉菜单)。
⼀、⼆级联动下拉菜单制作⽅法
⾸先看⼀下原始数据,原始信息在⼀张⼯作表,第⼀⾏是省市名称,下⾯的若⼲⾏为对应省市下⾯的地名和区名,如图1。需要在另外⼀张⼯作表中A列和B列建⽴联动的⼆级下拉菜单,如图2。
图1
图2
操作步骤如下:
Step1:选中原始表所有数据,按快捷键F5调出定位对话框,定位条件选择“常量”,点击“确定”按钮,这样所有⾮空单元格被选中。如图3。
图 3
Step2:点击功能区菜单“公式”→“根据所选内容创建”,如图4,因为标题在⾸⾏,所以选择“⾸⾏”作为名称,点击“确定”按钮,如图5。操作完毕后在菜单“公式”下的“名称管理器”就可以看到定义的名称了,如图6。
图 4
图 5
图 6
Step3:在另外⼀张⼯作表创建标题⾏,省/直辖市和市/区,选中A2单元格,点击菜单“数据”→“数据验
证”(注:2013版本的“数据验证”在2003、2007、2010版本是“数据有效性”),验证条件选择“序列”,来源选中原始数据表的⾸⾏数据,如图7。
这样,在A2菜单就⽣成了省市下拉菜单,如图8。如果需要在更多的单元格区域设置下拉菜单,就选中更多的单元格区域,⽐如A2:A20,切忌选中整列区域,如果选中整列,会导致在很多没有⽤的区域设置了数据有效性,增加了⽂件的虚拟内存,使得⽂件变⼤,⽂件变⼤会导致打开和各种操作都会⾮常慢。
图 7
图 8
Step4:同样的⽅法,选中B2单元格,点击数据验证,在“来源”处输⼊公式=INDIRECT($A$2),点击“确定”按钮。设置完毕后,A2单元格选择“深圳市”时B2的下拉菜单返回“深圳市”的信息,如图10;A2单元格选择“北京市”时B2的下拉菜单返回“北京市”的信息,如图11。
注意:
上述⼆级下拉菜单设置的公式采取了⾏列都绝对引⽤,如果要使⼆级下拉菜单对更多的单元格区域均可⽤,将公式更改为:
=INDIRECT($A2)即可。
图 9
图10
图11
indirect函数功能是返回并显⽰指定引⽤的内容,可引⽤其他⼯作簿的名称、⼯作表名称和单元格引⽤。制作多级下拉菜单的原理就是利⽤定义名称,然后在单元格输⼊与定义名称相同的字符,再对含有这种字符的单元格⽤Indirect作引⽤。
⼆、多级(三、四级)联动下拉菜单制作⽅法
下⾯介绍多级别的下拉列表的制作⽅法。
数据源按下⾯的顺序排序:
图12
在制作多级下拉菜单之前我们先来了解这⼏个函数,其语法和功能分别是:
Match(什么,在哪⾥,0):返回符合特定值特定顺序的查询值在数组中的相对位置;
Countif(条件范围,条件):计算区域中满⾜给定条件的单元格的个数;
Vlookup(什么,在哪⾥,显⽰序列,匹配参数):搜索表区域⾸列满⾜条件的元素,确定待检索单元格在区域中的⾏序号,再进⼀步返回选定单元格的值;
Offset(参考单元格,偏移的⾏数,偏移的列数,返回引⽤区域的⾏数,返回引⽤区域的列数):以指定的引⽤为参照系,通过给定偏移量返回新的应⽤。
了解了函数的功能,接下来按以下步骤操作:
Step1:
在C2单元格借助于Match函数,计算“⼴东省”在A列中的位置,因此该公式为:=MATCH(B2,A:A,0)。随后将该公式分别复制⾄C3、C6、C7、C8、C9单元格即可计算对应的项在A列中的起始位置,该数值⽤于指导offset函数往下偏移⼏⾏;
数据验证怎么设置下拉菜单Step2:
接下来要计算每个项⽬共有⼏个⼩项,在D2中利⽤countif函数计算个数,此处的公式为:=COUNTIF(A:A,B2)。该数值可以⽤在offset 函数中的返回⾏数中;
Step3:
最后在G列设置⼀级省份下拉列表,如图13:
图 13
Step4:
对⼆级“地市”设置数据有效性。因为我们需要根据⼀级G2单元格选择的不同,设置不⼀样的下拉列表,⽽每个⼀级“省份”会有不⼀样个数的⼆级“地市”,所以借助offset函数来完成。在H2单元格设置数据有效性的“来源”位置,输⼊以下公式:
=OFFSET($B$1,VLOOKUP(G2,$B:$D,2,0)-1,0,VLOOKUP(G2,$B:$D,3,0),1)
图 14
该公式的意思为:
以B1单元格为基准,往下偏移⼏⾏,往右不偏移列,返回引⽤区域的⾏数,返回⼀列的数据。那么往下偏移⼏⾏,要根据前⾯的G2单元格的内容变化,所以利⽤vlookup函数来查G2单元格的内容,位于B:D范围中第⼆列的结果,我们便可以从B1单元格往下偏移6⾏⾄B7单元格,再减去1,得到“⼴州市”的B6单元格;同样的,返回引⽤区域的⾏数,也借助vlookup函数来得到,如此⼀来,⼆级下来列表
的“地市”也就完成了。
图15
Step5:
接下来,我们就⽤同样的offset函数来制作三级下拉列表,因此在I2单元格的数据有效性的公式为:
=OFFSET($B$1,VLOOKUP($H$2,$B:$D,2,0)-1,0,VLOOKUP($H$2,$B:$D,3,0))
图 16
最后的效果为:
图 17
那么有了这种⽅法以后,我们想设置任意级别的下拉列表都可以实现了。
图⽂制作:聂美骐
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论