分享

Excel 二级下拉菜单的3种方法(转)

 和和2002 2011-08-17
把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表格的基本操作

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多