具有通配符字符串的Excel索引和匹配功能

时间:2018-10-29 23:45:13

标签: excel-formula

我正在尝试将电子表格2中的一个字符串与通配符之间的字符串匹配到电子表格1中两个单元格值之间,然后在匹配时将电子表格1中的C列中的值返回到电子表格2中的B列中。

电子表格1

A               B                C 
Jonathan        Smith            1234
Sarah           Jones            1235 

电子表格2

A                             B 
Jonathan Harry Smith          Return value from column C from Spreadsheet 1 - expected to be 1234     
Sarah Jones                   Return value from column C from Spreadsheet 1 - expected to be 1235

我尝试过的公式是

=INDEX(A:A, MATCH('Spreadsheet 1'A1&"*"&'Spreadsheet 1'B1,'Spreadsheet 1'C:C,0))

该公式似乎不起作用,因为它没有从电子表格1的C列中返回正确的值,它为另一个人返回了一个值。 我哪里出问题了?谢谢。

1 个答案:

答案 0 :(得分:0)

您的公式似乎向后,因为它将返回Sheet2上的名称,而不是Sheet1的C列中的值。它也基于Sheet1的顺序而不是Sheet2的顺序进行匹配。如果工作表的顺序不同,则公式将失败。

我不能完全确定excel通配符是否可以按您需要的方式工作。我建议解析出sheet2中A列的名字和姓氏,并将它们与Sheet1中的A和B列匹配。只要在Sheet2的A列中有1或2个空格,这将起作用。在Sheet2的单元格B2中尝试以下公式:

=INDEX(Sheet1!C:C,MATCH(IFERROR(RIGHT(A2,LEN(A2)-SEARCH(" ",A2,SEARCH(" ",A2)+1)),RIGHT(A2,LEN(A2)-SEARCH(" ",A2))),IF(Sheet1!A:A=LEFT(A2,SEARCH(" ",A2)-1),Sheet1!B:B),0),1)

此公式无需输入数组公式即可工作,这让我感到惊讶。为了安全起见,我可以通过使用CTRL + Shift + Enter执行它来将其视为数组公式。