把excelhome的论坛关于下拉菜单的贴看了不少 。 发现实现2级的下拉菜单的方法好像也有好几种, 我想我就做一个总结, 自己也提高一下 。
通过2级菜单, 倒是可以比较深入熟悉 INDIRECT, INDEX, OFFSET, 这三个函数, 是你要想学excel函数, 估计你肯定过的关 。
在论坛里看帖子, 有一点比较累, 很多都是直接用excel文件里做说明, 你需要下载文件 。 我这里就全部用图来说明 。
不过二级菜单的第一级的做法, 都是相同的, 大家可以参考上面的文章创建一个一级菜单 。
第一种做法:使用函数INDIRECT
看看例子
【Excel-二级下拉菜单的3种方法高手进阶】
文章插图
很明显, 我们希望在一级选择机房故障, 那么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-数据透视表查看数据您要知道知识
- Excel-跳过空单元实例两则速来看看
- Excel-2010使用技巧:公式和值同时显示涨知识
- Excel-2007在多个单元格中输入相同的内容和公式升级必备
- 教你在Excel-中禁止打印推荐阅读
- Excel-2007表格中的字段设置方法推荐阅读
- 在-Excel-中实现固定打印表头与表尾读懂您就是高手
- 教你如何在Excel-2010中将公历转成农历[多图]
- Excel-2003如何合并单元格新发布的哦
- 文件未打开在-Excel-中或通过双击"文件未找到"发生时打开来看看