如何实现Excel多级下拉菜单?
发布时间:2023-08-16 11:32:08
多级下拉菜单这个问题,在Excel里面并不容易实现,关键问题在于数据有效性验证环节需要对数据源的动态过滤。如果使用了它,那么Excel表格在某些方面上可能会产质的飞跃,至少可以起到如下作用:
实现数据的全局参照验证,确保数据关联和一致。
人机动态交互效果更好。
输入更加智能,减少了使用人的输入量。
数据更加规整,为后期数据的分析提供了极大的便利。
在此,以二级菜单为例,我们来看需要达到的效果。
当我们选择了一级菜单后,根据选择的一级菜单项目自动加载二级菜单内容。在此,我们先不考虑使用VBA来实现这个问题。
以下,我们就来看看一个二级下拉菜单是如何实现的:
1、我们先建立两个区域,一个“销售区域”,一个“门店信息”,如下图。然后选择对应的数据区域按“Ctrl+T”,将这几个区域分别转化成超级表。然后把销售区这个数据表名称改为“销售区”,把门店这个数据表名称改为“门店信息”以便在后面引用。这里我就不一步步的去演示了。最终效果如下,形成了两个超级表区域。在此,我为了演示方便,全部超级表放在了一个工作表里面了,但在实际使用场景中是需要按工作表来做数据表的。
2、现在我们来建立一级菜单。具体数据验证操作步骤,就不啰嗦了。关键还是数据源的问题。这里,我们是引用销售区这个超级表的区域。因为这里是引用超级表,涉及结构化引用的问题,这里需要使用INDIRECT()这个函数。而里面的“销售区”,引用的是“销售区”这个超级表。这一步很简单,并不复杂。如果销售区这个表有很多列,那就需要使用超级表的结构化引用,可以参照第三步的那种语法方式。
3、同样的方式在二级菜单列开始建立数据验证。这里其它的都不是问题,比较关键的是序列的来源这里了。具体的函数用到了Offset、Match、和countif函数的嵌套。在这里,具体的公式为:
=OFFSET(INDIRECT("门店信息[[#标题],[门店]]"),MATCH(H3,INDIRECT("门店信息[[#数据],[销售区]]"),0),0,COUNTIF(INDIRECT("门店信息[[#数据],[销售区]]"),H3))
大体意思就是使用offset函数来获取区域,但这部分区域却是有条件的,这个条件就是只获取一级菜单选定的,对应的内容。
这里,需要特别说明的是,如果没有采用超级表时,那么indirect函数这部分,就需要使用区域了,不能再使用表结构化引用。以上的数据源公式,如果用区域来表示,那么就是:
=OFFSET($D$2,MATCH(H3,$E$3:$E$7,0),0,COUNTIF(($E$3:$E$7),H3))
对比以上两种写法,区域化引用看上去更简洁,而结构化引用似乎更要繁杂,可能大家会认为为什么还用结构化引用这种方式呢?答案是,这种结构化引用方式具有更强的适应性和扩展性,不受区域引用这种绝对或者相对的单元格区域,“$E$3:$E$7”以及区域命名这种方式引用无法自动扩展区域。关于超级表的结构化引用,这个是题外话,在此就不展开说了。
以上就是全部过程。无论几级菜单都可以此类推来制作。
写在最后:
1、目前,纵观全网,关于多级菜单的制作问题,都是使用以下这种列式表结构引用的方式来制作的。这种数据管理方式存在很大的问题,因为按照这种方式来做数据源的话,随着数据的增加,表会向横向和纵向两个方向扩展,表格会极具的膨胀和混乱。用专业的来说就是有违“三范式”。如果用这种方式来管理数据,那么就是灾难。所以,一定要使用标准的关系数据,任何时候都绝对不推荐以下这种处理方法。
2、在EXCEL里面,极力推荐使用超级表来管理数据。实际上,超级表的好处非常多,包括超强的可扩展性,超高的智能化、自动化程度等等。只要使用习惯了,那么很难再切回去使用区域模式了。关于超级表的优势,在此先不展开说了。


猜你喜欢
- 在 利用WPS表格的 历程 傍边,小 同伴们 经常会有打印 输入的 需求, 可是打印 进去的表格第二页 当前都没有表头, 以是 许多小 同伴
- ①首先,启动Excel2010,简单创建一个数据表格,便于之后建立图表,选中表格区域,单击菜单栏--“插入”--“图表”--“柱形图”,选择
- 智能文件夹会自动收集符合一定规则的文件,比如照片。如何使用智能文件夹在 Mac 上快速组织文件,来看看吧。在 Mac 上使用智能文件夹在Ma
- 自媒体内容运营中会用到的工具有很多,例如:视频剪辑工具、图片工具、视频素材工具、无损音乐下载、字幕工具、排版工具........等。如果你所
- “Apple Trade In 换购计划”是苹果推出的一项以旧换新服务,用户可以将自己的旧设备(包括 Apple 产品和非 Apple 产品
- 若要在相邻的多个单元格中输入类似1、2、3、……的具有一定规律的数据时,为了提高工作效率,可利用Excel2010的自动填充数据的功能,操作
- 在使用Win10系统的过程中,细心的用户可能会发现,在隐私设置中有一个“反馈和诊断”选项,该选项是微软用来收集用户使用情况数据的,那么Win
- opera浏览器支持多种操作系统,还有网络同步、鼠标手势、智能弹出广告拦截等功能。opera浏览器要怎么禁止弹窗,下面就给大家分享具体步骤。
- Win11怎么关闭推荐的项目?在设置中禁止了”最近添加的应用“,但是这个”推荐的项目“分类还在开始菜单中,有用户想把这个”推荐的项目“彻底删
- Win10系统中拥有许多有用的功能,例如Win10自带的录屏功能,不少小伙伴都是使用它来记录游戏中的精彩瞬间,但是经常在录制完后不知道储存的
- 在我们使用计算机操作系统时经常会出现问题。例如,许多用户在win10系统无法启动时遇到了bootmgr is missing的问题。大多数用
- 内存储器一般指内存。内存(Memory)是计算机的重要部件之一,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,与硬盘等外部存储器
- 我们在使用企业微信的时候,有的小伙伴在登录账号的过程中可能会想到企业微信和个人微信的账号能不能互通。那么对于这个问题小编觉得这两者是可以互通
- 我们经常在启动Win10计算机时,都会在通过欢迎界面后进入系统。但是,有些用户在启动时会一直遇到打开欢迎界面的现象,这是因为操作速度较慢。但
- 当我们使用电脑时,有时系统会提示我们的内置声卡Realtek high definition audio manager不支持此类设备。对于
- 很多玩csgo的小伙伴遇见应该问题,就是csgo无法验证vac会话,这是怎么一回事呢?这个一般是电脑的设置的问题,点击验证游戏完整性,等待验
- PD虚拟机是一款可以在Mac电脑中设置Windows系统的应用软件。在ParallelsDesktop虚拟机中如何禁止Mac共享window
- 如果您工作中经常要跟 Word 文档打交道,时不时的您可能需要将多个 Word 文档合并为一个。信息量少的时候,我们可以直接使用复制粘贴。除
- 微软推出的Win8市场萎靡,亟待Win10来救市,于是和中国的腾讯、360合作,提供一键升级Win10。但是微软也不是一根筋,他们考虑了退路
- 首先看看Select Case的语法如下。[Select Case语句的语法]Select Case 测试表达式Case 条件表达式1语句块