我很欣赏这些回复,但我认为我的措辞很模糊。让我试着用照片来解释一下。在Excel中搜索多个单元格,例如
http://postimg.org/image/mrh7okefp/
公式放在C2,并期待在A2所有的话。然后它会搜索B2:B9进行任何匹配。如果它发现了什么,它会把这个单词放在C2中。如果它什么也没有发现,它会将单元格留空(我忘了在图像中包含这个)。然后可以将公式拖到C3,并搜索相同的B2:B9,将找到的单词放入C3中。等等等等。希望这有助于澄清。
我很欣赏这些回复,但我认为我的措辞很模糊。让我试着用照片来解释一下。在Excel中搜索多个单元格,例如
http://postimg.org/image/mrh7okefp/
公式放在C2,并期待在A2所有的话。然后它会搜索B2:B9进行任何匹配。如果它发现了什么,它会把这个单词放在C2中。如果它什么也没有发现,它会将单元格留空(我忘了在图像中包含这个)。然后可以将公式拖到C3,并搜索相同的B2:B9,将找到的单词放入C3中。等等等等。希望这有助于澄清。
按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
这工作,虽然显然如果你高于99美元,该功能将不再合作。至少它不适合我。我用我需要的所有关键术语创建了几个函数,然后将它们合并到Excel中的一列中 –
这是使用公式的一种方法。想象一下,一个设置如下:通过检查,如果有匹配
=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
输入公式。如果存在,它将获取第一个字符的位置以及单词的长度,以提取您需要的内容。
几个要点:
希望这有助于你开始。
如果这是要求,你可以通过这个公式= = IF(COUNTIF(A $ 1,“*”&A2&“*”),A2,“不匹配”)'.... ..但不应该“猫”是一个匹配? –
@barry - 是的,这是一个更简洁(优雅!)的公式。我喜欢(+1)。和'猫'应该匹配 - 我会修改我的错字。谢谢 –
我更新了我的帖子,澄清了我的要求。 –
该公式可以进一步简化以获取单元格中的搜索文本。在下表中的文本搜索和他们的存在发现:
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")
文中可能有多个词吗?例如,可以有一个文本与'狗猫老鼠绿色橙色表'?如果是这样,公式应该如何处理? – Jerry
VBA更容易.. – matzone