[疑难求助] 求助EXCEL高手,从一个单元格里提取关键字做匹配校正

donnie🌚-avatar

donnie🌚

2021-06-08T18:03:44+00:00

题目说得有些复杂,其实情况是这样的

领导给了一个EXCEL表格,就是我们镇里近几天已经打了第一针新冠疫苗的人的名单,要求根据地址对名单里的人按行政村分类,然后发到各行政村村委会,由村委会找人,一个一个的要求去打第二针。好吧,这个倒是一个筛选就可以搞定的事,但是

问题来了,因为是乡镇,填写的地址五花八门,所以只能先规范地址才能分类,问题是怎么规范分类,我研究了好几个小时了,都没啥结果,所以求助一下高手,因为这个excel涉及保密,所以就不发上来了,我简单说说表格:

K列是五花八门的地址,要从K2这个单元格里面提取出来自然村或者行政村的名字,然后根据(表名:地址校正)校正后填到P2这个单元格里面,

行政村对应的自然村在 表名:地址校正,A列(行政村名及自然村名,含有错别字的自然村名以及上古时期的一些自然村名叫法)B列(对应的行政村,也就是校正后的地址)


举个例子:
标准地址是:
艾泽拉斯省北裂境镇丧钟村影月自然村

我说的K2的地址就会有

北裂境镇影月自然村

艾泽拉斯省影月村

艾泽拉斯省影月

影月

艾泽拉斯省景月村(错别字,错前一个)

艾泽拉斯省景阅村(错别字,错两个)
艾泽拉斯省影阅村(错别字,错后一个)

以上,写得有些乱,应该能看懂吧,今天打了第二针,有些困,时间也有些晚

算了再写一下

假设 K2地址为
艾泽拉斯省影月村

地址校正表A1:影月 B1 :丧钟

那么A1部分匹配了K2,则,P2填丧钟

问题是,我用的公式:=VLOOKUP(K2,地址校正!A:B,2,TRUE) 模糊查找里,只会返回了A列最后一行对应的B列数值
Raffermogden-avatar

Raffermogden

我觉得你把正确包含关键字的搞好,剩下的什么还包含错别字的人工吧。。这种还能指望简单操作就能对应上么。。。
sk hbtl-avatar

sk hbtl

这用表格简单的多部吧
1 开头2个字配套对比 对了标记1 分出来
2 在标记1进行2次全字节对比(比如计数) 异常0 在自己找
也是很麻烦,你要进准写程序时间不如慢慢对吧
christmas-avatar

christmas

不但不规范,甚至还有错别字?
这个已经不是excel的问题了,
数据量大的话,这个都要是nlp的问题了
ToxicTragedy-avatar

ToxicTragedy

如果你的k2变体的数量不多直接写程序字符比较?符合的都转成你修改过统一的再写回excel里
Straiker-avatar

Straiker

淘宝让人帮你写个程序去吧
Eli-avatar

Eli

给你个思路。
先把汉字转成拼音,然后用instr查询“ing”和“yue”来匹配。
至于怎么转看csdn的一个例子。
[url]https://blog.csdn.net/jyh_jack/article/details/82751570[/url]
你就直接复制他那个转换函数就好。 他里边把汉字ASCII对应的拼音都写出来了,只复制那一部分都可以。
1998 Subaru Impreza 22B STI-avatar

1998 Subaru Impreza 22B STI

错别字还指望工具能处理就不要太想了

除非你地址很有限,能穷举出所有情况
floppy-avatar

floppy

筛选,剪切。
剩下的就是错别字。
LuKas-avatar

LuKas

感觉没办法,只能用不同的名字,一遍一遍筛
dark-avatar

dark

查找替换。
你ctrl+F 先手动把所有错的影月替换成正确的影月。然后再vlookup分类。别想着一步到位。
RayBay-avatar

RayBay

带身份证吗?带的话让领导联系派出所,要一份全镇村民的名单,两表对比不就出来了
donnie🌚-avatar

donnie🌚

感谢给我提供意见的各位

主要想自动分类一下的原因是数据量有些大,每天3000多数据,累计应该有2万多吧,所以想先自动分类一些,然后再慢慢手工筛选

至于数据内容,除了本乡镇的,还有其他乡镇过来打疫苗的,分类到其他,还有其他省市的(在本地开客栈或者常住)也要分类到其他

其实也不要求每一条数据都精确分类,就是想把大量数据分类做好,剩下的再手工慢慢分,要不,采用筛选,剪切粘贴,基本上四、五个小时过去了
donnie🌚-avatar

donnie🌚

[quote][pid=524820571,27222678,1]Reply[/pid] Post by [uid=1456563]影歌归来[/uid] (2021-06-16 08:01):

带身份证吗?带的话让领导联系派出所,要一份全镇村民的名单,两表对比不就出来了[/quote]带,这个思路好!!!!!!

至少能分类出2/3名字了


别的就是其他乡镇的了,量也不大!
shiang-avatar

shiang

导到数据库里模糊查询?[s:ac:哭笑]
kovzm-avatar

kovzm

[quote][pid=524820900,27222678,1]Reply[/pid] Post by [uid=150824]flsnow[/uid] (2021-06-16 08:03):

感谢给我提供意见的各位

主要想自动分类一下的原因是数据量有些大,每天3000多数据,累计应该有2万多吧,所以想先自动分类一些,然后再慢慢手工筛选

至于数据内容,除了本乡镇的,还有其他乡镇过来打疫苗的,分类到其他,还有其他省市的(在本地开客栈或者常住)也要分类到其他

其实也不要求每一条数据都精确分类,就是想把大量数据分类做好,剩下的再手工慢慢分,要不,采用筛选,剪切粘贴,基本上四、五个小时过去了[/quote]简单点就是vba,暴力匹配最长字符串,拿居民填写的地址每个字去匹配所有正确的地址,看哪个地址匹配度最高就行了。
einsaine-avatar

einsaine

搞个字典表用标准名称 -> 同义词数组搞个映射

写个程序用正则表达式处理会比较快
Hexy-Xim-avatar

Hexy-Xim

vba找关键字就成了,错别字可以替换,错的太五花八门会比较难,整体代码不超过50行
donnie🌚-avatar

donnie🌚

[quote][pid=524820571,27222678,1]Reply[/pid] Post by [uid=1456563]影歌归来[/uid] (2021-06-16 08:01):

带身份证吗?带的话让领导联系派出所,要一份全镇村民的名单,两表对比不就出来了[/quote]哎,领导刚联系派出所,派出所说涉密,不给
donnie🌚-avatar

donnie🌚

[quote][pid=524822383,27222678,1]Reply[/pid] Post by [uid=60268190]只看贴就行不回贴[/uid] (2021-06-16 08:13):

vba找关键字就成了,错别字可以替换,错的太五花八门会比较难,整体代码不超过50行[/quote]兄弟,救命,10多年前走出校园就把写代码的事儿还给老师了。