作者:乔山办公网日期:
返回目录:excel表格制作
1、首先看一下原始数据和要求。A列为持续录入的姓名信息,有重复项目。C列需要设置A列不重e68a84e8a2ade799bee5baa6e79fa5e98193364复内容的下拉菜单。
2、以B列作为辅助列,用公式生成A列姓名的不重复列表,并可以自动更新。
双击进入B2单元格,输入公式:
=INDEX($A$1:$A$99,MATCH(0,COUNTIF(B$1:B1,$A$1:$A$99),0))&""
输入完毕后,左手按住Ctrl和Shift,右手按下回车运行公式。
3、将B2的公式下拉一定的行数,比如说50行。这时,B列就返回了A列的不重复列表。如果A列增加数据内容,B列也会相应变动。
4、接下来,选择【公式】-【定义名称】来定义一个名称引用B列返回的不重复列表。
5、在名称处输入“Data”,在引用位置输入下面的公式并确定:
=OFFSET($B$2,,,SUMPRODUCT(N(LEN($B:$B)>0)),)
6、选中C2单元格,选择【数据】-【数据有效性】。
7、在设置界面选择“序列”,在公式处输入:=Data,然后点击【确定】按钮。
8、这时,在C1下拉菜单就可以返回A列不重复内容形成的下拉菜单了。
9、当A列内容更新时,B列内容也同时更新,C列的下拉菜单也随之改变。
普通方法生成的下拉菜单:
1
如下图,利用公式在D列返回某些表格的不重复值,作为下拉菜单的数据源。D列数据的个数不确定。
2
为了使数据有效性能够显示所有的备选数据,所以一般我们选择一个较大的范围,比如说D1:D8区域。制作数据有效性如下:
3
这样制作的下拉菜单中就会包括数目不定的空白,如果空白非常多的话在用下拉菜单选择数据时就非常不方便。
END
解决方案:
选中要设置下拉菜单的E1单元7a64e78988e69d83365格,选择【公式】-【定义名称】。
定义一个名称为“Data”的名称,在【引用位置】输入下面的公式并点击【确定】。
=OFFSET($D$1,,,SUMPRODUCT(N(LEN($D:$D)>0)),)
选中E1单元格,选择【数据】-【数据有效性】。
如下图,选择“序列”,“来源”处输入=Data,然后【确定】。
这样,在E1的下拉菜单中就只有非空白单元格的内容了。E1的下拉菜单会自动更新成D列不为空的单元格内容。
使用公式的简单说明:
=OFFSET($D$1,,,SUMPRODUCT(N(LEN($D:$D)>0)),)
其中的LEN($D:$D)>0判断单元格内容长度是不是大于0,也就是如果D列单元格为非空单元格就返回TRUE,然后SUMPRODUCT统计出非空单元格个数。最后用OFFSET函数从D1开始取值至D列最后一个非空单元格。
正常情况下,如果你使用了序列,那没办法再加上其他的条件。但是,因为你用了序列,那默认此列单元格中只可以输入下拉菜单的内容,如果输入非zd下拉菜单中回的内容会出现提示的。如果你的可以不输入下拉菜单中的内容,那你进入数据有效性,看一下“出错警告”,是不是去掉了里面的提示勾选啊? 当然,这只是设定为你想手工输入。如果用的复制粘贴,那就无力了。那样的话,你只可以答用vba。对此列单元格监控变动,对比你的有效性值。