如何使用vlookup在excel中查找单元格中的string

在Excel中,我有一个列A:一个评论文本(很多文本)。 如果在评论中包含某个单词,我想创build一个列(col B)来放置该类别。

我在我的sheet2中有一个单词列表(java,excel,…)。 如果java包含在评论文本中,我想把列B“java”。 如果评论文本包含“excel”,我想要“excel作为类别。

我想用vlookup来做到这一点,但我不知道如何。

假设Sheet2!$A$1:$A$50包含search列表(没有空白)按照Palo的解决scheme,然后在B1中试试这个公式

=LOOKUP(2^15,SEARCH(Sheet2!$A$1:$A$50,A1),Sheet2!$A$1:$A$50)

Sheet2!$A$1:$A$50返回最后一个匹配Sheet2!$A$1:$A$50所以如果列表中有其他单词的子string,比如Excel和Excellent,那么较长的单词应该在后面的列表中。理想情况下Sheet2!$A$1:$A$50将按长度sorting

SEARCHfunction可以采取一个范围作为input。 所以一个解决scheme就是这个,有一个帮助栏。 假设在Sheet2中有50个单词,并且注释中的单词之间用空格分开,并且您确定只返回第一个find的单词:

C1:

 =SEARCH(Sheet2!$A$1:$A$50,A1) 

B1:

 =MID(A1,C1,FIND(" ",A1,C1)-C1) 

C中的公式给出了注释中第一个find的单词的位置。 然后,您可以通过查找单词位置之后的第一个空格来从注释中提取该单词。 应该有一个更优雅的解决scheme!

编辑:当申请评论“123优秀”,我的公式将给“优秀”,虽然您的词汇表只包含“excel”。 请参阅@ barry的回答,以获得更好的解决scheme,巧妙地使用LOOKUP函数的属性(如果LOOKUP找不到lookup_value,则它匹配lookup_vector中小于或等于lookup_value的最大值)。