0

我想一起使用IF,INDEXMATCH函数来从另一张有两列的工作表中获取输出(其中一个始终为空白,因此需要来自非空白列的值)。

我使用的公式看起来像:

=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

我希望它显示非空白的任何一列(另一张纸上的两列中)的值。

4

1 回答 1

0

你应该使用:

=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""'DATA 1'!B:B'DATA 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}))))

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

于 2015-10-21T12:44:20.190 回答