2015-10-21 4 views
0

Я хочу использовать IF, INDEX и 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.

Я хочу, чтобы он отображал значение из любого столбца (из двух на другом листе), который не является пустым.

+0

Я думаю, вам нужен разделитель (';' или ',') между двумя операторами INDEX –

+0

У меня есть; Я просто пропустил это при вставке здесь ... = 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))) –

+0

Можете ли вы опубликовать пример того, как выглядят столбцы? Знаете ли вы, что все ценности, которые вы пытаетесь найти, присутствуют? –

ответ

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})))) 

хотя его краткость, возможно, компенсируется сложностью и, опять же, это не удастся, если в этих диапазонах присутствуют нулевые строки.

+0

Эй .... Это сработало ... Спасибо тонну :) –

+0

Добро пожаловать. Не стесняйтесь отмечать это как ответ, в этом случае. –