我被要求弄清楚如何执行复杂的Excel功能。我是新手,我完全被难过了:(
我希望你能提供帮助。
我们在45列的10,000行上有文本数据。
举个例子,在N1中,我需要一个在第1行的所有单元格中查找单词的函数。
所以,如果我要搜索“apple”,“pear”,“orange”和“banana”,如果在第1行找到一个或多个,那么在N1单元格中我想输出“banana,apple”if它发现了那两个字。如果没有找到任何结果,则表示没有。
我被告知这是不可能的,但我不太确定。
很抱歉很长的解释。
希望你能提供帮助。
谢谢
答案 0 :(得分:1)
您可以创建一个类似的函数:
Public Function SearchBn(ByVal FirstArg As Range, ParamArray OtherArgs()) As String
Dim TmpStr As String
Dim e As Integer
e = 0
TmpStr = ""
For i = LBound(OtherArgs) To UBound(OtherArgs)
Set c = FirstArg.Find(OtherArgs(i))
If Not c Is Nothing Then
If e > 0 Then TmpStr = TmpStr & ", "
TmpStr = TmpStr & c.Value ' CHANGE THIS LINE !!!!
e = e + 1
End If
Next
If Right(TmpStr, 2) = ", " Then TmpStr = Left(TmpStr, Len(TmpStr) - 2)
If TmpStr = "" Then TmpStr = "*NONE*"
SearchBn = TmpStr
End Function
并称之为:
=SearchBn(19:19;D22;D23;D24;D25)
该函数接受第一个参数的单元格范围。其他参数是您要搜索的内容。您可以添加所需的搜索条件数量。
对于Excel功能:
=IFERROR(HLOOKUP("banana";21:21;1;);"")&", "&IFERROR(HLOOKUP("apple";21:21;1;);"")
如果有错误(未找到)则不写任何内容""。搜索HLOOKUP值" banana"在第21行...&连接你找到的字符串。它不太友好,但工作......如果你想要更多的搜索,你需要添加IFERROR ...
要仅显示找到的单词,请更改为:
TmpStr = TmpStr & OtherArgs(i)
您只需要为搜索文本添加一个单元格,而不是使用;相反,