2014-12-31 86 views
0

在excel中,我有一个包含评论文本(大量文本)的列A:A。如果某个单词包含在评论中,我想创建一个列(col B)来放置类别。如何使用vlookup在excel中查找单元格中的字符串

我在我的工作表2中列出了单词(java,excel,...)。如果java包含在评论文本中,我想放入B列“java”。如果注释文本包含“创先争优”我想有“创先争优作为类别。

我认为这样做与VLOOKUP,但我不知道怎么办。

+0

不幸的是,我不认为这是可能的。如果你在表2中有单词数量有限,那么它是可行的,但是如果这个数组可以增加,那么不是。 – gvee

回答

0

SEARCH功能可以采取一系列的输入。假设你在Sheet2中有50个单词,并且注释中的单词之间用空格分开,并且你确定只返回第一个找到的单词:

C1:

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

B1:

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

C中的公式给出了注释中第一个找到的单词的位置。然后,通过查找单词位置后的第一个空格,您可以使用它从您的评论中提取该单词。 虽然应该有一个更优雅的解决方案!

编辑︰ 当适用于评论“123优秀”,我的公式会给“优秀”,虽然你的单词列表只包含“excel”。请参阅@ barry的答案,以获得更巧妙地使用LOOKUP函数属性的更好解决方案(如果LOOKUP无法找到lookup_value,它会匹配lookup_vector中小于或等于lookup_value的最大值)。

+0

您确定它可以将范围作为输入吗?我无法得到这个工作。 – gvee

+0

是的,它看起来是可以的,并且它返回一个值的向量,正如@ barry-houdini在他的回答中所利用的那样。我正在使用Excel 2010。 – PaloDravecky

1

假设Sheet2!$A$1:$A$50包含搜索列表(无空格),按照帕洛阿尔托的解决方案,然后尝试在B1这个公式复制下来

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

Sheet2!$A$1:$A$50返回最后比赛,所以如果您有任何列表中的单词是列表中其他单词的子字符串,如Excel和Excellent,那么较长的单词应该在列表中稍后 - 理想情况下Sheet2!$A$1:$A$50将按排序长度

相关问题