0

我有一个 Excel 工作表,并试图找出以下公式:

使用我的公式,我想在 A 列的所有 700 行中搜索包含aa_product11.12

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

  Column A
  Sept01_aa_product11.12; 
  Oct01_aa_product11.12; 

等等。

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

 Cell B1
 Sept01_aa_product11.12, Oct01_aa_product11.12, Jan02_aa_product11.12,    
 Aug08_aa_product11.12

预先感谢您的帮助!

4

2 回答 2

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()

按回车,该功能应该可以工作。如果您有任何问题,请告诉我。

于 2013-08-27T13:04:57.400 回答
0

我的回答不会立即给您串联的结果,但它们是在此之前的步骤:

没有公式:

  1. 插入过滤器并使用标准“包含 aa_product11.12”过滤文本。
  2. 复制过滤器后的列并将结果粘贴到新工作表中。

然后,您可以删除过滤器并将结果传输回原始工作表。


用一个公式:

在 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在单元格上运行 a:

=CONCATENATE(B1,", ",B2,", ", ... )
于 2013-08-27T13:07:36.063 回答