很多时候在使用Excel表格时,咱们要用到下拉列表式的输入,不仅十分方便,而且不容易出错。
通过设置数据验证,可以直接引用某个区域作为序列来源,完成下拉列表的效果,但是这样生成的下拉列表中的条目不能随数据源数量的增加或是减少而自动变化。
利用OFFSET函数能够实现动态引用的特点,能够实现下拉列表的自动扩展。
今天咱们以Excel2013版本为例,和大家一起学习动态下拉列表的制作。
题目要求:A列是省份名称,要求在C2单元格使用数据验证创建动态下拉列表。
首先完成自定义名称
单击C2单元格,按<Ctrl+F3>组合键,在弹出的【名称管理器】对话框中单击【新建】按钮,弹出【新建名称】对话框。在【名称】编辑框中输入自定义名称“省份”,在【引用位置】编辑框中输入以下公式:
=OFFSET($A$1,1,,COUNTA($A:$A)-1)
依次单击【确定】和【关闭】按钮,完成自定义名称的设置。
接下来设置数据有效性
单击C2单元格,在【数据】选项卡中依次单击【数据验证】,在弹出的【数据验证】对话框中单击【设置】选项卡,【允许】选择“序列”,在【来源】编辑框中输入以下公式:
=省份
单击【确定】按钮,完成设置。
此时单击C2单元格右侧的下拉箭头按钮,会出现效果如下图所示的下拉列表。
咱们简单说说自定义名称公式的意思:
COUNTA($A:$A)用于计算A列不为空的单元格个数。
OFFSET函数以$A$1单元格为基点,向下偏移1行,向右偏移0列,新引用的行数为A列不为空的单元格个数减1(去掉列标题的计数)。
公式根据A列的实际数据个数,确定OFFSET函数引用的行数,实现对A列数据区域的动态引用。如果A列数据增加或减少,COUNTA函数的结果就会发生变化,结果传递给OFFSET函数,新引用的行数会发生变化了,下拉列表中的内容也就自动进行调整。
下图中,左侧的A列有9个省份,C2的下拉列表中是9个条目。
右侧的A列删除掉了部分数据,这时候C列的下拉列表中就自动减少了条目。
注意:使用此技巧要求A列的数据必须连续输入,数据之间不能有空白单元格,否则的话,COUNTA函数传递给OFFSET函数的就是一个不准确的行数信息,引用范围就会有偏差了。你也试试吧~