把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)
这样就更加完美。
一、直接输入:
1.选择要设置的单元格,譬如A1单元格;
2.选择菜单栏的“数据”→“有效性”→出现“数据有效性”弹出窗口;
3.在“设置”选项中→“有效性条件”→“允许”中选择“序列”→右边的“忽略空值”和“提供下拉菜单”全部打勾→在“来源”下面输入数据,譬如“1,2,3,4,5,6,7,8,9”(不包括双引号,分割符号“,”必须为半角模式)→按“确定”就OK了,再次选择该A1单元格,就出现了下拉菜单。
二、引用同一工作表内的数据:
如果同一工作表的某列就是下拉菜单想要的数据,譬如引用工作表Sheet1的B2:B5,B2:B5分别有以下数据:1、2、3、4,操作如下:
1.选择要设置的单元格,譬如A1单元格;
2.选择菜单栏的“数据”→“有效性”→出现“数据有效性”弹出窗口;
3.在“设置”选项中→“有效性条件”→“允许”中选择“序列”→右边的“忽略空值”和“提供下拉菜单”全部打勾→在“来源”下面输入数据“=$B$2:$B$5”,也可以按右边带红色箭头的直接选择B2:B5区域→按“确定”就OK了,再次选择该A1单元格,就出现了下拉菜单。
三、引用不同工作表内的数据(必须用到定义名称):
如果不同工作表的某列就是下拉菜单想要的数据,譬如工作表Sheet1的A1单元格要引用工作表Sheet2的B2:B5区域,工作表Sheet2的B2:B5分别有以下数据:1、2、3、4,操作如下:
1.定义名称:菜单栏→“插入”→“名称”→“定义”→弹出“定义名称”窗口,在“在当前工作薄中的名称”下面输入“DW”(可以自己随便明明)→“引用位置”下面输入“=Sheet2!$B$2:$B$5”,也可以按右边带红色箭头的直接选择B2:B5区域→按“添加”后再按“确定”完成第一步。
2.选择菜单栏的“数据”→“有效性”→出现“数据有效性”弹出窗口;
3.在“设置”选项中→“有效性条件”→“允许”中选择“序列”→右边的“忽略空值”和“提供下拉菜单”全部打勾→在“来源”下面输入“=DW”,“DW”就是刚刚定义好的名称,按“确定”就OK了,再次选择该A1单元格,就出现了下拉菜单。
===================================================================================================
excel下拉菜单设置?
如图 现在我想做一个下拉菜单的设置,比如说现在,我想在姓名那个地方见一个下拉菜单,显示所有的名字,
比如说,现在我点击小三角按钮选择小明,就会把小明的所有信息都显示出来不显示其他人的信息,只显示小明的信息,科目一栏要显示所有的科目,
怎么实现
问题补充:
也知道用筛选,但是,我现在什么都不记得了,最好是做一个样板过来看看,,发到有邮箱 294711236@QQ。 com 我定重谢,,
最简单的办法是选择用 数据透视表
你做好了后,就是你说的那个样子,点一个人的名字就出现了他的信息
不清楚你可以问我,或者把你的表发给我 我给你做
数据筛选
在同一表格的别的地方列出所有人的姓名。如区域在J1:J100。点A2格(按你的上图),然后选“数据---有效性------序列,在来源里用鼠标选取J1:J100。确定就行了,下面就向下复制一下
看错了,是用数据里面的筛选
操作说明: 一、设置一级下拉菜单: 选中A1,“数据/有效性/设置/允许/序列/来源/用框右侧拾数器点选I1:N1,再点拾数器/确定”,效果如A1。 二、设置二级下拉菜单: 1、选中I1:N11,“插入/名称/指定/首行/确定”,将每列明细科目定义为第一行显示的名字。[ 原文地址:/excel/wenda/1210_21771.html ] 2、选中B1,“数据/有效性/设置/允许/序列/来源/=INDIRECT($A$1)/确定”,效果如B1。 三、设置三级下拉菜单: 1、选中O2:O8,“插入/名称/指定/首行/确定”,将该列明细科目定义为“液晶屏”。 2、选中C1,“数据/有效性/设置/允许/序列/来源/=INDIRECT($B$1)/确定”,效果如C1。 四、三级下拉菜单的使用: 即题中“具体如下:”以后的文字所求。例:
[excel菜单]->[数据]->[筛选]->[自动筛选]
先选择第一行,菜单里:数据---筛选---自动筛选。搞定。
这个是筛选功能,你自己试试吧。.cn/
=============================================================================================
要在Excel实现直接在下拉菜单中(自定义内容)选择输入的功能,实现如下图所示的效果
步骤操作:
1.选中要做下拉列表的单元格。
2.在菜单中选择:数据-有效性-[设置]-(允许):序列;(来源):输入内容,用,(逗号)分隔。