在Excel中搜索并返回列中的文本

时间:2013-08-27 12:18:38

标签: excel search if-statement wildcard

我有一张Excel工作表,我正在尝试找出以下公式:

根据我的公式,我想搜索包含aa_product11.12的单元格的所有700行A列

列A的值可能包含也可能不包含这些值(某些值,某些值不会)。而且,这只是部分价值。所有单元格都有更多数据,即

  Column A
  Sept01_aa_product11.12; 
  Oct01_aa_product11.12; 

等等。

我需要匹配的那些单元格的完整值,以便显示在B1中。因此,B1中的公式将搜索{A <1}}的所有列A,然后B1将如下所示:

aa_product11.12

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

好的,您需要打开Visual Basic编辑器并创建一个模块。将以下代码放在您的模块中:

Function Get_Data()

Dim Strg As String
Dim Boo As Boolean
    Boo = False
Dim i
    i = 1

For i = i To 65000

Strg = Cells(i, 1).Value

If InStr(1, Strg, "aa_product11.12") Then

    If Boo = True Then
    Get_Data = Get_Data & Cells(i, 1).Value & ", "
    Else
    Get_Data = Cells(i, 1).Value & ", "
    Boo = True
    End If

End If

Next i

End Function

将文件另存为启用宏的工作簿。然后转到单元格B1并键入:= Get_Data()

按Enter键,该功能应该有效。如果您有任何问题,请告诉我。

答案 1 :(得分:0)

我的回答不会立即给出连结结果,但它们是之前的步骤:

没有公式:

  1. 在文本上插入过滤器和过滤器,条件为“包含aa_product11.12”。
  2. 在过滤器后复制列,并将结果粘贴到新页中。
  3. 然后,您可以删除过滤器并将结果传回原始工作表。


    使用公式:

    在B1中,输入公式:

    =IFERROR(INDEX($A$1:$A$700,SMALL(IF(ISNUMBER(FIND("aa_product11.12",$A$1:$A$700)),ROW($A$1:$A$700),9.9E+208),ROW())),"")
    

    但这是一个数组公式,需要使用 Ctrl + Shift +才能正常工作。在此之后,填写公式,直到没有更多结果返回到最后一步。


    完成其中任何一项后,您可以在单元格上运行CONCATENATE

    =CONCATENATE(B1,", ",B2,", ", ... )