2013-02-26 71 views
0

我将描述我的数据开始查找列表

List1: 
Company   Result 
--------- 
Company1 (1234) 1 
Company1 (1445) 1 
Company3blabla 2 
Company4   0 

LookupList: 
Company  Index 
------------------ 
*Company1* 1 
*Company3* 2 

我试图找到一个公式,将List1中每个企业搜索如果包含从LookupList匹配(因此*通配符的存在),如果是这样,它将返回相应的索引值,如Result列所示。

到目前为止,我得到了一个公式,可以返回1,如果有一个匹配,如果不为0,但我不知道怎么去从那里的索引值:

{= MAX(ISNUMBER(SEARCH ('LookupList'!$ A $ 1:$ A $ 2,List1 [[This Row],[Company]]))+ 0)}

回答

0

您不需要通配符(SEARCH会自动在其他文本中进行搜索),这样你可以删除那些和使用该公式结果列得到的索引值

=IFERROR(LOOKUP(2^15,SEARCH('LookupList'!$A$1:$A$2,List1[[#This Row],[Company]]),'LookupList'!$B$1:$B$2),"")

如果没有匹配,这会给你一个空白 - 如果需要,将“”结尾改为文本,如“不匹配”

+0

这很好用!唯一的是它返回了公司价值而不是索引。为了得到索引,我必须在查询的las参数中引用列B:= IFERROR(LOOKUP(2^15,SEARCH('LookupList'!$ A $ 1:$ A $ 2,List1 [[This Row],[公司]]),'LookupList'!$ B $ 1:$ B $ 2),“”) – Lukasz 2013-02-26 15:52:29

+0

非常感谢,巴里。 – Lukasz 2013-02-26 15:53:54

+0

是的,我发布的原稿有错误的参考文献 - 我很快就改变了.... – 2013-02-26 15:55:09