【Excel】某列数据有效性根据另外一列数据有效性进行动态更改

基本功能需求如下:图1中漏洞的一级分类和二级分类都需要从图2中的sheet里进行选择。若漏洞A的一级分类选择了“一类”,则二级分类对应为“高危、中危、低危”三种;若选择了“二类”,则二级分类为“基础结构、应用系统”两种,以此类推,二级分类是根据一级分类的选择来进行选择的。

漏洞名 一级分类 二级分类
漏洞A 二类 基础结构
漏洞B 三类 SQL注入
漏洞C 一类 高危
漏洞D    

图1 sheet-漏洞分类总表

一类 二类 三类
高危 基础结构 SQL注入
中危 应用系统 跨站点脚本编制
低危

图2 sheet-分类总表


具体的实现步骤:

1)先将“分类总表”sheet的第一行命名,我取的“一级分类”,可自行修改。然后对1、2、3类分别命名,依次为“一类的二级分类”、“二类的二级分类”、“三类的二级分类”。excel的命名方法为选择改行或是该列,然后在图3红框所在位置写上名字,或是用ctrl+f3来命名。


图3 excel命名方法

2)选中“漏洞分类总表”sheet的B列,选择【数据】→【数据工具】→【数据有效性】→【设置】→【序列】,然后输入公式:“=一级分类”(只写最外层引号里面的公式,下同)

3)选中C2,【数据】→【数据工具】→【数据有效性】→【设置】→【序列】,然后输入公式:“=IF(B2="一类",一类的二级分类,IF(B2="二类",二类的二级分类,IF(B2="三类",三类的二级分类)))”

4)选中C2,ctrl+c,选中C列(除C1),然后【选择性粘贴】→【有效性验证】,即可实现整个C列(除C1)相同的数据有效性选择功能。

通过以上步骤就可实现文章开始所述功能。

因为命名是整行或是整列,所以在“漏洞分类总表”的C列的数据有效性还包含了“分类总表”中的第一行的内容。若有人解决方法,请指导……在这儿先谢过。

猜你喜欢

转载自blog.csdn.net/shuizhongmose/article/details/10958971