专栏名称: 果汁焗酱油
酱油君私人图书馆:定期更新果汁局公益讲座直播地址、课件及视频资源;不定期更新学习笔记,随心情发布酱油君的碎碎念。
目录
相关文章推荐
求是网  ·  更好发挥民间外交主渠道作用 ·  昨天  
CHINADAILY  ·  Sports丨Family Thais ... ·  昨天  
求是网  ·  正确认识并妥善处理城乡关系 ·  2 天前  
51好读  ›  专栏  ›  果汁焗酱油

Excel宏VBA小技巧系列 | 名称标引

果汁焗酱油  · 公众号  ·  · 2020-01-21 11:11

正文

在上面两篇文章 分段加合 整合排序 中,我们利用VBA小程序求得了各部门的奖励系数总和,并且依据奖励系数对各个部门进行了降序排序。今天我们再进行一个简单却常用的操作—— 标引


我们依然以前两篇文章中的食品企业的例子来进行说明,这张工作表存在于Sheet2中。


如果现在我们面临这样一个需求: 按照发明名称来区分其是否可以用于火锅、用于休闲食品或者用于制作家庭方便食品 ,此外,如果这些发明属于方法类的发明,也要标注出来,最后,分别计算“用于火锅”、“用于休闲食品”、“用于制作家庭方便食品”、“方法类发明”的发明创造的奖励系数。

有的小伙伴会说,区分发明的内容,咋不用分类号呢?哦亲爱的,这个企业不知道什么叫分类号,目前就只有这些发明名称,就酱。


一般来说,如果没有分类号的辅助,那么我们的思路大概率只能是一个一个去理解这些发明名称,然后一个一个在后面标注“火锅”、“休闲食品”、“家庭方便食品”的标签。这个例子里面只有二十几个发明创造,如果这家企业有成百上千个发明创造的话,这种操作无异于又使大家变成了“表哥”和“表姐”。

所以,我们给计算机建立一个字典,这个字典中设立以下规则:
  • 名称中含有“蘸水”、“丸子”——纳入“火锅类”
  • 名称中含有“薯片”、“罐头”、“能量棒”——纳入“休闲食品类”
  • 名称中含有“腌制”、“酱”、“粉”——纳入“家庭类”
  • 名称中含有“方法”、“工艺”——纳入“技术类”

在Excel中,建立字典很简单,只需要赋值语句即可。
此处我们在Sheet3中建立这个字典,并将这个过程命名为dictionary:


经过运行,我们在Sheet3中得到这个字典表现如下。 第一行代表类别的名称,从第二行开始,每一列均为不同类别下的标引词:


接下来 ,我们用每一类里的标引词来标引该食品企业所有的发明名称。 思路如下:

① 将Sheet2中的第1、3、4、5列 (即提交日、发明部门、发明名称和奖励系数) 复制到Sheet6的第1-4列,含表头共24行。同时,定义dic和name两个字符串,其中,dic用来被赋予Sheet3中的标引词,name则用来被赋予Sheet6中的发明名称。

② 其次,确定第一层循环是按照行顺序遍历Sheet6中的发明名称,第二层及第三层循环是按先列、后行的顺序遍历Sheet3字典中的标引词。三层循环的语言顺序如下,其中,s代表Sheet6中的行,j代表Sheet3的列,i代表Sheet3的行,t是代表Sheet6中的标引词的起始列数,因为标引词标记在“奖励系数”这一列之后,所以t=5:


For s = 2 To 24
name = Sheet6.Cells(s, 3)
t = 5
For j = 1 To 4
For i = 2 To 5

* 主体程序*
Next
Next
Next


此外,还需要注意,在每结束Sheet6中一个发明名称的标引之后,下一个发明名称的标引都要重新从第5列开始标引,所以t=5的赋值应当在第一层循环之内。







请到「今天看啥」查看全文