![Excel 2013 使用查找列在列中搜索子字符串并返回附带值](https://linux22.com/image/1468889/Excel%202013%20%E4%BD%BF%E7%94%A8%E6%9F%A5%E6%89%BE%E5%88%97%E5%9C%A8%E5%88%97%E4%B8%AD%E6%90%9C%E7%B4%A2%E5%AD%90%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%B9%B6%E8%BF%94%E5%9B%9E%E9%99%84%E5%B8%A6%E5%80%BC.png)
我有 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))