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)),您可以发布列的外观示例吗?你知道你要查找的所有值都存在吗?嘿,谢谢。。!在评论框中回答。非常感谢:)不客气。在这种情况下,请随意将其标记为答案。