在Excel中search多个单元格,例如

我很欣赏这些回应,但是我觉得我的措辞是模棱两可的。 让我试着用图片来解释。

http://postimg.org/image/mrh7okefp/

公式放在C2中,并将查看A2中的所有单词。 然后它会searchB2:B9的任何比赛。 如果发现了什么,它会把这个单词放在C2中。 如果它什么都没发现的话,它会把单元格留空(我忘了把它包含在图像中)。 然后可以将公式拖到C3,并search相同的B2:B9,将find的单词放在C3中。 等等等等。 希望这有助于澄清。

按Alt + F11,将此代码粘贴到一个空的模块中,在工具/引用中检查VBScript Regular Expressions 5.5checkbox,并在列B中使用ExtractColor作为用户定义函数。它处理具有多个关键字的单元格。

 Function ExtractColor(c As String) As String With CreateObject("VBScript.RegExp") .ignorecase = True .Global = True .Pattern = "(red)|(blue)|(orange)|(green)|(black)|(white)|(purple)|(yellow)|.+?" Set myMatches = .Execute(c) If .Test(c) Then ExtractColor = Application.Trim(.Replace(c, "$1 $2 $3 $4 $5 $6 $7 $8")) End With End Function 

这是使用公式的一种方法。 想象一下如下设置:

  AB 1 dog cat mouse orange table 2 cat cat 3 orange orange 4 bananas No match 

B2单元格中input这个公式:

 =IF(ISERROR(MID($A$1,FIND(A2,$A$1,1),LEN(A2))),"No match",MID($A$1,FIND(A2,$A$1,1),LEN(A2))) 

这通过检查是否有匹配来工作。 如果有的话,它会得到第一个字符的位置和单词的长度来提取你所需要的。

几点:

  1. 你可能想考虑如何处理大小写敏感
  2. 如果在句子中只有一个search词的实例,这是有效的

希望这有助于你开始。

该公式可以进一步简化以获取单元格中的search文本。 在下面的表格中search的文本和他们的存在发现:

 1 dog cat mouse orange table AB 3 cat FOUND 4 orange FOUND 5 grapes NOT FOUND 6 table FOUND 7 red NOT FOUND 8 dine NOT FOUND 9 table FOUND 10 dog FOUND 11 cat FOUND 12 leg NOT FOUND 

我已经在单元格B3中放入以下公式并将其向下拖动:

 =IF(ISERROR(FIND(A9,$A$1,1)>0),"NOT FOUND","FOUND")