Excel:查找包含的文本
我需要做一个查找,并返回基于文本是否包含它的值。
请看下面我的Excel表格,我需要的是一个公式,这将帮助我的“类别”列填充查找表的“类别”列。
注意:请在下面的链接中看到我的Excel表单。
我尝试了公式' =VLOOKUP(B2,A13:B16,2,TRUE)
',但它没有给出预期的结果。
这是正常的“在其他列表中查找此string”的轻微扭曲。 它需要一个使用FIND
search匹配的数组公式。
范围的图片
单元格A2
中的公式是一个数组公式(使用CTRL + SHIFT + ENTERinput )并复制到每个项目。 它在lookup
列表中lookup
项目中包含的item
并返回与lookup
关联的category
的结果。
=INDEX($E$2:$E$4,MIN(IF(IFERROR(FIND($D$2:$D$4,B2)>0,FALSE),ROW($D$2:$D$4)))-ROW($E$1))
怎么运行的
-
INDEX
从category
返回并需要一个行号才能返回 - 行号是通过使用
FIND
来确定的,它将检查一个string是否被包含在另一个string的一部分中。 在这种情况下,要search的string是lookup
表,我们在该item
内匹配。 -
FIND
将返回#VALUE!
如果未find匹配项,则将其与IFERROR
一起转换为FALSE
,因为#VALUE!
稍后将不再使用MIN
。 -
IF
将返回行号或FALSE
来查找匹配项。 -
MIN
用于将ROW
号码列表转换为最小号码。 这意味着多个匹配不被处理。 - 这个行号然后被用作
INDEX
的返回。 这里有一个偏移量-ROW(E1)
,它允许数据表以1:1
-ROW(E1)
连续起始。