2016-01-08 9 views
0

У меня есть список значений переменной длины (столбцы могут выйти в ValueN, этот лист будет расширяться с течением времени). Например:Вернуть самое правое значение в строке с условиями

Subject Value1 Value2 Value3 Value4 
Sub1  Pass Fail Fail 
Sub2  Pass NA 
Sub3  Fail Fail Fail Fail 
Sub4  NA  NA  NA  NA 
Sub5  NA  PASS NA 

мне нужно сделать новый столбец, который сообщает крайний правый проход или потерпеть неудачу, и только отчеты НС, если все столбцы NA (ни одна строка не будет иметь все столбцы пустыми), такие, как это:

Subject Value1 Value2 Value3 Value4 New Column 
Sub1  Pass Fail Fail   Fail 
Sub2  Pass NA      Pass 
Sub3  Fail Fail Fail Fail Fail 
Sub4  NA  NA  NA  NA  NA 
Sub5  NA  Pass NA    Pass 

Я нашел еще одно сообщение из некоторой части назад, которое помогает мне получить самое правое значение (Excel formula to get last entry in a row), но я не знаю, как изменить логику только для возврата NA, если все значения в строке равны NA.

Это формула я использую, чтобы получить самое правое значение:

=LOOKUP(2,1/(B2:E2<>""),B2:E2) 

Я пробовал несколько вариантов, но не могу получить логику возвращать только NA, если все значения NA правильно.

Может ли кто-нибудь помочь?

EDIT: Я выполнил задачу с потерями вложенных операторов IF, но это не решает проблему изменения всего листа при добавлении большего количества столбцов. Я ищу надежное решение, если такое решение существует.

+0

Являются ли эти значения тестов NA или действительными ошибками # N/A? – Jeeped

+0

Это фактические значения. – JRodge01

ответ

3

Используйте AGGREGATE¹ function бросить ошибку на пустые ячейки и NA значения, игнорируя при этом ошибки. IFERROR function может покрывать значения NA, когда значение nohng valid может быть возвращено.

В G2, как,

=IFERROR(INDEX(B2:E2, AGGREGATE(14, 6, COLUMN(A:D)/(SIGN(LEN(B2:E2))*(B2:E2<>"NA")), 1)), "NA") 

Заполните вниз по мере необходимости.

sign_len


¹ AGGREGATE function была введена с Excel 2010. Он не доступен в более ранних версиях.

+0

................. Очень умный! –

+0

Спасибо за умный ответ! Я не уверен, что каждый, просматривающий документ, будет иметь доступ к Excel 2010, но поскольку это более приятный ответ, это становится их проблемой.:) – JRodge01

+0

У меня есть два вопроса о вашем ответе, поэтому я понимаю, что здесь происходит. Почему вы используете «COLUMN (A: D)» в совокупной функции и что делает оператор «<>»? – JRodge01

1

Эта модификация должна работать:

=IF(COUNTIF(B2:E2,"NA")=COUNTA(B2:E2),"NA",LOOKUP(2,1/((B2:E2<>"")*(B2:E2<>"NA")),B2:E2)) 
+1

У вас есть что надоедливое ** NA ** в G5. – Jeeped

+0

@ Jeeped, у меня есть NA для строки 5, но я не уверен в его «peskiness». Я думал, что это требование: «... только отчеты NA, если все столбцы - NA». –

+0

@ Поднялся, или, может быть, вы говорите, что это хорошо? –