复杂的低搜索和通知

时间:2014-05-14 12:01:42

标签: excel formulas

我被要求弄清楚如何执行复杂的Excel功能。我是新手,我完全被难过了:(

我希望你能提供帮助。

我们在45列的10,000行上有文本数据。

举个例子,在N1中,我需要一个在第1行的所有单元格中查找单词的函数。

所以,如果我要搜索“apple”,“pear”,“orange”和“banana”,如果在第1行找到一个或多个,那么在N1单元格中我想输出“banana,apple”if它发现了那两个字。如果没有找到任何结果,则表示没有。

我被告知这是不可能的,但我不太确定。

很抱歉很长的解释。

希望你能提供帮助。

谢谢

1 个答案:

答案 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)

您只需要为搜索文本添加一个单元格,而不是使用;相反,