基本功能需求如下:图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列的数据有效性还包含了“分类总表”中的第一行的内容。若有人解决方法,请指导……在这儿先谢过。