【问题标题】:Search and return text from column in Excel从 Excel 中的列中搜索并返回文本
【发布时间】:2023-03-20 15:51:02
【问题描述】:

我有一个 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

提前感谢您的帮助!

【问题讨论】:

  • 我知道 Kyle 很好地编辑了我的问题,但是只有单元格 B1 包含所有结果,而不是列 B。谢谢!
  • 在首先获得这些单元格之后连接包含aa_product11.12 的单元格是否可以?否则,我认为更好的解决方案将涉及 VBA。
  • 使用数据库会容易得多。 Excel 不是为这类事情设计的...
  • 看看here

标签: excel search if-statement wildcard


【解决方案1】:

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

无公式:

  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:

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

【讨论】:

    【解决方案2】:

    好的,您需要打开 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()

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

    【讨论】:

    • 谢谢 Placet_Auxilium_Me!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-05
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多