如果字符串包含列表中的单词,则返回与列表值相邻的值

时间:2015-11-10 11:11:56

标签: excel vba

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

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

http://i.stack.imgur.com/97aKI.png

因此,当单元格包含“ADC”时,我希望能够找到ADC在参考数组中出现的位置,然后返回相应的值。

如果可以使用公式或宏来完成,那么两者都会很棒。我尝试以各种组合摆弄索引,匹配和搜索,但似乎没有任何工作。我发现创建一个巨大的if语句是不切实际的,因为有大约70个唯一值可供搜索。

欢迎任何建议!

编辑:我建议使用vlookup,但我不是在寻找相同的匹配,而是寻找字符串中包含的特定值。如果vlookup确实具有此功能,那么有人可以通过我的具体示例向我展示如何将其付诸实践吗?

1 个答案:

答案 0 :(得分:4)

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

Reverse 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中的位置,而不是工作表上的实际行号。我还在原始交叉引用表中对查找插入值进行了加扰,以避免出现关联查找匹配。

¹ Excel 2010引入了AGGREGATE function。早期版本不提供。