使用IF,INDEX和MATCH从非空白的两列中检出值

时间:2015-10-21 12:29:26

标签: excel excel-formula excel-match

我想一起使用IFINDEXMATCH函数来获取另一个包含两列的工作表的输出(其中一列始终为空,因此需要来自一栏不空白)。

我使用的公式如下:

=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

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

1 个答案:

答案 0 :(得分: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))) 中有任何条目1}}包含这样的条目(可能是这些单元格中公式的结果),那么上面的结果就不会给出正确的结果。

因此,更严格的是:

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

假设返回的是文本而不是数字,您还可以使用较短的内容:

$('.dest').on('change', 'input[type="checkbox"][value^="2;"], input[type="checkbox"][value^="3;"]', function () {
    $('ul[data-role="' + $(this).parentsUntil('.dest', '[data-role]').data('role') + '"] input[type="checkbox"][value$=";' + $(this).val().split(";").slice(-1)[0] + '"]:not([value^="1"])').prop('checked', $(this).prop('checked'));
});

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