2016-09-01 2 views
0

Например, я следующие три колонок:индекса Match только

Column(A)  Column(B) 
NasdaqGS:SRCE 59.8% 
NasdaqGS:TWOU NA 
NYSE:DDD   NA 
NYSE:MMM   10% 
NasdaqGS:EGHT 60% 

Как использовать функцию Excel только, чтобы получить следующий вывод ?:

Column(C) 
NasdaqGS:SRCE 
NYSE:MMM  
NasdaqGS:EGHT 

Так что я хочу, чтобы вернуться тики в столбце (A), которые не имеют значения NA в столбце (B).

ответ

0

Чтобы получить список с формулой использовать эту формулу массива в C2:

=IFERROR(INDEX($A$2:$A$6,MATCH(1,NOT(ISERROR($B$2:$B$6))*(COUNTIF($C$1:$C1,$A$2:$A$6)=0),0)),"") 

Будучи формула массива должна быть подтверждена с Ctrl-Shift-Enter, при выходе из режима редактирования. Если все сделано правильно, Excel поместит {} вокруг формулы.

enter image description here


Другой метод, который не требует в заголовке строки или специальную запись CSE:

=IFERROR(INDEX($A$1:$A$5,AGGREGATE(15,6,ROW($B$1:$B$5)/(NOT(ISERROR($B$1:$B$5))),ROW(1:1))),"") 

enter image description here

В обеих формулах, если тест для строки NA а не погрешность #N/A, а затем заменить NOT(ISERROR($B$2:$B$6) на ($B$2:$B$6 <> "NA")

Оба эти типа формулы массива, и если набор данных и список возврата являются большими, это замедлит расчеты Excel. Метод фильтрации, копирования, удаления фильтров, пасты будет быстрее на больших наборах данных.

+0

Я очень много спросил [здесь] (http://stackoverflow.com/questions/39253086/ms-excel-populate-cell-with-a-percentage-based-on-number-of-cells-coloured/ 39254416 # comment65856152_39254416) меньше, чем 1 день назад: Я предполагаю, что и ваши формулы работают, и OP * отмечен [excel-formula], но мне интересно, с той же конечной целью, является формульным подходом, который вы бы сами * выберете *? – pnuts

+1

@pnuts, как я заявил в последнем абзаце, это будет зависеть от того, как часто изменяются данные и насколько велики данные. Если небольшой набор данных, который часто менялся, то да, вот как я это сделаю. Если бы это был один, я бы сделал это по-твоему. Если он часто менялся и набор данных был большим, я бы написал vba, чтобы сделать это, скорее всего, подражая вашим советам. –

Смежные вопросы