2013-07-21 41 views
1

我很欣赏这些回复,但我认为我的措辞很模糊。让我试着用照片来解释一下。在Excel中搜索多个单元格,例如

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

公式放在C2,并期待在A2所有的话。然后它会搜索B2:B9进行任何匹配。如果它发现了什么,它会把这个单词放在C2中。如果它什么也没有发现,它会将单元格留空(我忘了在图像中包含这个)。然后可以将公式拖到C3,并搜索相同的B2:B9,将找到的单词放入C3中。等等等等。希望这有助于澄清。

+0

文中可能有多个词吗?例如,可以有一个文本与'狗猫老鼠绿色橙色表'?如果是这样,公式应该如何处理? – Jerry

+0

VBA更容易.. – matzone

回答

0

按Alt + F11,粘贴此代码进入一个空的模块,在Tools/References中检查VBScript Regular Expressions 5.5复选框,并在列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 
+0

这工作,虽然显然如果你高于99美元,该功能将不再合作。至少它不适合我。我用我需要的所有关键术语创建了几个函数,然后将它们合并到Excel中的一列中 –

0

这是使用公式的一种方法。想象一下,一个设置如下:通过检查,如果有匹配

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

这工作:

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

在细胞B2输入公式。如果存在,它将获取第一个字符的位置以及单词的长度,以提取您需要的内容。

几个要点:

  1. 你可能要考虑如何处理大小写
  2. 这个作品,如果只有一个句子中搜索词的实例

希望这有助于你开始。

+1

如果这是要求,你可以通过这个公式= = IF(COUNTIF(A $ 1,“*”&A2&“*”),A2,“不匹配”)'.... ..但不应该“猫”是一个匹配? –

+0

@barry - 是的,这是一个更简洁(优雅!)的公式。我喜欢(+1)。和'猫'应该匹配 - 我会修改我的错字。谢谢 –

+0

我更新了我的帖子,澄清了我的要求。 –

0

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

1 dog cat mouse orange table  

     A   B 
    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") 
相关问题