Excel公式仅使用另一个工作表上列中的第一个值
在B2我有文本search内,在C2我有这个公式search工作表上的单词称为“关键字”匹配。
{= IF(B2="","", IF(ISNUMBER(SEARCH(keywords!$B$2:$B$5,B2)),"Fruit", IF(ISNUMBER(SEARCH(keywords!$C$2:$C$5,B2)),"Nature", IF(ISNUMBER(SEARCH(keywords!$D$2:$D$5,B2)),"Vehicle", "no match"))))
该公式仅使用关键字工作表上的B2,C2,D2中的第一个关键字,而不是通过B5,C5,D5。 什么是正确的公式?
我知道如果find多于一个的比赛结果将是最后的满意的陈述。 请帮忙!
式
关键字
对于非CSE数组,请使用sumproduct:
= IF(B2="","", IF(SUMPRODUCT(ISNUMBER(SEARCH(keywords!B$2:B$5,$B2))*1)>0,"Fruit", IF(SUMPRODUCT(ISNUMBER(SEARCH(keywords!C$2:C$5,$B2))*1)>0,"Nature", IF(SUMPRODUCT(ISNUMBER(SEARCH(keywords!D$2:D$5,$B2))*1)>0,"Vehicle", "no match"))))
对于使用关键字表中的标题行作为返回值的略短一些的公式,所以不需要对这些值进行硬编码。 用这个:
=INDEX(keywords!$B$1:$D$1,AGGREGATE(15,6,(COLUMN(keywords!$B$2:$D$5)-COLUMN(keywords!$B$2)+1)/(ISNUMBER(SEARCH(keywords!$B$2:$D$5,B2))),1))
范围可以扩展到将来允许更多的行或列,而不需要添加更多的IF语句。
尝试:
{ = IF(B2="","", IF(MAX(IFERROR(SEARCH(keywords!$B$2:$B$5,B2),0))>0,"Fruit", IF(MAX(IFERROR(SEARCH(keywords!$C$2:$C$5,B2),0))>0,"Nature", IF(MAX(IFERROR(SEARCH(keywords!$D$2:$D$5,B2),0))>0,"Vehicle", "no match")))) }
问题是,公式中的search正在寻找一个单一的值在指定的文本string内进行search,因此,当您select范围$B$2:$B$5
它会select单元格区域的第一个单元格中的值。
而不是使用SEARCH
function使用匹配types为0
MATCH
函数进行精确匹配。 注意:这不需要是一个数组公式。 例:
=IF(B2="","",IF(ISNUMBER(MATCH(B2,keywords!$B$2:$B$5,0)),"Fruit",IF(ISNUMBER(MATCH(B2,keywords!$C$2:$C$5,0)),"Nature",IF(ISNUMBER(MATCH(B2,keywords!$D$2:$D$5,0)),"Vehicle","no match"))))
另外你的陈述“如果发现不止一场比赛,我理解结果将是最后一个满意的陈述,请帮助! 你可能已经意味着第一个满意而不是最后一个; 这将是正确的。