Excel技术--二级下拉菜单的3种方法

把excelhome的论坛关于下拉菜单的贴看了不少。发现实现2级的下拉菜单的方法好像也有好几种,我想我就做一个总结,自己也提高一下。

通过2级菜单,倒是可以比较深入熟悉 INDIRECT, INDEX, OFFSET, 这三个函数,是你要想学excel函数,估计你肯定过的关。

在论坛里看帖子,有一点比较累,很多都是直接用excel文件里做说明,你需要下载文件。我这里就全部用图来说明。

不过二级菜单的第一级的做法,都是相同的,大家可以参考上面的文章创建一个一级菜单。

第一种做法:使用函数INDIRECT

看看例子

很明显,我们希望在一级选择机房故障,那么2级就出现他下面的列表。

要实现这个目标并不复杂。

1:建立“名称

3个一级选项,我们需要建立3个“名称”:机房故障 线路故障 用户端故障。

 

这个时候,你就创建了3个名称

 

还需要建立一个名称,叫做“故障类型”这个名称包括“机房故障 线路故障 用户端故障”这3项。

 

这个时候,你就可以在“名称管理器”看到4个名称

 

2:创建1级菜单

1级菜单的办法就简单了

 

 

这样就解决了一级的下拉菜单。

3:2级菜单

 

这个地方你需要注意,=INDIRECT($F2)

如果你写成 =INDIRECT($F$2),

如果是这样的话,你确定会出现一个报错

 

这个时候,你就实现了2级菜单

 

第二种做法:使用函数INDEX

还是上面的例子,用另外一种方式来实现。这个例子里,你只需要建立2个名称。

1:建立名称

建立:故障类型 名称,方法和上面一样。

建立:2级  名称

 

 

创建上面两个名称。

2:创建下拉菜单

第一下拉菜单和上面一样,我就不重复了,现在是演示第二级下拉菜单

 

=INDEX(二级,0,match(I$2,故障类型,0))

这样你就搞定2级菜单里。

第三种做法:使用函数OFFSET

学这个offset函数半天,才搞定。现在只是可以实现这个功能。不过还有需要改进的地方

还是上面的例子,

 

=OFFSET(A2,,MATCH(L2,故障类型,)-1,6,1)

这样也是可以实现2级的下拉菜单。

以上的方式其实是不太完善的,因为我们的2级菜单刚好都是6项,那么如果是不等的,那你就只能取最多的。

完善的做法,当然是动态的,根据2级菜单的数量来显示。需要解决的问题,就是如果动态计算出每项2级菜单的数量。

2级菜单数量=COUNTA(OFFSET(A:A,,MATCH(L2,故障类型,0)-1))-1

那么我们的公式就变成

=OFFSET(A2,,MATCH(L2,故障类型,)-1,COUNTA(OFFSET(A:A,,MATCH(L2,故障类型,0)-1))-1,1)

这样就更加完美。

对于Excel中的三级下拉菜单,您可以按照以下步骤操作: 1. 创建数据源:在工作表中创建三个列,分别代表一级、二级和三级菜单的数据。 2. 命名区域:选中每个列的数据,点击"公式"选项卡中的"定义名称",为每个列的数据范围分别命名。 3. 创建下拉菜单:选择您希望第一个下拉菜单出现的单元格,然后点击"数据"选项卡中的"数据验证"。在弹出的对话框中,选择"列表"作为验证条件,然后在"来源"输入框中输入第一级菜单的命名区域名称。 4. 设置二级下拉菜单:选择第二个下拉菜单应该出现的单元格,然后再次点击"数据"选项卡中的"数据验证"。在对话框中,选择"列表"作为验证条件,并在"来源"输入框中使用类似于下面这样的公式: =INDIRECT(第一级菜单单元格地址) 这将根据第一级菜单的选择动态确定第二级菜单的范围。 5. 设置三级下拉菜单:选择第三个下拉菜单应该出现的单元格,然后再次点击"数据"选项卡中的"数据验证"。在对话框中,选择"列表"作为验证条件,并在"来源"输入框中使用类似于下面这样的公式: =INDIRECT(第二级菜单单元格地址) 这将根据第二级菜单的选择动态确定第三级菜单的范围。 6. 测试:现在,您可以通过选择不同的菜单选项来测试您的三级下拉菜单。 请注意,以上步骤假设您已经了解如何创建命名区域和设置数据验证。如果您对这些基本操作不熟悉,建议您参考Excel的相关文档或教程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值