ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: shanchuan

[讨论] 字符相似度比较的问题--经典模式

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-8-9 17:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
E2=IF(SUM((MMULT(1*ISNUMBER(FIND(MID(C2&REPT("%",20),COLUMN(A:Z),3),$C$2:$C$47)),ROW($1:$26)^0)>2)*($A$2:$A$47=A2)*($B$2:$B$47=B2))>2,C2,"")
公式中蓝色的3可以改为1,2.越小表示相似要求越低。

TA的精华主题

TA的得分主题

发表于 2010-8-9 17:17 | 显示全部楼层
呵呵,不知道楼主的此帖在程序开发板块。

TA的精华主题

TA的得分主题

发表于 2010-8-9 19:12 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本人是菜鸟一个。个人感觉这个问题相当有难度,就象前面的高手说的,解决这个问题,恐怕要人工智能有相当高度的发展才行。

TA的精华主题

TA的得分主题

发表于 2010-8-9 19:23 | 显示全部楼层
猜测楼主是想做产品改良之类的意见收集,因此个人认为可以考虑将 相似   的标准定得低一点,然后再人工鉴别,以免有疏漏。从执行效率考虑,恐怕费尽心思做出的程序还不一定能符合要求。有这个时间也可以人工完成工作了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-9 20:42 | 显示全部楼层

欢迎

原帖由 zhanhewang 于 2010-8-9 17:17 发表
呵呵,不知道楼主的此帖在程序开发板块。


没关系  无论函数还是程序  关键在于解决问题。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-9 21:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 zhanhewang 于 2010-8-9 17:06 发表
E2=IF(SUM((MMULT(1*ISNUMBER(FIND(MID(C2&REPT("%",20),COLUMN(A:Z),3),$C$2:$C$47)),ROW($1:$26)^0)>2)*($A$2:$A$47=A2)*($B$2:$B$47=B2))>2,C2,"")
公式中蓝色的3可以改为1,2.越小表示相似要求越低。


其中C2&REPT("%",20)解释一下,

TA的精华主题

TA的得分主题

发表于 2010-8-9 21:18 | 显示全部楼层
其中C2&REPT("%",20)解释一下,
C 列的长度大小差别很大,加上20个%是为了避免出现Mid函数取到“”的情况

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-9 21:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

奇妙的公式,请解释一下结构吧,方便大家学习

原帖由 zhanhewang 于 2010-8-9 21:18 发表
其中C2&REPT("%",20)解释一下,
C 列的长度大小差别很大,加上20个%是为了避免出现Mid函数取到“”的情况

那么,
MMULT(1*ISNUMBER(FIND(MID(C2&REPT("%",20),COLUMN(A:Z),3),$C$2:$C$47)),ROW($1:$26)^0)
得到的是什么

[ 本帖最后由 shanchuan 于 2010-8-9 21:45 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-9 21:53 | 显示全部楼层
原帖由 ttxw 于 2010-8-9 19:23 发表
猜测楼主是想做产品改良之类的意见收集,因此个人认为可以考虑将 相似   的标准定得低一点,然后再人工鉴别,以免有疏漏。从执行效率考虑,恐怕费尽心思做出的程序还不一定能符合要求。有这个时间也可以人工完成工作 ...



放眼未来,千里之行始于足下  一劳永逸

TA的精华主题

TA的得分主题

发表于 2010-8-9 22:27 | 显示全部楼层
原帖由 shanchuan 于 2010-8-9 21:36 发表

那么,
MMULT(1*ISNUMBER(FIND(MID(C2&REPT("%",20),COLUMN(A:Z),3),$C$2:$C$47)),ROW($1:$26)^0)
得到的是什么

简单地说,得到的是C2:C47与C2有3个相连字符相同的个数。个数越多,表明相似度越高。

[ 本帖最后由 zhanhewang 于 2010-8-9 22:28 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-23 23:40 , Processed in 0.043077 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表