主要观点总结
文章介绍了在知识产权行业中,如何利用Excel宏VBA小程序处理数据,重点介绍了如何统计各个部门发明奖励系数的总数。文章通过具体的步骤介绍了宏程序的编写过程,包括打开宏程序编辑界面、定义Sub过程及变量、梳理循环和条件逻辑等。
关键观点总结
关键观点1: 知识产权行业与Excel宏VBA的结合
文章首先介绍了知识产权行业与Excel宏VBA的结合点,说明了为什么要使用宏VBA处理数据。
关键观点2: 问题的引出
文章以一个具体的例子引出问题,即某个食品企业各个部门提交发明创造的数据统计问题,说明了手动操作的不足和宏VBA的优势。
关键观点3: 宏程序的编写步骤
文章详细介绍了宏程序的编写步骤,包括打开宏程序编辑界面、定义Sub过程及变量、梳理循环和条件逻辑等,为读者提供了参考。
关键观点4: 程序的运行和效果
文章最后介绍了如何运行宏程序,并给出了运行后的效果,同时预告了下期的内容。
正文
知识产权算是一个盛产数据的行业。专利啊商标啊著作啊,都有著录项目。我们常说的专利分析、产业导航、企业导航、产业预警、竞争情报、技术综述、知识产权评议等等,常规操作之一就要先处理著录项目数据,然后再进行不同角度的分析。
有的小伙伴们会问,分析啊导航啊预警啊有什么区别啊,不都是一回事儿吗?君觉得说得很对,就像吃饭:有的人为了减肥,所以糖少一点;有的人为了增肌,所以蛋白质多一点;有的人为了养生,所以注重纤维素和维生素的搭配;吃饭的目的不同,所以食物的结构、成分、数量都不一样。不过,对大多数过一天算一天的人来说,吃饭就是按部就班、填饱肚子而已。所以说一回事儿也行,说不一回事儿也行,主要看精不精致。
“分析”这种能力,堪称人类智慧之光。专利分析领域有很多大神,还有许多高明的工具和技巧。不过君对分析是七窍通了六窍——一窍不通,所以分析绝对不是这篇文章的重点。
这系列的文章,只想聊几个Excel宏VBA的小程序(
其实并不限于处理专利数据,只是图个方便图个开心罢了
),篇幅短小,而且比较快更
。
假如,某食品企业,每个部门按期提交发明创造。
企业统计人员把发明创造的提交日、年份、发明名称、奖励系数汇总到一张表里。
如果现在需要分段统计各个部门的奖励系数的总数,怎么办呢?
有的小伙伴可能手动用SUM函数求和来搞定,或者可能用“合并计算”搞定咯。
不过,虽然手动操作的技巧简单易学,但当多个数据文件需要一系列的复杂手动操作时,手动操作就存在一些Bug:
每换一套数据,就要重新手动操作一遍
,并且,如果处理数据的人员更换,这一系列复杂手动操作的可移植性和准确性都比较堪忧。人力因素在处理数据的过程中难以抽离,大家很容易变成“表哥”和“表姐”。
相比于人工手动操作,
宏VBA程序
因为在运行过程中剔除了人工的因素,所以可移植性和准确性都较高。而且,编写一段程序,相当于对不同的待处理数据固定了相同的“标准”。这个“
统计各个部门发明奖励系数总数
”的简单小例子,着重传达一种程序思维。
◉
第一步:打开宏程序编辑界面
根据Excel版本的不同,可以在 “
视图
” 中录制一个空的宏,停止录制后进行编辑。也可以在Excel选项的自定义功能区中勾选 “
开发工具
” 访问宏功能。
我们把完成“按部门加合发明奖励系数”的这个过程定义为bigtitle,当然,用其他的名字也可以。随后,我们要定义四个整型变量:
-
i 代表数据区域的行的变量
-
j 代表上一段相同部门底端的行
-
k 代表下一段相同部门底端的行
-
t 代表在一段相同部门的数据范围内变化的行
随后我们再定义两个字符串变量:str1代表第i行的部门名称,str2代表第i+1行的部门名称。
写为:
Sub bigtitle()
Dim i, j, k, t As Integer
Dim str1, str2 As String
*程序主体*
End Sub
① 第一层循环,i从表的第2行循环赋值至第24行,在i的每次赋值过程中,表中第i列、第3列的部门信息被赋值给str1,同时第i+1行、第3列的部门信息被赋值给str2。
写为:
For i=2 To 24
str1 = Sheet2.Cells(i,3)
str2 = Sheet2.Cells(i+1,3)
*条件语句*
Next
② 条件语句,当str1不等于str2时,说明i所在的行已经到了该相同部门的最后一行,从i+1行起,就进入了下一个部门。这时,我们把这个i值赋给k,作为该段相同部门底端的行的标记,同时,把原k值赋给j,用于标记上一段相同部门底端的行。
在判断str1和str2是否相同时,我们使用字符串对比函数StrComp。