在工作表 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 中查找的文本字符串。然后,您将稍后使用过滤器删除未找到的字符串(在本例中,您将稍后删除ABC
)XYZ
。
在工作表 3 的第 2 列中,使用公式(假定您使用位于每张工作表第一行的标题,否则,更改A2
为A1
):
=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
表格中删除所有(如果有)。对表格进行排序以删除行之间的空格。