excel下设立二级菜单的三种方法.docx
《excel下设立二级菜单的三种方法.docx》由会员分享,可在线阅读,更多相关《excel下设立二级菜单的三种方法.docx(9页珍藏版)》请在冰豆网上搜索。
excel下设立二级菜单的三种方法
2008-09-2410:
47
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)
这样就更加完美。