chrisfang的Excel大全

自适应下拉菜单

2012-10-11
作者: chrisfang | 分类: Excel技巧 | 阅读: 18,408 次浏览 | Tags:
声明: 本站文章均属原创,转载时请标明出处

很多人可能知道,使用Excel【数据有效性】当中的【序列】功能,可以在单元格内创建一个下拉菜单,在进行输入时可以在下拉菜单中选择项目。这样的下拉菜单可以提高用户输入时的准确性和便利性。

 

本文所要介绍的【自适应】的下拉菜单,就是可以根据用户在单元格里输入的字符,在下拉菜单的显示项目中自动筛选出以这些字符开头的项目,缩小下拉菜单中的项目选择范围,使目标更精准,方便用户选取。这是一种对数据有效性序列的智能化改造手段。

完成后的效果如下:

 

具体设置方法如下:

步骤1,将需要作为选择项目的原始数据进行排序。

排序以后,相同字符开头的字符串将分布在连续的单元格中,便于创建数据有效性的引用序列。

 

步骤2,选中需要设置下拉菜单的单元格,打开【数据有效性】对话框,选择【序列】,并且在【来源】中使用以下公式:

=OFFSET($A$1,MATCH(C2&"*",$A:$A,0)-1,,COUNTIF($A:$A,C2&"*"))

其中,其中A列是之前排过序的项目数据源所在列,C2 则是当前选中的单元格。

 

上述公式的具体含义如下:

MATCH(C2&"*",$A:$A,0)

这部分可以在A列中查找以C2当中字符打头的项目,返回其中找到的第一个项目的行号

COUNTIF($A:$A,C2&"*")

这部分公式在A列中统计以C2当中字符打头的项目的个数

 

以上面图中的数据情况为例,

MATCH(C2&"*",$A:$A,0) = 4

COUNTIF($A:$A,C2&"*") = 12

整个公式等效于:

=OFFSET($A$1,4-1,,12)

这个OFFSET函数公式的作用是形成一个引用区域,即以A1单元格向下偏移3行(A4单元格),以此单元格起始的12行单元格区域为引用范围。

这个公式的整体作用就是在A列数据源中提取出了以C2单元格当中字符开始的所有项目。以这个提取出来的区域作为数据有效性序列的引用源,就可以形成一个可以动态变化、自动适应单元格输入内容的下拉菜单。

步骤3,选中【数据有效性】的【出错警告】选项卡,取消勾选【输入无效数据时显示出错警告】选项。

 

这个操作步骤的目的是为了在单元格当中输入不完整的项目字符串时,系统不会因为数据有效性的错误警告而阻止用户的输入。

最终完成效果如下:

 

附件下载:

自适应下拉菜单 (2254)

 

 

 

 

发表评论

邮箱地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>