我不是 Excel 专家,因此非常感谢您的帮助!
我正在尝试让一个单元格在另一个单元格内进行多次搜索。
我知道要在一个单元格中搜索特定的单词,您可以使用 =FIND(Blue,C2)
但我需要在一个单元格中查找多个不同的单词。以下是我想执行的操作的示例:
我需要在成分单元格中显示所有过敏原,例如花生、麸质、牛奶、芝麻等
我如何获得列出所有过敏原的结果?
我知道我可以在单独的单元格中执行单个查找功能,然后将它们连接起来,但是一定有更简单的方法吗?
谢谢
答案1
我想建议两种可能的方法。第一个是公式和第二是宏观。
方法 1:
=IFERROR(IF(OR(SEARCH(B1,A1)>0,SEARCH(C1,A1)>0,SEARCH(D1,A1)>0,SEARCH(E1,A1)>0),"Found",""),"Nfound")
笔记:
- 在单元格中写入此公式
G1
并将其向下拖动。 - 如果要搜索更多文本/单词,您可以扩展公式。
方法 2:
- 在活动工作表中
Alt+F11
按打开VB Editor
。 - 复制粘贴下面显示代码为标准模块。
A1:A3
选择要搜索的文本/单词的范围强调。- 跑步宏。
- 输入单词输入框,以逗号分隔并按好的
宏将会以粗体形式显示范围中找到的字样A1:A3
。
Sub MultiFindNBoldFace()
Dim strSearch As String
Dim arySearch As Variant
Dim searchRng As Range
Dim cel As Range
Dim i As Long, ii As Long
Set searchRng = Application.Selection
strSearch = InputBox("Please enter the text to make bold as a comma delimited list (Abc,Xyz) - No spaces:", "Bold Text")
If strSearch = "" Then Exit Sub
arySearch = Split(strSearch, ",")
For Each cel In searchRng
With cel
.Font.Bold = False
For ii = LBound(arySearch) To UBound(arySearch)
i = InStr(cel.Value, arySearch(ii))
If i > 0 Then
.Characters(i, Len(arySearch(ii))).Font.Bold = True
End If
Next ii
End With
Next cel
End Sub
您还可以在公式以及宏中调整单元格引用。