Excel:搜索关键字的行,并使用这些关键字填充单元格

时间:2016-06-23 15:04:31

标签: excel excel-formula

这个问题几乎与下面的问题完全相同,但我的申请需要对其进行一些细微的修改,我无法弄清楚:

excel: how can I identify rows containing text keywords taken from a list of keywords

如果一行文本填充单元格包含关键字列表中的任何关键字,我想将该关键字添加到行的末尾。每行都是相同数量的单元格,但有些可能是空白的,它们不一定都是相同的数据类型,有些可能是数字或日期等等。更多的是,我想添加出现在行中的每个关键字文本到单独单元格中的行尾。

关于几乎回答我的问题的示例帖子,我使用更复杂的公式进行多项匹配,但在该示例中,他们只有一列数据,他们正在寻找关键字。我有几个将被格式化类似于他们的专栏A.我尝试改变一些范围而没有运气,特别是公布的公式:IF(COUNTIF($A1,"*"&$B$1:$B$10&"*")我改变了$ A1,$ A1:$ D1没有运气。

问题出现了,因为我有几个关于不同工具的故障模式的基于文本的数据的大型电子表格,我想在每个单元格中以比自由格式文本更多的受控方式对它们进行分类,并分配受控关键字申请似乎是一个体面的方式来做到这一点。

Example case

Expected result

示例案例中显示的关键字列表未显示在预期结果中。关键字范围是K2:K6

另一个有用的功能是,如果我可以指定其他单词,当找到时会触发其中一个关键词。例如,如果关键词是"齿轮磨损"然后"齿轮磨损"会触发一次撞击但是会被剥离的齿轮"也会触发一次打击。我认为关键字列表将被设置为2D范围,第一列是实际关键字,每行右边的单元格将是触发关键字的附加字。我怀疑我到了需要创建VBA宏来执行此操作的程度。如果有一种方法可以在不编写代码的情况下完成此任务,那么它将使其在其他用户的计算机上更具可重复性。

1 个答案:

答案 0 :(得分:0)

Cell F1中输入以下公式,然后根据需要向下和向下拖动/复制。

=IFERROR(INDEX($K$2:$K$6,SMALL(IF(COUNTIF($A1:$D1,"*"&$K$2:$K$6&"*"),ROW($K$2:$K$6)-ROW($A$1)),COLUMNS($A1:A1))),"")

这是一个数组公式,所以按 Ctrl + Shift + Enter

提交它

参见图片以供参考

enter image description here

此公式源自您提问中的link