Excel中相似单元格的连接

来源 :电脑爱好者 | 被引量 : 0次 | 上传用户:birentx
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  题目编号:20100201
  积分赏金:50元/80元
  挑战者:广东/郑伟龙
  原题重现:在以往的Excel难题中,你可能会遇到,在一个表格中,用Sheet1中的A列和Sheet2中的C列的每单元格逐一比对,当相同时,就把Sheet1中B列对应行单元格中内容填充至Sheet2的B列相应的位置,比如Sheet1的A2单元格内容为“电脑爱好者”,Sheet2中C5的单元格的内容也为“电脑爱好者”,那么,就将Sheet1中B2单元格中的CFan填充至Sheet2的B5单元格内。现在问题来了,如果Sheet1中的A列和Sheet2中的C列单元格中的内容只要满足70%的相似度就判定Sheet1中的B列单元格的内容填充至Sheet2中的B列中,这种方法如何实现呢?
  一看到这道挑战题,笔者就被出题者那天马行空的思维所折服,在经过几天的折腾之后,好在上天不负有心人啊,最终笔者还是将这个问题解决了。
  1.关于相似度的判断
  我们这里以挑战题里说的例子为例。假设Sheet1中的A2单元格内容的长度为a,Sheet2中的C5单元格内容的长度为c,它们的公共部分的长度为b,即最长公共子序列的长度(如果对这个名词感到陌生,可参考资料http://baike.baidu.com/view/2020307.htm?fr=ala0_1_1,这里就不详细说明了)。设它们的相似度为q,则q=b/(a+c-b)(见图1)。
  2.关于宏代码的编写
  打开目标Excel文档,按下组合键Alt+F11,打开Visual Basic编辑器,接着执行菜单栏的“插入→模块”,然后输入以下代码(代码及例表:http://work.newhua.com/cfan/201011/dm.rar):
  Sub tiaozhan()
  num1 = Sheets(1).[A65536].End(xlUp).Row
  num2 = Sheets(2).[C65536].End(xlUp).Row
  For i = 1 To num1
  For j = 1 To num2
  If flag(CStr(Sheets(1).Cells(i, 1).Value), CStr(Sheets(2).Cells(j, 3).Value)) Then
  Sheets(2).Cells(j, 3).Offset(0, -1) = Sheets(1).Cells(i, 1).Offset(0, 1).Value
  End If
  Next
  Next
  End Sub
  Function flag(str1, str2)
  Dim arr1(100), arr2(100), C(100, 100) '定义两个一维数组arr1、arr2和一个二维数组C
  q = 0.7 '设置相似度,这里设置为0.7(即只要两字符串的相似度为70%)
  len1 = CInt(Len(str1))'得到字符串str1的长度
  len2 = CInt(Len(str2))'得到字符串str2的长度
  For i = 1 To len1 '通过For循环和Mid函数逐个提取str1中的字符,并把这些字符分配到数组arr1
  arr1(i) = Mid(str1, i, 1)
  Next
  For j = 1 To len2
  arr2(j) = Mid(str2, j, 1) '通过For循环和Mid函数逐个提取str2中的字符,并把这些字符分配到数组arr2
  Next
  For i = 0 To len1
  C(i, 0) = 0
  Next
  For j = 0 To len2
  C(0, j) = 0
  Next
  For i = 1 To len1'通过for循环嵌套求出最优公共子序列的长度
  For j = 1 To len2
  If arr1(i) = arr2(j) Then
  C(i, j) = C(i - 1, j - 1) + 1
  ElseIf C(i - 1, j) > C(i, j - 1) Then
  C(i, j) = C(i - 1, j)
  Else
  C(i, j) = C(i, j - 1)
  End If
  Next
  Next
  q1 = CInt(C(len1, len2)) / (len1 + len2 - CInt(C(len1, len2)))'求出str1和str2的相似度
  If q1 > q Then
  flag = True
  Else
  flag = False
  End If
  End Function
  
  3.关于宏代码的运行
  回到Excel文档窗口,运行宏(见图2),就可以将Sheet1中的A列与Sheet2中的C列相比较,如果相似,则将Sheet1中的B列填充到Sheet2中B列。
  怎么样?是不是很简单呢?如果想要修改相似度,只需在代码中修改q的值就可以了。
  
  小编点评:不仅解决了问题,还有理论基础,非常不错的方法,只是单元格里如果有回车符,就失灵……
其他文献
数学语言是数学思维的工具,掌握数学术语,是进行数学学习活动的重要基础。我们应当把培养学生的数学语言和数学知识紧密地结合起来,将它看成是数学学习的重要组成部分。这样才能更好地锻炼学生的条理性、逻辑性和准确性。  一、从数学语言中体会数学术语  数学语言高度抽象,因此数学阅读需要较强的逻辑思维能力。学会有关的数学术语,正确依据数学原理分析逻辑关系,才能对知识有真正的理解。数学概念、符号、术语都有其精确
期刊
《数学课程标准》指出:“数学教学要从学生的已有知识和生活经验出发,创设生动有趣的情境,激发学生对数学的兴趣和学好数学的愿望。”因此,在教学实践中,教师要努力创设情境,激发学生学习的主动性、积极性,从而提高课堂的教学效率。然而在实际创设教学情境时,出现了 “为了情境而情境”、不符合教学实际、牵强附会等现象,严重影响了课堂教学效果。那么,如何科学地创设有效的教学情境呢?下面谈谈创设教学情境的一些方法。
期刊
摘要:校政企三方协同联合,是推进我国高职院校不断为社会培养出更多、更优秀的新型创新创业人才的重要道路和必然要求。本文主要从校政企三方协同,推进水利高职院校创新创业人才培养的理论基础与展开过程入手,并对其相应的机制保障和重要性意义做出了概要的论述和分析,以期能够为相关工作人员的学习和研究提供一定的借鉴作用。  关键字:校政企协同;水利高职院校;创新创业人才;培养研究  引言:  校政企三方协同的水利
期刊
摘要:大数据发展下,人工智能的研究与应用已经成为一种科技发展的必然趋势,在当前已有的互联网,信息技术,计算机技术等与之相关的高新技术的基础上,将人工智能的智慧,理念以及相关的技术成果应用其中,可以帮助当前的科技力量变得更强。在计算机网络技术中应用人工智能的相关技术,提升整个网络体系的安全性,使得信息以及网络体系的应用可以变得更加安全。总而言之,人工智能技术在计算机网络技术中的应用对于人类生活与社会
期刊
本人从事中职英语教学已经有六年了,回想这六年的教学工作,感想颇多,有刚接触职高生时看到他们对英语莫视的痛苦与无奈;也有通过自己努力,让他们中的一些取得较好成绩的欣慰。现我将这六年来教学工作回顾下,以是自勉。  教学就是教与学,两者是相互联系,不可分割的,有教者就必然有学者。学生是被教的主体。因此,了解和分析学生情况,有针对性地教对教学成功与否至关重要。最初接触职高生时,对于他们的估计不充分,(因为
期刊
“外国友人汉语不发达,学好中文汉字全靠它”!继宇宙超级无敌霹雳级化肥“金坷垃”享誉全球之后(资料参考:http://tinyurl.com/2en7pfq),一个神奇的东西再度问世!学一门外语,那是相当的不容易,我们学英语、日语如此,外国人学中文亦如此。假如你有一位会说英语的朋友,不妨与其互相合作,让他教你学英语,你再教他学中文,互相帮助、互相进步。  先从http://www.work.newh
期刊
QC盘分了10GB空间,但现在却只剩下1GB了,而我的软件都安装在其他分区中。请问这一般是哪些文件占用了系统分区空间,如何才能方便地查出来?  A清理回收站,清理垃圾文件后,如果剩余的空间仍不见增大,那可以通过下面的小软件来检测到底是哪个文件夹占用了大量的磁盘空间。“TreeSize Professional ”(下载地址:http://www.crsky.com/soft/8437.html),
期刊
Q我安装的是精简版Ghost系统,装完后下载安装了QQ2009,安装完成后无法运行,提示:由于应用程序配置不正确,应用程序未能启动。请问这是什么原因?    A这可能是缺少VC运行库所致,只要从http://tinyurl.com/29cbgqk下载并安装VC运行库,之后应该就可以正常运行了。  傻博士有话说:  通常情况下不建议安装精简版操作系统,由于精简版操作系统中可能将一些组件删减掉,而很多
期刊
“小问题重启 大问题重装”一直是维护电脑的良方,Ghost的出现更是让重装系统变得更加容易,如今,一键还原软件更是在易用性和功能性上进行了增强,我们进行系统的备份和还原变得越来越简单。既然大家都需要用,那么用哪一个就是摆在我们面前的问题了,信哪个“哥”呢?本期CFAN研究院就来对这些工具进行深入分析,挑出我们该信任的“哥”!    毋庸置疑的测试平台  本次评测采用对比测试,所有测试项目均在同一软
期刊
摘要:食品安全事件频出,保障食品安全成为了热门问题,开发产品防伪溯源系统,运用区块链技术,实现养殖,海洋农业、海洋农产品加工企业、物流等农业生产、运输等环节实现全程可追溯,为食品安全提供技术保障。通过扫描商品专属二维码,使消费者了解符合卫生安全的生产和流通过程,提高消费者放心程度,了解产品的生产环境加工出厂等流程动态同时消费者和农产品品牌进行了绑定,使生产品牌和消费者形成一个强连接。消费者通过扫码
期刊