使用一个工作表中的值与另一个工作表中某一列的长列表(52K)值进行字符串匹配

使用一个工作表中的值与另一个工作表中某一列的长列表(52K)值进行字符串匹配

在工作表 1 中:我有一个相当短的值(文本字符串)列表(~75),并且想要找到这些字符串与另一个工作表(工作表 2)中某一列的值的所有匹配项......这些值可能存在于已知列中更长的字符串/段落中的任何位置。

此外,我希望能够生成第三个工作表,其行数等于匹配的值...为每个工作表构建一行,但也包含工作表 2 中的一些其他列。

工作表 1

ABC
DEF
GHI
...
XYZ

工作表 2

Column1 Column2 Column3
blah1   blahA   Chemical DEF is a compound
blah2   blahB   Compound 24231 (also known as GHI)...

工作表 3

Col1  Col2    Col3
DEF   blah1   blahA
GHI   blah2   blahB

这可以用 Excel 完成吗?

答案1

首先,这在具有 52k 行的 Excel 表上完成肯定会花费一些时间,并且由于工作表 2 中包含段落的列位于工作表 3 中您想要的内容之后,所以我认为使用MATCH()更好。

在工作表 3 中,复制并粘贴您在工作表 2 中查找的文本字符串。然后,您将稍后使用过滤器删除未找到的字符串(在本例中,您将稍后删除ABCXYZ

在工作表 3 的第 2 列中,使用公式(假定您使用位于每张工作表第一行的标题,否则,更改A2A1):

=INDEX('Worksheet 2'!A:B,MATCH("*"&'Worksheet 3'!A2&"*",'Worksheet 2'!C:C,0),1)

在工作表 3 的第 3 列中,使用以下公式:

=INDEX('Worksheet 2'!A:B,MATCH("*"&'Worksheet 3'!A2&"*",'Worksheet 2'!C:C,0),2)

将这两个公式拖到列表末尾,等待计算完成。之后,复制数据并粘贴为值(选择性粘贴 > 粘贴值。这将加快速度)并应用过滤器,以便从#N/A表格中删除所有(如果有)。对表格进行排序以删除行之间的空格。

相关内容