Excel 使用IF、INDEX和MATCH从非空的两列中检索值

Excel 使用IF、INDEX和MATCH从非空的两列中检索值,excel,excel-formula,excel-match,Excel,Excel Formula,Excel Match,我想同时使用IF、INDEX和MATCH函数来获得另一张有两列的工作表的输出(其中一列始终为空,因此需要来自非空列的值) 我使用的公式如下所示: =IF(ISBLANK('DATA 1'!B:B); INDEX('DATA 1'!B:B;MATCH(OUTPUT!B14;'DATA 1'!A:A;0)); INDEX('DATA 1'!C:C;MATCH(OUTPUT!B14;'DATA 1'!A:A;0)) ) 此公式仅从一列返回值,当相应列为空时,它显示#N/A 我希望它显

我想同时使用
IF
INDEX
MATCH
函数来获得另一张有两列的工作表的输出(其中一列始终为空,因此需要来自非空列的值)

我使用的公式如下所示:

=IF(ISBLANK('DATA 1'!B:B);
    INDEX('DATA 1'!B:B;MATCH(OUTPUT!B14;'DATA 1'!A:A;0));
    INDEX('DATA 1'!C:C;MATCH(OUTPUT!B14;'DATA 1'!A:A;0)) )
此公式仅从一列返回值,当相应列为空时,它显示
#N/A

我希望它显示非空列(另一页上的两列中的任意一列)的值。

您应该使用:

=IF(ISBLANK(INDEX('DATA 1'!C:C,MATCH(OUTPUT!B27,'DATA 1'!A:A,0))),INDEX('DATA 1'!B:B,MATCH(OUTPUT!B27,'DATA 1'!A:A,0)),INDEX('DATA 1'!C:C,MATCH(OUTPUT!B27,'DATA 1'!A:A,0)))
尽管您需要注意,当传递空字符串(
”)时,
ISBLANK
将返回
FALSE
,因此如果
“数据1”中的任何条目!B:B
数据1'!C:C
包含这样一个条目(可能是这些单元格中公式的结果),则上述内容将不会给出正确的结果

因此,更严格的要求是:

=IF(INDEX('DATA 1'!C:C,MATCH(OUTPUT!B27,'DATA 1'!A:A,0))="",INDEX('DATA 1'!B:B,MATCH(OUTPUT!B27,'DATA 1'!A:A,0)),INDEX('DATA 1'!C:C,MATCH(OUTPUT!B27,'DATA 1'!A:A,0)))
假设返回为文本而非数字,您也可以使用较短的:

=LOOKUP(REPT("z",255),INDEX('DATA 1'!B:C,MATCH(OUTPUT!B27,'DATA 1'!A:A,0),N(IF(1,{1,2}))))

尽管它的简洁性可能会被它的复杂性所抵消,而且,如果在这些范围中存在空字符串,这将再次失败。

我认为在两个索引语句之间需要一个分隔符(
);我只是在这里粘贴时错过了…=如果(ISBLANK('data1'!B:B);INDEX('data1'!B:B;MATCH(OUTPUT!B14;'data1'!A:A;0));INDEX('data1'!C:C;MATCH(OUTPUT!B14;'data1'!A:A;0)),您可以发布列的外观示例吗?你知道你要查找的所有值都存在吗?嘿,谢谢。。!在评论框中回答。非常感谢:)不客气。在这种情况下,请随意将其标记为答案。