在EXCEL中,怎样让数据有效性的下拉框显示的项目更多
发布网友
发布时间:2022-04-22 20:36
我来回答
共4个回答
热心网友
时间:2023-08-06 15:38
可以用“窗体”来增加下拉框显示的项目
打开“视图-工具栏-窗体”,插入一个组合框。
将窗体覆盖在要使用的单元格(如C1)上面,调整大小。右击选择“设置控件格式”,点“控制”选框,在“数据源区域”,选择$A$1:$A$1000(你设置的选项的源单元格区域)
“单元格链接”选择一个单元格,如C1。
“下拉显示项数”:这个可以自己写,如50个 ,按确定。
另外,为便于查找1000个项目。可再试试如下办法:
例如:A列为项目,在D1中输入“王”字,则在B列中显示所有含有“王”的项目,在C1中的数据有效性数据里只显示B列的数据。
A B C D
王一 王一 王一 王
王三 王三
李四 小王
小王 王五
王五 王小丫
王小丫
陈红
张三
李四
陈之
在B1中输入:
=INDEX(A:A,SMALL(IF(ISNUMBER(FINDB($C$1,A$1:A$100)),ROW($1:$100),4^8),ROW(1:1)))&""
按Ctrl+Shift+Enter 三键组合确定。
把B1往下拉至1000行。
选中C1,设置数据有效性,序列为=$B$1:$B$1000
这样,在查找某个项目时,只需要输入一个关键字就行了。
热心网友
时间:2023-08-06 15:38
Excel中的数据有效性更新是被动式,因此如果你想用公式来实现下拉列表自动更新是做不到的。
最好的做法是利用VBA,打开VBA代码输入窗口之后,在对应的Sheet代码输入窗口中输入以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$4" Then Cells(5, 5) = ""
End Sub
代码中的Target.Address = "" 引号中的内容为Indirect指向的单元格的地址,就是你输入A或者B的那个单元格,然后Cell(x,y)表示你需要自动变成空白的那个单元格,括号中的那两个数字,第一个数字表示行号,第二个表示列号,如单元格E5,对应的行号列号都是5
这样,如果你每次改变单元格D4中的值的时候,单元格E5中的值就会变为空白,然后你可以在单元格E5中设置数据有效性下拉列表,这样如果D4中的值不变,你可以在E5中任意选择你想要的数据,每次D4变化后,E5就会清空,方便你从列表中输入新的选项
热心网友
时间:2023-08-06 15:39
增加搜索功能,输入关键字减少数量
比如输入:节能灯,让它显示前20个或是30个节能灯商品
=================
首先增加一关键字输入单元格,如:C3
其次增加一列用于存储搜索到的数据如:S列
S2
=OFFSET(商品!$C$2,SMALL(IF(ISNUMBER(FIND(INDIRECT(CELL("ADDRESS",C$3)),商品!C$2:E$99)),ROW(商品!$2:$99)),ROW(商品!2:$99)-1)-2,,)
商品 为你记录名字的工作表,C2为第一个商品名字(因为第一行可能是标题),C2:E99是要搜索的区域,其他是公式组成部分。
注:此为数组公式。
最多搜索出多少个就看你向下拖多少行了。比如:S2:S21(记20行)
再定义S2:S21一个名称如:SRH
最后将商品输入区域的有效性设置为上面这个名称SRH,就实现搜索功能了。
热心网友
时间:2023-08-06 15:40
如果是数据筛选可以用一楼的方法,数据有效性只能通过设置来实现
不过如果有1000个项目下来,即使能够实现,恐怕也没有实际意义