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

漏洞名

一级分类

二级分类

漏洞A

二类

基础结构

漏洞B

三类

SQL注入

漏洞C

一类

高危

漏洞D

 

 


图1 sheet-漏洞分类总表


一类

二类

三类

高危

基础结构

SQL注入

中危

应用系统

跨站点脚本编制

低危

图2 sheet-分类总表


具体的实现步骤:

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




excel根据前一列内容限制后一列 java_二级


图3 excel命名方法

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

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

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

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

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