1、我这里就全部用图来说明。不过二级菜单的第一级的做法,都是相同的,大家可以参考上面的文章创建一个一级菜单。第一种做法:使用函数INDIRECT看看例子很明显,我们希望在一级选择机房故障,那么2级就出现他下面的列表。要实现这个目标并不复杂。1:建立“名称3个一级选项,我们需要建立3个“名称”:机房故障 线路故障 用户端故障。这个时候,你就创建了3个名称还需要建立一个名称,叫做“故障类型”这个名称包括“机房故障 线路故障 用户端故障”这3项。这个时候,你就可以在“名称管理器”看到4个名称2:创建1级菜单1级菜单的办法就简单了这样就解决了一级的下拉菜单。3:2级菜单这个地方你需要注意,=INDIREC
2、T($F2)如果你写成 =INDIRECT($F$2),如果是这样的话,你确定会出现一个报错这个时候,你就实现了2级菜单第二种做法:使用函数INDEX还是上面的例子,用另外一种方式来实现。这个例子里,你只需要建立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)这样就更加完美。