单个索引+匹配有效,但在 if 语句中

单个索引+匹配有效,但在 if 语句中
=IF(
A4=INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C, 0)), 
INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C,0)),

    IF(A4=INDEX(Source1!$A:$A, MATCH(A4, Source1!$B:$B, 0)), 
    INDEX(Source1!$A:$A, MATCH(A4, Source1!$B:$B, 0)),

        IF(A4=INDEX(Source2!$A:$A, MATCH(A4, Source2!$B:$B, 0)), 
        INDEX(Source2!$A:$A, MATCH(A4, Source2!$B:$B, 0)),

            IF(A4=INDEX(Source3!$A:$A, MATCH(A4, Source3!$B:$B, 0)), 
            INDEX(Source3!$A:$A, MATCH(A4, Source3!$B:$B, 0)))
)))

大家好!这里有 4 个不同的电子表格,我尝试在单元格 A4 中搜索值以查找所有 4 个源电子表格并返回正确的值。

当我尝试这个时,它的效果非常好:

INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C,0))

但这不适用于像下面这样的简单 if 语句以及嵌套 if 语句。我不知道我哪里做错了。

=IF(INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C, 0))=A4,
    INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C, 0)),
    "NO")

这样,每个单元格都会返回“NO”,这是一个错误值。您能看一下并告诉我我做错了什么吗?非常感谢您的关注和时间。

答案1

如果未找到 A4,它将返回错误,并且您不能在没有创建自己的错误的情况下将其等同于错误。

改用这个:

=IF(
ISNUMBER(MATCH(A4, Sheet1!$C:$C, 0)), 
INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C,0)),

    IF(ISNUMBER(MATCH(A4, Source1!$B:$B, 0)), 
    INDEX(Source1!$A:$A, MATCH(A4, Source1!$B:$B, 0)),

        IF(ISNUMBER(MATCH(A4, Source2!$B:$B, 0)), 
        INDEX(Source2!$A:$A, MATCH(A4, Source2!$B:$B, 0)),

            IF(ISNUMBER(MATCH(A4, Source3!$B:$B, 0)), 
            INDEX(Source3!$A:$A, MATCH(A4, Source3!$B:$B, 0)))
)))

相关内容