您的位置:首页 > 其它

Excel-用OFFSET和COUNTA实现动态增加下拉列表

2011-08-19 13:38 344 查看
命名区域时候单纯的框选区域 选中的区域中有空行时候 下拉列表有空白

再次编辑添加条目时容易出现格式混乱

Excel的下拉框大家一定都知道,是用数据有效性中的序列来完成的。但是他有个很明显的弊端,就是无法动态的去加入下拉列表中内容,一旦下拉列表内容需要做调整的时候,就需要一个个的重新在数据有效性中的序列中去增加,这是一个相当复杂和容易出错的工作。
如何实现这一需求?
先介绍两个Excel中很有用的两个函数:OFFSET和COUNTA。
OFFSET是用来返回一个引用,引用可以是单元格或者一个单元格区域的;而COUNTA是用来返回参数列表中非空值的单元格个数。
这里我想实现这么一个具体的功能:我的Excel有一列叫“PM”,并且我想随时在下拉列表里增加“PM人选(如图一)。见图一,目前PM这列有四个人选,我想动态增加一个PM人选“巨元”,如何做?

(图一)

步骤一:借助另外一个Sheet,用某一列来定义PM人选(如图二)
步骤二:Excel有一个叫名称管理器-定义名称,这个功能类似与我们开发语言中的全部变量,在这里我们定义一个变量名称:PM,并设置引用位置:=OFFSET(CONFIG!$C$2,1,0,COUNTA(CONFIG!$C$2:CONFIG!$C$256)-1,1);这个公式是核心,简单解释一下:

1)COUNTA(CONFIG!$C$2:CONFIG!$C$256)-1;返回值:4

2)OFFSET(CONFIG!$C$2,1,0,4,1);返回值:C3:C6的数组
步骤三:在图一中的PM这列使用数据有效性的序列,来源:=PM(就是名称管理器中定义的变量);
步骤四:现在我们可以在图二中PM这列中任意增加、删除、修改内容(增加“巨元”),都会立刻动态同步到图一中的PM下拉列表(显示包括“巨元”在内的五个PM人选的下拉列表)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: