我正在使用一个大型验证列表,其中有几个 vlookup() 函数所依赖。这个名单变得越来越大。有没有办法键入我要查找的列表项的第一个字母,而不是手动向下滚动列表搜索该项?
我进行了一些谷歌搜索,但这表明这在早期版本的 Excel 中确实可行,但在 Excel 2010 中不行。希望你们能提供帮助。
最佳答案
这里有一个很好的方法来处理这个问题(在 ozgrid 上找到):
假设您的列表位于 Sheet2
上,并且您希望在 Sheet1
上使用具有自动完成功能的验证列表。
在 Sheet1
A1
上输入 =Sheet2!A1
并向下复制,包括所需数量的备用行(假设总共 300 行)。隐藏这些行并在引用中使用此公式:对于名为 MyList 的动态命名范围:
=OFFSET(Sheet1!$A$1,0,0,MATCH("*",Sheet1!$A$1:$A$300,-1),1)
现在,在最后一个隐藏行正下方的单元格中使用数据验证,对于列表源使用 =MyList
[编辑] 针对 Excel 2007+ 的改编版本(虽然无法在 2010 上进行测试,但据我所知,没有任何特定于版本的内容)。
假设您的数据源位于 Sheet2!A1:A300
上,并假设您的验证列表(又名自动完成)位于单元格 Sheet1!A1
上。
创建一个动态命名范围
MyList
,该范围取决于您放置验证的单元格的值=OFFSET(工作表2!$A$1,MATCH(工作表1!$A$1&"*",工作表2!$A$1:$A$300,0)-1,0,COUNTA(工作表2!$A :$A))
在单元格
Sheet1!A1
上添加引用列表=MyList
的验证列表
注意事项
这不是真正的自动完成,因为您必须先输入内容,然后单击验证箭头:列表将在第一个匹配元素开始您的列表中的
该列表将一直显示到您的数据末尾。如果您想更精确(仅在列表中保留匹配元素),您可以使用将计算的
SUMLPRODUCT
更改COUNTA
匹配元素的数量您的来源列表必须经过排序
关于vba - Excel 2010 : how to use autocomplete in validation list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7989763/