1 / 9 Excel 表格制作二级下拉菜单全步骤 通过2 级菜单,倒是可以比较深入熟悉 INDIRECT, INDEX, OFFSET, 这三个函数,是你要想学ex cel 函数,估计你肯定过的关。 不过二级菜单的第一级的做法,都是相同的,大家可以参考上面的文章创建一个一级菜单。 第一种做法:使用函数INDIRECT 看看例子 很明显,我们希望在一级选择机房故障,那么2 级就出现他下面的列表。 要实现这个目标并不复杂。 1:建立“名称” 3 个一级选项,我们需要建立3 个“名称”:机房故障 线路故障 用户端故障。 这个时候,你就创建了 3 个名称 2 / 9 还需要建立一个名称,叫做“故障类型”这个名称包括“机房故障 线路故障 用户端故障”这 3 项。 3 / 9 这个时候,你就可以在“名称管理器”看到 4 个名称 2:创建 1 级菜单 1 级菜单的办法就简单了 4 / 9 这样就解决了一级的下拉菜单。 3:2 级菜单 5 / 9 这个地方你需要注意,=INDIRECT($F2) 如果你写成 =INDIRECT($F$2), 如果是这样的话,你确定会出现一个报错 这个时候,你就实现了2 级菜单 第二种做法:使用函数INDEX 还是上面的例子,用另外一种方式来实现。这个例子里,你只需要建立 2个名称。 1:建立名称 建立:故障类型 名称,方法和上面一样。 建立:2 级名称 6 / 9 创建上面两个名称。 2:创建下拉菜单 第一下拉菜单和上面一样,我就不重复了,现在是演示第二级下拉菜单 7 / 9 =INDEX(二级,0,match(I$2,故障类型,0)) 这样你就搞定2 级菜单里。 第三种做法:使用函数 OFFSET 学这个 offset 函数半天,才搞定。现在只是可以实现这个功能。不过还有需要改进的地方 还是上面的例子, 8 / 9 =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) 这样就更加完美。 把excelhome 的论坛关于下拉菜单的贴看了不少。发现实现2 级的下拉菜单的方法好像也有好几种,我想我就做一个总结,自己...