前言
目前本人的工作是驻场渗透。日常的工作就是由别人整理好渗透测试的案例,我需要将其导入QualityCenter(QC),然后进行渗透测试,根据测试结果在QC中对案例状态进行变更(比如:no run、pass、failed)
场景
某天收到的案例 excel 表格中缺少了案例编号这一列
而案例编号是由系统名、一级功能、二级功能以及编号组成。比如:贷款-登记-查询-001。我当时的做法是新建案例编号列,手动打出贷款-登记-查询-001,下拉,就行。但是到了二级功能为创建的时候,又得手工打一遍(贷款-登记-创建-001),下拉。一共有400+个案例,这样操作了近30次吧。其实也并没有花太多时间。
思考
下次或许会有新的系统需要案例编号,我又这样傻乎乎的填写下拉一遍?如果案例数有上千条呢?最好还是用excel的函数来解决吧,一劳永逸!
首先实现逻辑上是很清楚的:如果下行的一级功能、二级功能与本行的一致,下行案例编号数+1;如果不同,编号要重新变为001。
编写过程
如果下行的一级功能、二级功能与本行的一致
这里要用到两个函数,分别为AND()、EXACT()
然后结合IF(),单单看编号,如果下行的一级功能、二级功能与本行的一致,下行案例编号数+1;如果不同,编号要重新变为1
接着就可以完成一个半成品了
编号001问题
接下来的问题在于,编号需要是001、002这样的,而不是1、2。这是我编写时遇到的最大的难点,因为:如果需要输入001,你需要修改单元格格式为文本,才能成功输入,而当它变为文本时,会出现问题:
一个朋友帮忙解决了,要点是使用TEXT()函数
实现效果
最终成功实现所需要的:
虽然成功实现了需要的功能,但是需要借助辅助列(E列),如果E列消失,我们的案例编号列(C列)就会出问题。
整合(去辅助列)
感悟
有位大佬曾经说过一句,当一件事需要你做3次及以上时,你就需要考虑将其自动化。这次终于成功实践了一把,也算是一种进步吧!