2015-11-06 4 views
1

Я пытаюсь использовать INDEX MATCH, чтобы вернуть значение, основанное на нескольких критериях. Кто-то помог мне разобраться, но я не могу найти способ добавить дополнительные критерии. Формула я работаю с в минуте:Несколько VLOOKUP или INDEX MATCH

=IFERROR(INDEX(DATA!$H$2:$H$2000,SMALL(IF(DATA!$K$2:$K$2000="Yes",ROW(DATA!$A$2:$A$2000)-ROW(DATA!$A$2)+1,""),ROWS(DATA!$A$2:A2))),"") 

Это возвращает имя человека из моего списка данных на основе ответа на критерии, являющиеся «YES».

Мне нужно добавить еще два критерия, чтобы получить меньшее количество результатов. Это будет основано на месяце и году, оба отображаются в численных единицах в разных ячейках, то есть 10 и 2015. Я хочу только вернуть индексный список, если другие значения в строке «YES», 10 и 2015.

ответ

0

Эти приращения и номера строк излишне сложны, если вы понимаете, что они пытаются сделать.

ROWS(DATA!$A$2:A2) просто увеличивает 1, 2, 3 ... по мере заполнения. Это можно упростить до ROW(1:1). ROW(DATA!$A$2:$A$2000)-ROW(DATA!$A$2)+1 можно упростить до ROW($1:$1999), если вы понимаете, что возвращаете позицию в пределах H2: H2000, а не фактический номер строки на листе. Обратите внимание, что ни одна из упрощенных ссылок не использует имя рабочего листа или обозначение столбца. Они просто не нужны.

Кроме того, AGGREGATE¹ function делает быструю работу условий при использовании подфункции (SMALL) с optiona (игнорировать ошибки). Поворачивая все, что не соответствует ошибке #DIV/0!, вы остаетесь с только строками, которые соответствуют.

Стандартная формула для XL2010 и выше:

=IFERROR(INDEX(DATA!$H$2:$H$2000, AGGREGATE(15, 6, ROW($1:$1999)/((DATA!$K$2:$K$2000="Yes")*(DATA!$L$2:$L$2000=10)*(DATA!$M$2:$M$2000=2015)), ROW(1:1))),"") 

Стандартная формула для XL2007 и раньше:

=IFERROR(INDEX(DATA!$H$2:$H$2000, SMALL(INDEX(ROW($1:$1999)+((DATA!$K$2:$K$2000<>"Yes")+(DATA!$L$2:$L$2000<>10)+(DATA!$M$2:$M$2000<>2015))*1E+99, ,), ROW(1:1))),"") 

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

+0

Это фанатизм! Большое вам спасибо за вашу помощь в этом. Он занял слишком много часов, которые теперь ощущаются впустую, как я должен был спросить ранее. –

+0

Рад, что получилось. Помните, что это стандартные формулы, а не формулы массива. Они не требуют Ctrl + Shift + Enter, как оригинал, который вы использовали. – Jeeped

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