Excel数据(有效性)验证的级联选择列表的缺陷及应该如何修正
我们都知道在Excel中如何利用数据验证功能制作级联选择列表,但是这个方法有一个小缺陷。今天我给大家介绍一下这个缺陷,以及应该如何制作无缺陷的级联列表。
制作级联列表
假设我们有数据如下:
我们创建如下的名称(关于如何创建名称,请参见这篇文章):
接下来,我们为事业部的输入单元格设置数据验证:
为级联的二级部门设置数据验证:
这里,我们通过一个函数INDIRECT将C2的选择值转化为对应的事业部名称。
这样我们就实现了级联选择:
有个小问题
这个级联列表有个小问题:
在上面的画面中,我们看到了一种状态,事业部是“美洲区域中心”,部门是“采购部”。
但是实际上,美洲区域中心根本没有采购部:
这个采购部是怎么选出来的?其实是当事业部是“产品设计制造本部”时,部门选择了“采购部”,然后又回头将事业部选择为“美洲区域中心”,就出现了这种状况。
这种级联列表没有办法在选择第一级(事业部)的时候就对下面的二级选择(部门)做出操作,只有手动选择二级部门时才会去根据第一级的选择做反应。
解决方法
大部分人对这个问题的解决方法是写程序。其实,如果我们使用组合框来做这个级联列表的话,就可以避免这种情况。
首先,我们做第一级选择列表。
在“开发工具”选项卡下,点击插入“组合框”:
通过鼠标拖拽在工作表中插入组合框:
在组合框中,点击右键,点击设置控件格式在其中,将数据源区域设置为:事业部,单元格连接设置为:$J$2
点击确定,第一级设置就完成了:
现在添加一个新的名称:选择事业部,
其中引用位置处使用公式:
=INDIRECT(INDEX(事业部,Sheet3!$J$2))
然后添加第二个组合框作为列表选择,并将其数据源和链接单元格进行如下设置:
点击确定,完成设置:
当做出第一级选择时,第二级选择就会跟着改变:
赞 (0)