Excel 2013 使用查找列在列中搜索子字符串并返回附带值

Excel 2013 使用查找列在列中搜索子字符串并返回附带值

我有 2 张纸:

sheet1 包含 2 列,如下所示:

columnA   columnB
AB        Texas
BC        California
DE        Virginia

sheet2 包含 1 列,如下所示:

columnA
AB_documentOne.pdf   
BC_documentTwo.pdf   
DE_documentThree.pdf 
AB_documentFour.pdf  
AB_documentFive.pdf  
DE_documentSix.pdf  

在 Sheet2 中的相邻列“columnB”中,我想要从 Sheet1 中的 columnB 中提取正确的值。

期望结果:

columnA               columnB
AB_documentOne.pdf    Texas
BC_documentTwo.pdf    California
DE_documentThree.pdf  Virginia
AB_documentFour.pdf   Texas
AB_documentFive.pdf   Texas
DE_documentSix.pdf    Virginia

我试过:

=INDEX(sheet1!B:B,MATCH(sheet1!A:A,sheet2!A:A,0))

由于我使用 Sheet1 中的 columnA 作为 Sheet2 中 columnA 的子字符串查找,因此这将产生错误。

Excel 版本:2013

感谢您的帮助。

答案1

我能够使用 LEFT(string,2) mod 进行以下操作以进行查找,切换匹配参数的顺序,并将 A:A 切换至​​特定单元格,但固定该列,以便您可以将其复制到该列而不会出现问题:

=INDEX(Sheet1!B:B,MATCH(LEFT(Sheet2!$A1,2),Sheet1!A:A,0))

在此处输入图片描述

编辑后续评论

要在全文中的任何位置找到目标字符串,我能够使其工作的唯一方法是使用数组公式(必须按CTRL+ SHIFT+输入它们ENTER)并使用我发现的 COUNTIF() 技巧这里首先找到目标字符串开始匹配全文的索引。

COUNTIF() 查找找到了哪个目标字符串(实际上它为您提供了匹配的数量),然后使用 MATCH() 使用哪个字符串具有 1 个匹配的索引,然后您的 INDEX() 获取与找到的匹配项相对应的州名称。

=INDEX(Sheet1!B:B,MATCH(1,COUNTIF(A1,"*"&Sheet1!A:A&"*"),0))

相关内容