4

У меня есть таблица на листе под названием "DealSetup", которая выглядит как эта упрощенная версия:

   A           B
1  John Doe    1
2  Jane Doe    1
3  Mark Doe    2
4  Doug Doe    1
5  Mary Doe    2

У меня есть таблица на листе под названием "Список", в которую я хотел бы получить имена из листа "DealSetup". Однако я хочу только перечислить имена на основе значения в столбце B.

Например, на листе "Список" я хотел бы использовать какую-нибудь функцию INDEX или функцию массива, чтобы посмотреть на лист "DealSetup" и вытащить всех, у кого значение столбца B равно 1, и перечислить их. Я не хочу никаких пробелов, хотя. Это должно выглядеть так:

 EVERYONE WITH B COLUMN VALUE OF 1:  
   A  
1  John Doe
2  Jane Doe
3  Doug Doe

Или вот так:

 EVERYONE WITH B COLUMN VALUE OF 2:  
   A  
1  Mark Doe
2  Mary Doe

Я пробовал несколько вещей без удачи. Не уверен, куда идти отсюда, поэтому любой вклад будет оценен !!

2 ответа2

4

Принимая ваши данные в DealSetup!A$2:B$6 вы можете использовать эту формулу в List!A2

=IFERROR(INDEX(DealSetup!A$2:A$6,SMALL(IF(DealSetup!B$2:B$6=C$1,ROW(DealSetup!A$2:A$6)-ROW(DealSetup!A$2)+1),ROWS(A$2:A2))),"")

подтвердите нажатием CTRL+SHIFT+ENTER и скопируйте до нужного уровня и далее. Когда у вас заканчиваются имена, вы получаете пробелы.

Принимает критерии (1,2 и т.д.) В C1

см. прилагаемую книгу - попробуйте изменить C1 на 2

Если имена повторяются (в пределах указанных критериев), тогда вы получите повторения имен - формула может быть изменена так, чтобы каждое имя отображалось только один раз, т.е. эта версия

=IFERROR(INDEX(DealSetup!A$2:A$6,SMALL(IF(DealSetup!B$2:B$6=C$1,IF(COUNTIF(A$1:A1,DealSetup!A$2:A$6)=0,ROW(DealSetup!A$2:A$6)-ROW(DealSetup!A$2)+1)),1)),"")

-1

Если вы хотите решение с формулами, то вы будете иметь пробелы в нижней части. Ячейки, содержащие формулу, не могут расти и уменьшаться при изменении вашего списка. Ваша таблица с формулами должна иметь ту же высоту, что и ваши необработанные данные, чтобы вы ничего не пропустили, если, скажем, у всех есть 1 в столбце B Если вы знаете, что это никогда не произойдет, вы можете уменьшить количество строк на листе « List но это риск. Вот формула, которая вернет их все по порядку с пробелами внизу. Это формула массива, поэтому введите ее с помощью Ctrl+Shift+Enter: (Барри Гудини уже представил аналогичное решение)

{=IFERROR(INDEX(DealSetup!$A:$A,SMALL(IF(DealSetup!$B:$B=1,ROW(DealSetup!$B:$B)),ROW())),"")}

Если вы не можете принять пробелы внизу, это должно быть решение PivotTable или VBA. Этот вопрос довольно старый, поэтому я не ожидаю увидеть OP здесь в ближайшее время, к сожалению.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .