楼主 jhyym |
一、操作步骤 第一、在“原始资料之一”页面上,通过下拉列表在B2单元格选择单位,计算机自动对出现频率(D列)进行从高频率到低频率的排序。 第二、根据频率,确定该单位(B2单元格的单位)与这个列表的单位对应关系,比如说,如果与第10行的单位对上,那么,就把鼠标停在F10上,点击鼠标,使F10成为当前活动单元格,此时,B2单元格上的内容就自动复制到C10单元格上;如果都没对上,那么,就把鼠标停在F5或上面的单元格上,点击鼠标,使F5或上面的任意一个单元格成为当前活动单元格,此时,就不会把B2单元格上的内容复制到任意一个地方去了。 重复以上操作,就很方便处理这个对应关系了。 二、原理机制 第一、被核对单位放在“原始资料之一”页面上,起始位置F5,F列为被核对单位列,F以后的列不限,第5行为字段名,不能为空。如果给出的单位库本身就有序号列,请从E列开始;由于排序涉及后续紧跟单位是否一起跟着走,如果担心不会跟上,请在最后列也添加序列号列,确保被核对单位信息在排序的时候正确跟上。 第二、核对单位放在“原始资料之二”页面上,起始位置F5,F列为核对单位列,F以后的列不限,第5行为字段名。 第三、在“原始资料之一”页面的B2单元格上,利用Excel的数据有效性,制做一个下拉列表,把“原始资料之二”页面上单位以清单形式影射到B2单元格上,在此之前,由于数据有效性的跨页面影射需要定义一个名称,在本文中,需要定义一个yszl的名称,在名称的定义中,已经自动隐含了查找单位的行数,使得查找单位数具有可变,从而起到查找单位具有通用性,具体名称描述在下面公开。 第四、在“原始资料之一”页面上,在D列上计算B2单元格和F列单元格相同汉字出现的频率,频率的公式描述在下面公开。 第五、在“原始资料之一”页面上,为了便于查找核对单位的其它信息,我们在A2单元格上影射了查找核对单位序号,便于反查在“原始资料之二”页面上相应单位的信息。 第六、在“原始资料之一”页面上,通过B2单元格内容的改变,利用单元格选择改变响应事件,自动记忆(简称:复制。)B2单元格内容,并对B列进行从大到小的排列(简称:排序。),单元格选择改变响应事件具体描述在下面公开;在F列上,通过F列外的其它列的上下移动,查找到相应单位,并点击F列的相应行,使得上面描述的自动记忆B2单元格内容快速地粘贴在C列的相应行上,如果,查找不到响应的单位,或者说没有相应的单位,由于有上面的对B列进行从大到小的排列,只要点击F列第6行及以上的单元格,上面的在C列的相应行上的粘贴就自动取消(无论是否找到,全部简称:粘贴。),同时,上面的一系列描述是一个单元格选择响应事件,单元格选择响应事件具体描述在下面公开。本条就是这个程序想要完成的核心功能:复制、排序、粘贴,也是一个循环的动作。 三、函数(程序)公开 第一:yszl的名称:
第二、D6单元格的计算公式:
在D列上,D6以下的公式是通过复制D6单元格的内容来实现了,在上面的公式中,由于有了单元格的绝对引用和相对引用,D6以下单元格的公式内容对相应引用的单元格会做出相应的调整,从而达到正确计算,正因为上面公式复制是跟着被核对单位的数量走的,从而看出被核对单位数也是可变的,同样也看出被核对单位具有通用性。 第三、序列号:
第四、单元格选择响应事件:
单元格选择改变响应事件:
四、使用的注意事项 第一、排序具有一个记忆功能,如果排序出现一个自小到大的逆序情况,进行一次自大到小的排序操作。 第二、如果出现一些后续资料跟不上的情况,请检查给出的单位信息里是否包含不可见符号,在Excel里,排序对包含不可见的信息会出现混乱。 附件: 模糊比对.rar |
2楼 biaotiger1 |
是不是应该这样啊? 第一、排序具有一个记忆功能,如果排序出现一个自小到大的逆序情况,自行执行一次自大到小的排序操作。 还有,你自己不能编辑了? |
3楼 曹因斯坦 |
这个相当强,正在试着用,很好 |
4楼 poiuyman5 |
VBA, good |