Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Excel中,如何在从左到右的范围内找到相同的单词?_Excel_Vba_Duplicates_Range_Formula - Fatal编程技术网

在Excel中,如何在从左到右的范围内找到相同的单词?

在Excel中,如何在从左到右的范围内找到相同的单词?,excel,vba,duplicates,range,formula,Excel,Vba,Duplicates,Range,Formula,我浏览了一个卖家网站,现在需要从标题中找到相同的产品变体。如何为变体标题找到相同的单词 示例如下所示: 如果有微软Excel 2010或新安装的微软Windows操作系统,我会考虑使用Fuzzy与微软Advin进行匹配。 下载: 它易于使用,关键的优点是,当遇到新术语时,您可以轻松地扩展它。您还可以以简单的方式手动检查匹配,并调整匹配参数以获得更好的结果 您可以创建映射表来实现您的目标。将一个简化的示例看作具有期望表达式的引用表,将新值与之比较。你得到的分数是他们匹配/相同的可能性有多大 从MS

我浏览了一个卖家网站,现在需要从标题中找到相同的产品变体。如何为变体标题找到相同的单词

示例如下所示:
如果有微软Excel 2010或新安装的微软Windows操作系统,我会考虑使用Fuzzy与微软Advin进行匹配。 下载:

它易于使用,关键的优点是,当遇到新术语时,您可以轻松地扩展它。您还可以以简单的方式手动检查匹配,并调整匹配参数以获得更好的结果

您可以创建映射表来实现您的目标。将一个简化的示例看作具有期望表达式的引用表,将新值与之比较。你得到的分数是他们匹配/相同的可能性有多大

从MS Fuzzy:

数据管理中的一个挑战性问题是同一实体可能 在整个数据集中以多种方式表示。例如, 客户“Andy Hill”也可能以“Andrew Hill先生”或 “希尔,安德鲁R.”。合并独立数据可能会导致变化 来源、拼写错误、不一致的命名约定和 缩写,或包含附加/缺失信息的记录

Microsoft Research开发的模糊查找技术允许您 快速识别文本相似的数据记录。你可以 识别单个表中的模糊重复项或执行模糊 连接两个不同的表

其他:

1用于加载项

2极客:如果你对模糊匹配的技术应用感兴趣,请看@Alain给出的惊人答案和周围的讨论:

3关于模糊查找的技术资源


我更喜欢通过VBA来实现这一点,但它仍然可以通过公式实现

查看示例字符串,您需要从右侧删除一个、两个或三个单词来提取公共字符串

您需要的是删除结尾的最后一个单词,并使用*通配符查找精确匹配

如果删除一个单词不足以找到匹配的单词,则应删除两个单词,然后删除三个单词,如果需要更多的单词,依此类推

下面是分别用于剥离一个、两个和三个单词的公式的输出:

B2单元:从右侧删除一个单词并查找匹配项的公式

单元格C2:去掉一个单词的公式,然后从右边去掉两个单词,然后寻找匹配项

D2单元格:从右边去掉一个单词,然后去掉两个单词,然后去掉三个单词,然后寻找匹配项的公式

查看问题中的示例字符串,您应该使用单元格D2中的公式,因为您有三个或更少的单词需要删除。如果你有四个或四个以上的单词,按照逻辑,用一个单词的公式替换三个不够的单词,并对更多的单词重复这个公式。只需复制/粘贴列表其余部分的公式即可

提醒一下:我的列表以A13结尾,所以我在公式中使用了A14。您应该根据列表的长度进行更改


另一个提醒:这些公式基于您的示例字符串,因此如果您在原始列表中遇到与此公式相关的任何问题,那么您也应该将这些示例字符串包含到您的问题中,以获得可行的解决方案。

您可以使用VLOOKUP。根据本教程

其中:

C7是要查找的值 表1是查找范围 2是具有我们希望返回的值的列 FALSE表示我们没有执行范围查找
模糊匹配表-请参见microsoft提供的excel加载项
=IFNA(IFNA(IF(MATCH("*"&LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))-1)&"*",A3:$A$14,0)>0,LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))-1),""),IF(MATCH("*"&LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))-1)&"*",$A$1:A1,0)>0,LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))-1),"")),"STRIPPING ONE WORD NOT ENOUGH")
=IFNA(IFNA(IF(MATCH("*"&LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))-1)&"*",A3:$A$14,0)>0,LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))-1),""),IF(MATCH("*"&LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))-1)&"*",$A$1:A1,0)>0,LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))-1),"")),IFNA(IFNA(IF(MATCH("*"&LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1))-1)&"*",A3:$A$14,0)>0,LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1))-1),""),IF(MATCH("*"&LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1))-1)&"*",$A$1:A1,0)>0,LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1))-1),"")),"STRIPPING TWO WORDS NOT ENOUGH"))
=IFNA(IFNA(IF(MATCH("*"&LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))-1)&"*",A3:$A$14,0)>0,LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))-1),""),IF(MATCH("*"&LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))-1)&"*",$A$1:A1,0)>0,LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))-1),"")),IFNA(IFNA(IF(MATCH("*"&LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1))-1)&"*",A3:$A$14,0)>0,LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1))-1),""),IF(MATCH("*"&LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1))-1)&"*",$A$1:A1,0)>0,LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1))-1),"")),IFNA(IFNA(IF(MATCH("*"&LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-2))-1)&"*",A3:$A$14,0)>0,LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-2))-1),""),IF(MATCH("*"&LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-2))-1)&"*",$A$1:A1,0)>0,LEFT(A2,FIND("[",SUBSTITUTE(A2," ","[",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-2))-1),"")),"STRIPPING THREE WORDS NOT ENOUGH")))
=VLOOKUP(C7, Table1, 2, FALSE)