EXCEL的多级数据有效性设置
我们经常会遇到如图中的EXCEL表的情况,第一行是一级单位,下面都是二级单位的这种EXCEL形式的小型数据库,我们需要在表中先填写一级单位后再填写二级单位,但是为了防止填写EXCEL工作表的人乱填,需要严格限定单元格内容,同时由于有些数据量非常大,就需要减轻填表人的劳动强度,因此需要在数据有效性的基础上再进一步设置联动。
在EXCEL的sheet1表中选中A列,在数据菜单下选择有效性菜单,进入数据有效性对话框进行设置。
在弹出的数据有效性对话框的有效性条件下选择允许序列,在来源里填写数据库中的一级单位“工业企业,外贸企业,商业企业,个体户”需要注意的是它们之间用英语的逗号隔开。同时选中忽略空值和提供下拉箭头选项。
由于数据有效性不支持从另一个EXCEL工作表中直接选取单元格,因此要做定义名称的工作,用快捷键ctrl+F3打开定义名称对话框,用自己认为好记的名词做为定义后的词,在引用位置设置需要引用的单元格。本例中使用company来代表sheet2中的A1至D1单元格的一级企业。
使用two来代表sheet2中A2这个单元格,由于二级单位有可能很多,因此只引用一个,在后面写公式时再详细说明。
定义在对二级单位进行数据有效性性设置时在来源中写如下的公式:"=OFFSET(two,,MATCH($A2,company,)-1,COUNTA(OFFSET(two,,MATCH($A2,company,)-1,65535)))"这个公式的意思是A列某单元格的内容是某个一级公司,则在本列对应的单元格内显示这个一级公司下属的二级企业的下拉菜单供人们选择,最多可以显示65535个。
=OFFSET(客户名称,,MATCH($A2,first,)-1,COUNTA(OFFSET(客户名称,,MATCH($A2,first,)-1,65535)))
=OFFSET(口,,MATCH($H6,客户名称,)-1,COUNTA(OFFSET(口,,MATCH($H6, 客户名称,)-1,65535)))
=INDIRECT(province)
这个就是数据有效性多重下拉菜单的效果,当A2单元格选中工业企业时,B2单元格就自动列出工业企业的二级单位名称,这样就达到了即能防止填表人乱填表,又能减轻填表人的劳动强度的目的。
(注:可编辑下载,若有不当之处,请指正,谢谢!)