Obtendo as 3 primeiras linhas nas quais o valor da célula é maior que

1

Lutando para obter uma linha de dados com base no valor da linha. Eu tenho meus dados estruturados assim:

ID  Name   Score  Owner
1   Item1  94%    MD
2   Item2  24%    OM
3   Item3  55%    TM
4   Item4  76%    MD
5   Item5  12%    OM

O que eu quero alcançar é poder retirar o Nome e o Proprietário, onde a Pontuação está acima de 65% (ou qualquer outro número).

Eu atualmente uso referências de coluna, com minha tabela sendo chamada de "table2", por exemplo. Tabela 2 [nome] e assim por diante.

Tentei usar INDEX e MATCH, mas parece que não quer trabalhar comigo, também tentei o VLOOKUP, mas parece que não funciona.

Algumas das fórmulas que tenho tentado e ajustado para tentar alcançar o que eu quero:

=INDEX(Table2,MATCH(0.32,Table2[Score],-1),0)

=IF(K5="","",INDEX(Table2[Name],Table2[Score]=L5))
$K = 1 to 3 (5=1 in the above), L5 = the score I am looking for.

Qualquer orientação seria realmente útil, o desafio que eu encontrei principalmente com exemplos da internet é que eles usam intervalos "$ A $ 1: $ A $ 19" etc. e quando eu os substituo pelo intervalo nomeado, a fórmula não faz t trabalho.

    
por copyandpaster 27.09.2018 / 10:05

2 respostas

2

Comofunciona:

  • EscrevaessaFórmuladeMatriznaCélulaA10,terminecomCtrl+Shift+Enter,preenchaDireitaedepoisemAbaixo.

    {=IFERROR(INDEX($B$2:$D$6,SMALL(IF((INDEX($B$2:$D$6,,$B$8)>$A$8),MATCH(ROW($B$2:$D$6),ROW($B$2:$D$6)),""), ROWS(B2:$B$2)), COLUMNS($A$1:A1)),"")}
    

Nota:

  • Isso extrairá apenas dois registros, já que tem uma pontuação maior que 65%.

  • A célula A8 tem critérios 65% e B8 tem posição de coluna 2 (coluna de pontuação).

  • Ajuste referências de célula na fórmula conforme necessário.

Editado:

INDEX($B$2:$D$6, , $B$8) , torna-se

INDEX($B$2:$D$6, , 2)

e devolve C2:C6 .

C2:C6 é comparado a $ A $ 8 (que é 65% neste exemplo).

MATCH(ROW($B$2:$D$6), ROW($B$2:$D$6)), "")

torna-se , {1;2;3;4;5}, "")

Em combinação com o teste IF em C2:C6 para >$A$8 , retorna linhas,

{1;"";"";"";4;""} de Name Column .

Por fim, arraste a fórmula para a direita e, em seguida, para baixo conclui a extração de dados.

    
por 27.09.2018 / 10:50
1

Parece que eu respondi a minha própria pergunta, depois que escrevi minha pergunta, olhei para uma fórmula que eu tinha obtido de link particularmente EMT967.xlsx que é explicado aqui link e outro de link . Usando esses 2 exemplos, consegui criar a fórmula necessária usando uma combinação de INDEX e MATCH.

Para maior clareza, aqui está o que tenho atualmente em certas células:

W4

=LARGE(Table2[Score],3)

W5

3

K5 (copiado para baixo 3 pilhas a K8)

=IF(ROWS(K$5:K5)>$W$5,"",ROWS(K$5:K5))

L5 (copiado 3 células para L8)

=IF(K5="","",LARGE(Table2[Score],K5))

M5 (copiado 3 células para M8)

=IF(K5="","",INDEX(Table2[Name],MATCH(L5,Table2[Score],0)))

Se eu alterar a célula W5 para outra coisa, como 1 a folha mostra apenas o item de pontuação mais alto do meu conjunto de dados, 2 mostrará 2 e assim por diante. Se você quiser mais de 3 cópias K5, L5 e M5 mais células, então mude o número em W5 para preencher a quantidade de linhas em que as fórmulas estão.

Espero que isso ajude alguém, eu embaraçosamente gastei cerca de 6 horas tentando aprender isso e fazê-lo funcionar! Mas eu consegui fazer isso, então é algo.

Atualizar : isso "funciona", mas não pode lidar com valores exclusivos, pois só retorna o nome que corresponde à pontuação fornecida.

Update2 : corrigido usando um dos exemplos fornecidos anteriormente. A célula M5 agora contém:

=IF(K5="","",INDEX(Table2[Name],AGGREGATE(15,6,(ROW(Table2[Score])

-CELL("row",Table2[Score])+1)/(Table2[Score]=L5),COUNTIF($L$5:L5,L5))))

Isso agora parece ser capaz de manipular valores duplicados.

    
por 27.09.2018 / 10:23