在单列中搜索包含字符串的单元格并将所有匹配的单元格输出到新列

在单列中搜索包含字符串的单元格并将所有匹配的单元格输出到新列

这听起来比实际实现起来要简单得多!我试图在一列中搜索包含单词“Task”的强行词,然后将每个匹配的单元格输出到新列中。因此,举个例子:

我的所有数据都存在于 D 列中。我想查找所有包含单词“Task”的单元格并将它们输出到 A 列

A C
1 输出 任务列表
2 任务1 任务1
3 任务 2 信息
4 任务 3 信息
5 信息
6 任务 2
7 东西
8 随机的
9 任务 3

我曾尝试使用:

=IFERROR(INDEX($D$2:$D$8,AGGREGATE(15,3,(($D$2:$D$8="Task 1")/($D$2:$D$8="Task 1")*ROW($D$2:$D$8))-ROW($D$1),ROWS($C$2:C2))),"")

这将完美地输出“任务 1”,如果我在“任务列表”中有多个“任务 1”,它将在“输出”(A 列)下正确输出所有任务。所以我走在正确的轨道上,但我想模式匹配“任务”而不是“任务 1”。

我怀疑这需要结合上述和下面的方法,但想解决这个问题真是费了不少脑筋!任何帮助我都非常感谢!

=IF(ISNUMBER(SEARCH("Task",$N$9:$N$13)))

答案1

使用以下测试更加直接,因此一年后维护电子表格时更容易理解:

=FILTER(A1:A8,LEFT(A1:A8,4)="Task")

它很直接。它不必对间接结果做出假设。它也很简短而且相当透明。

整个“ISNUMBER...”类型的公式都是老派的,它本身并没有什么问题,但就这一点而言,当“OG”人员进行计算时,它甚至都不需要。它是一个更广泛的解决方案的一部分,这个解决方案的要求不那么容易实现,因此,为了获得更简单的要求,它需要被废除。

“更简单、更透明”是一个非常值得追求的目标:您是否希望因为没有人能理解您的电子表格而得不到晋升,从而无法将表格交给新下属?升职通常也伴随着加薪……

答案2

这解决了这个问题:

在此处输入图片描述

  • 我想推荐两个公式。如果您使用的是更高版本的 Excel 2021 或 365,请在单元格 AQ2 中尝试此公式。

    =FILTER(AO2:AO8,ISNUMBER(SEARCH("Task *",AO2:AO8)))
    
  • 如果使用旧版本,那么您可以尝试这个数组(CSE)公式。

    {=IFERROR(INDEX($AO$2:$AO$8,SMALL(IF(ISNUMBER(SEARCH("Task *",$A$O2:$A$O8)),ROW($AO$2:$AO$8)-ROW($AO$2)+1),COLUMNS($AQ1:AQ1))),"")}
    

注意:

  • 完成配方Ctrl+Shift+Enter

  • 根据需要调整单元格引用。

答案3

  1. 选择任务列表范围- 去数据-来自表/范围

在此处输入图片描述

  1. 打开Power Query 编辑器- 选择文本过滤器- 选择包含...

在此处输入图片描述

  1. 输入任务并点击好的

在此处输入图片描述

  1. 将列名称更改为输出-关闭并加载至...

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

相关内容