如果字符串包含列表中的单词,则返回与列表值相邻的值。
如果字符串包含列表中的单词,则返回与列表值相邻的值。
目前我有一组单元格,其中包含一些无用的信息,但每个单元格都有一个唯一的标识符。我还有一个包含这些唯一标识符以及每个标识符对应值的列表。
我想做的是找出每个单元格包含的标识符(如果有),然后输出相应的值。下面是一个例子:
https://i.stack.imgur.com/97aKI.png
所以当单元格包含"ADC"时,我希望Excel在参考数组中找到ADC出现的位置,然后返回相应的值。
如果可以用公式或宏来实现,都可以。我已经尝试过使用索引、匹配和搜索等不同的组合,但似乎没有起作用。由于要搜索约70个唯一值,创建一个庞大的if语句并不实际。
欢迎任何建议!
编辑:有人建议我使用VLOOKUP函数,但我不是寻找完全匹配,而是寻找包含在字符串中的特定值。如果VLOOKUP函数具有这种功能,能否有人向我展示如何在我的具体示例中实践?
问题的出现原因:
这个问题的出现是因为需要从一个字符串中查找是否包含列表中的单词,并返回与列表值相邻的值。在给定的内容中,介绍了一种使用AGGREGATE函数和INDEX函数实现这个功能的方法。
解决方法:
解决方法是使用AGGREGATE函数和INDEX函数。AGGREGATE函数可以进行循环计算,并且有一个选项可以丢弃错误。可以使用这个函数来在与交叉引用表匹配时生成行号,并使用INDEX函数返回实际值。在给定的内容中,给出了一个示例公式来实现这个功能。
示例公式:
=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中的位置,而不是工作表上的实际行号。为了避免关联查找匹配的感知,还将原始交叉引用表中的“查找”和“插入”值混淆。
其他问题的解决:
如果想知道是否有多个匹配的字符串以及它们是什么,可以调整AGGREGATE函数的SMALL子函数的参数。将右端的1更改为COLUMN(A:A),然后向右填充。此外,还需要将列引用(如F:F)锁定为$F:$F,以防止它们移动,并可能使用IFERROR函数将整个公式包裹起来,以避免在没有第二个或第三个匹配项的情况下显示错误消息。
其他注意事项:
对于文本长度超过255个字符的单元格,需要在使用这个公式之前将文本拆分。
通过使用AGGREGATE函数和INDEX函数,可以实现从一个字符串中查找是否包含列表中的单词,并返回与列表值相邻的值的功能。通过调整参数和添加额外的函数,还可以解决其他相关的问题。