这听起来比实际实现起来要简单得多!我试图在一列中搜索包含单词“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。
根据需要调整单元格引用。