这是在数据录入时很常见的一个需求,对检查数据录入非常有用。设置完成后的录入界面是这样,这里只显示了二级下拉,三级是类似的。
在excel中实现并不复杂,需要用到Excel的三个小功能。
1、第一个功能则是EXCEL的名称管理。我们也可以把名称理解为一个数组变量,里边可以包含一系列的值。比如定义一个变量:汽车品牌,那么就可以“大众”、“雪铁龙”、“奥迪”作为这个名称的值。简单的场景,下拉列表的值,也就是序列的来源,可以直接指定从excle表的某一区域,比如第B列,但因为二级菜单的下拉值是变化的,要根据前一个单元格变,所以我们要把二级明细定义成不同的名称。
在EXCEL中打开【公式】菜单,在【名称管理器】中新建名称 ,引用位置则是对应明细数据。
2、还需要用到EXCLE中很特别的一个函数 INDIRECT,简单说,这个函数的作用就是讲一个字符串转换成一个变量。
因为我们需要二级下拉菜单,也就是在录入时,先选择前一个单元格的值,下一个单元格要根据前一个单元格的值,去找一个新的列表。比如:一级菜单是 汽车品牌,有:大众、雪铁龙、奥迪,二级菜单是型号,那选择了汽车品牌 “大众”后,下一个单元格的下拉列表应该变成“大众”对应的型号。这里,就需要用到INDIRECT 函数完成从单元格的值到名称变量的转换。最后这个函数会在序列里用到。
3、最后是下拉菜单功能,用序列实现。在EXCEL 的工具栏打开数据验证,针对需要下拉的单元格,将数据验证设置为序列即可让单元格的录入变成下拉列表。
汽车品牌列数据验证设置为:
汽车型号列,数据验证设置为:
借助以上三个功能就可以实现多级下拉菜单。
以上内容其它答案也都有说明,基本大同小异。EXCLE的名称可以直接在名称管理里新增,指定值的来源即可,这是前面提到的方式,也是其它答案里用得比较多的方式。
但EXCLE还有特殊的应用,那就是直接定义为表格 ,也会体现为名称管理里的一个名称,这样的好处是,以后一级菜单或二级菜单若需要增加明细, 不需要再做修改,只需要直接在参数列表里维护即可。
定义表格很简单。只需要选中列表,点工具栏【插入】下的【表格】,即可完成转换。
定义为表格的数据,在excel里显示时,右下角会有一个小的蓝色十角,很清晰。以后若需要增加,只要在蓝色十角下的一个单位格维护数据即可。
这样定义完后,默认的名称是“表1”、“表2”类似的名称,还需要修改名称为对应的菜单名称。打开名称管理器,选择对应的表格,编辑即可修改名称。一定要修改哦。
例如:某公司有多个部门,部门下又有几个科室,每个科室下又有若干分部。那怎么实现呢?
第一步:编辑好一级,二级,三级的数据(如图2)
图2
第二步:对一级和二级,二级和三级分别定义一下名称(图2中我称之为表1,表2)
操作方法:例如表1数据,选中B10:D12区域,点击公式—根据所选内容创建—只在首行打钩—点击确定,如图3
图3
表2中数据同理,选中B15:G18区域,点击公式—根据所选内容创建—只在首行打钩—点击确定。完成后,可以在名称管理器中可以看见刚才定义过的数据了(图4)。
图4
别着急,马上最后一步。
第三步:设置二级下拉菜单,利用INDIRECT函数引出定义过的名称区域,三级同理
一级下拉菜单前面已经介绍过,很简单,选中“部门“下面的一块区域,点击数据—–数据验证(13版)–序列—引用的数据—点击确定,这样部门下就有”财务部,人事部,采购部“了(图5)
图5
二级下拉菜单还是先在“科室”下选中一块区域,数据—数据验证—序列—-注意:这里要写一个=INDIRECT(B2)然后点确定。(图6)
图6
说明:因为前面已经对一级和二级定义过名称了,所以写=INDIRECT(B2),就默认为引用“财务部”下面的两个数据呢,B2相对引用就可以了。
三级甚至无限级也是同理呢,引用前面的科室下的数据=INDIRECT(C2)即可。
学会使用这个小技巧,可以大大提高我们的工作效率呢。
转载请注明:徐自远的乱七八糟小站 » 【在excel中如何做二级下拉菜单和三级下拉菜单?】