Excel 复杂的low和notify搜索

Excel 复杂的low和notify搜索,excel,formulas,Excel,Formulas,我被要求找出如何执行一个复杂的excel函数。我是新手,完全被难倒了:( 我希望你能帮忙 我们有45列10000行的文本数据 作为一个例子,在N1中,我需要一个函数,在第1行的所有单元格中查找单词 所以,如果我要搜索“苹果”、“梨”、“橘子”和“香蕉”,如果在第1行找到一个或多个,那么在单元格N1中,如果找到这两个词,我想输出“香蕉、苹果”。如果没有找到,则表示无 有人告诉我这是不可能的,但我不太确定 对不起,解释得太长了 希望你能帮忙 谢谢您可以创建如下函数: Public Function

我被要求找出如何执行一个复杂的excel函数。我是新手,完全被难倒了:(

我希望你能帮忙

我们有45列10000行的文本数据

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

所以,如果我要搜索“苹果”、“梨”、“橘子”和“香蕉”,如果在第1行找到一个或多个,那么在单元格N1中,如果找到这两个词,我想输出“香蕉、苹果”。如果没有找到,则表示无

有人告诉我这是不可能的,但我不太确定

对不起,解释得太长了

希望你能帮忙


谢谢

您可以创建如下函数:

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第21行中的值“banana”…将找到的字符串连接起来(&C)。这不是很友好,但很有效…如果要进行更多搜索,则需要添加IFERROR…
要仅显示找到的单词,请更改为:

TmpStr = TmpStr & OtherArgs(i)

你只需要为搜索文本放置一个单元格,而不是使用;相反,你介意让我知道这是否是一个不可能创建的函数吗?如果是,我会回去让他们知道。通过代码(VBA)这非常简单…通过EXCEL你需要构建这样的东西:=IFERROR(HLOOKUP(“香蕉”;21:21;1;);“)&”,“IFERROR”(HLOOKUP(“苹果”);21:21;1;;);“”“…您能分享一个VBA示例吗?我似乎无法让excel代码正常工作。您能提供一点解释吗。谢谢:)其他人知道如何构建这样的函数吗?VBA函数非常好,我在其中更改了一个小的输入错误(;to),:=SearchBn(19:19;D22;D23;D24;D25)to=SearchBn(19:19;D22,D23,D24,D25)有些单元格有200多个单词,该函数将包含整个单元格内容。有没有办法打印找到的单词而不是整个单元格内容?非常感谢!它按照我的意图工作。谢谢你的解释和证明,这确实是可以做到的:)