Excel匹配多个条件加上搜索

时间:2012-11-28 13:10:42

标签: excel search excel-2007 match

这是我之前的两个问题:Excel Match multiple criteriaExcel find cells from range where search value is within the cell。抱歉,如果我过度张贴,但我认为每个问题都略有不同,如果我不能将答案标记为正确,那么打扰后续问题似乎不公平。

如果符合所有条件,我有这段代码检查3列数据以返回range1中的值:

=INDEX(range1,MATCH(1,(A2=range2)*(B2=range3)*(SEARCH(range4,J2)),0))

但是,如果在range4 OR range5中找到匹配项,我需要SEARCH选项,并且感谢来自此站点的John Bustos和Barry Houdini,我知道如何在MATCH函数中使用OR命令:

=INDEX(range1,MATCH(1,(A2=range2)*(B2=range3)*(((C2 = range4)+(D2 = range5))>0),0))

上面的代码适用于精确匹配,但C2和D2的值是单个单元格中包含的数字列表,而range4和range5是每个单元格中的单个年份,因此SEARCH函数必须用于检查单个年份存在于年份列表中。因此,根据上面两个代码段的判断,我认为这样可行:

=INDEX(range1,MATCH(1,(A2=range2)*(B2=range3)*(((SEARCH(range4,J2))+(SEARCH(range5,J2))>0)),0))

然而,它没有,也没有:

=INDEX(range1,MATCH(1,(A2=range2)*(B2=range3)*(((SEARCH(range4,J2))+(SEARCH(range5,J2)))),0))

我记得按CTRL + SHIFT + ENTER,它总是返回#N / A.我知道它应该返回值,因为第一个例子在我尝试将它变成OR命令之前有效。

我希望有人可以对此有所了解。提前谢谢,

祝福,

2 个答案:

答案 0 :(得分:1)

对于数组公式,不是“Ctrl + Shift + Enter”。试试看,看看它是否有效。

答案 1 :(得分:1)

更改为SEARCH时遇到的问题是,在公式的先前版本中,C2=range4的结果为TRUE或FALSE,而SEARCH(range4,J2)返回一个数字(范围4值的位置) J2)或VALUE!错误,如果它不在J2

...所以,如果只有一个SEARCH找到一个值而另一个没有找到一个值,你仍然会得到那个没有得到的错误而且MATCH不会得到匹配,所以“OR”不会工作........修复你需要添加一些东西让SEARCH返回TRUE或FALSE - 你可以用ISNUMBER做到这一点,即

=INDEX(range1,MATCH(1,(A2=range2)*(B2=range3)*(ISNUMBER(SEARCH(range4,J2))+ISNUMBER(SEARCH(range5,J2))>0),0))

另请注意您引用的第一个公式:

=INDEX(range1,MATCH(1,(A2=range2)*(B2=range3)*(SEARCH(range4,J2)),0))

可能无法正常工作,因为SEARCH可能会返回1以外的数字,因此您也需要ISNUMBER,即

=INDEX(range1,MATCH(1,(A2=range2)*(B2=range3)*ISNUMBER(SEARCH(range4,J2)),0))