从包含特定多个单词的字符串中提取单词

时间:2019-06-21 06:10:47

标签: excel excel-formula

“我正在excel中建立一个枢轴,并希望从文本数据集中提取特定的单词。

我尝试使用下面的公式提取一个特定的单词,但也想嵌套多个公式以提取其他单词

=TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),MAX(1,FIND("Evaluation",SUBSTITUTE(A1," ",REPT(" ",99)))-50),99))

以上公式有效,但仅适用于一个单词。我想创建嵌套公式来搜索第一个单词或第二个单词或第三个单词...

Formula

1 个答案:

答案 0 :(得分:0)

如果您的目标是在数组中搜索一个子字符串,如果该子字符串与列表中的任何单词匹配,并且如果匹配,则返回匹配的子字符串,如JvdV建议的那样,请使用以下公式,修改。

我建议在另一个工作表中添加一个包含您要查找的单词列表的表格,如下所示。突出显示单元格的范围,包括标题,然后依次选择“首页”>“设置为表格格式”>选择一个表格样式并为其命名。该表的名称为“ t_WordsToFind”(以便稍后在其他函数中可以轻松识别它)。您可能还希望将主数据放入表中。我的常用名称通常是“ t_Data”。现在,您不必担心列号/字母,而拥有一开始就易于使用的列标题,这使阅读公式变得更加容易。添加addtl数据后,您的表格范围也会自动扩展,因此行号也不再需要引用。

enter image description here

如果表中没有数据,请使用此版本的公式,并记得在添加数据时更新范围参数。 B2是要搜索的第一个单元格,D2:D4是要查找的单词列表,将公式复制下来。我不想使用IFERROR,因为它包含许多我可能需要了解的错误类型,例如,如果我拼错了函数名。如果您只需要在没有匹配返回且您的函数有效的情况下使用替代方法,则建议使用IFNA。

IFNA(LOOKUP(1,1/COUNTIF(B2,"*"&$D$2:$D$4&"*"),$D$2:$D$4),"")

如果确实将表用于数据和查找表(这是非常明智的话),那么这是要使用的公式版本(如下)。在此示例中,@ [Search This Column]等效于B2,而t_WordsToFind [Find This]是要查找的单词的表名和列名,但它更容易辨认,不需要向下复制或将来手动扩展。

IFNA(LOOKUP(1,1/COUNTIF([@[Search This Column]],"*"&t_WordsToFind[Find This]&"*"),t_WordsToFind[Find This]),"")

enter image description here

假设这是一个永久的需求,那么更明智的做法是使用电源查询/电源枢纽,但是我不希望您陷入TMI重载。

此外,您的数据透视表范围将变得非常简单,“ t_Data”。