Lista valores baseados em critérios

4

Eu tenho uma tabela em uma planilha chamada "DealSetup" que se parece com esta versão simplificada:

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

Eu tenho uma tabela em uma planilha chamada "List" que eu gostaria de puxar os nomes para dentro da planilha "DealSetup". No entanto, quero listar apenas os nomes com base no valor da coluna B.

Por exemplo, na planilha "Lista", eu gostaria de usar algum tipo de função INDEX ou array de algum tipo para olhar para a planilha "DealSetup" e puxar todos que o valor da coluna B é 1 e listá-los. Eu não quero nenhum espaço em branco, no entanto. Deve ficar assim:

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

Ou assim:

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

Eu tenho tentado algumas coisas sem sorte. Não tenho certeza de onde ir a partir daqui, então qualquer informação seria apreciada!

    
por drumichael611 23.12.2013 / 21:17

2 respostas

4

Assumindo seus dados em DealSetup!A$2:B$6 , você pode usar essa fórmula em 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))),"")

confirme com CTRL + SHIFT + ENTER e copie até onde for necessário e mais. Quando você fica sem nomes, fica com espaços em branco.

Presume critérios (1,2 etc.) em C1

veja a pasta de trabalho anexada - tente alterar C1 para 2

Se os nomes se repetirem (dentro dos critérios especificados), você obterá os nomes repetidos - a fórmula pode ser ajustada para mostrar cada nome apenas uma vez, ou seja, essa versão

=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)),"")

    
por 24.12.2013 / 12:10
-1

Se você quiser uma solução com fórmulas, então você terá espaços em branco na parte inferior. Não é possível aumentar e diminuir as células que contêm a fórmula à medida que sua lista é alterada. Sua tabela com fórmulas deve ter a mesma altura que seus dados brutos para garantir que você não perca nada se, digamos, todos tiverem um 1 na coluna B . Se você sabe que nunca será o caso, você pode reduzir o número de linhas na planilha List , mas é um risco. Aqui está uma fórmula que irá devolvê-los todos em ordem com espaços em branco na parte inferior. É uma fórmula de matriz, então entre com Ctrl + Deslocamento + Enter : (Barry Houdini já enviou uma solução similar)

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

Se você não puder aceitar espaços em branco na parte inferior, terá que ser uma solução de Tabela Dinâmica ou VBA. Essa pergunta é bem antiga, então eu não espero ver o OP aqui tão cedo, infelizmente.

    
por 20.02.2015 / 14:37