Cx=INDIRECT(ADDRESS(COUNTIF(B:B,">=" & Bx),1))
Os valores do ano de nascimento devem ser únicos.
Se os dados começarem da linha com o número mais de 1 - adicione o número adequado ao valor COUNTIF ().
Eu quero criar uma nova coluna de dados de uma coluna classificada por outra coluna.
É mais fácil explicar com um exemplo. Isso não é exatamente o que estou fazendo, mas acho que isso explica bem.
Digamos que a coluna A tenha nomes de pessoas em ordem alfabética:
Adão
Betty
Colin
Debbie
e a coluna B tem o ano do seu nascimento:
1985
1973
1954
1973
Gostaria de criar uma coluna C, que lista os nomes das pessoas pelo ano de nascimento:
Colin
Betty
Debbie
Adam
Isso deve ser feito sem alterar ou classificar a coluna A ou B.
Isso deve ser feito de uma maneira que atualizará automaticamente a coluna C se a coluna A ou B forem editadas.
Obrigado! (Estou trabalhando no Excel no Windows 10, se isso faz alguma diferença.)
Cx=INDIRECT(ADDRESS(COUNTIF(B:B,">=" & Bx),1))
Os valores do ano de nascimento devem ser únicos.
Se os dados começarem da linha com o número mais de 1 - adicione o número adequado ao valor COUNTIF ().
Isso seria fácil se os anos na coluna B fossem únicos, mas podemos ajustar para anos duplicados. Em D1 digite:
=B1
e em D2 digite:
=B2+COUNTIF(B$1:B1,B2)*0.001
e copie para baixo. A coluna D replica a coluna B com duplicatas "de-conflicted". Isso permite que a função MATCH()
recupere todos os valores. Finalmente, em C1 digite:
=INDEX(A:A,MATCH(SMALL(D:D,ROWS($1:1)),D:D,0))
e copie para baixo:
@ Estudante de Garry, por algum motivo, não encontrei as fórmulas de que precisava antes. Quando eu não consegui voltar a esta página por alguns dias, um pouco mais de pesquisa me encontrou a fórmula RANK. (No mais novo Excel, o RANK é depreciado, então usei o RANK.EQ mais novo. Então pensei em VLOOKUP, mas com um pouco mais de pesquisa, encontrei o INDEX MATCH, que parece melhor, e você usou isso também. Então aqui está o que eu fiz e como eu lidei com os anos duplicados: planilha classifica nomes por ano
(minhas fórmulas começam na linha 2 devido aos cabeçalhos)
Fórmula da coluna C:
=RANK.EQ(B2,B$2:B$15,1)
É importante saber como funciona o ranking. Se houver três itens na posição número 5, todos receberão uma classificação de 5 e não haverá itens com classificação de 6 ou 7. A próxima posição é uma classificação de 8.
Fórmula da coluna D:
na primeira célula
=C2
e em células subseqüentes
=C3+COUNTIF(C$2:C2,C3)
Isso elimina o ranking duplicado. A classificação é aumentada em 1 se houver uma classificação duplicada acima na lista. Então, esses números duplicados 5 receberão a classificação 6 & 7.
A coluna E é simplesmente uma lista de números consecutivos, bastante fácil de preencher automaticamente.
A fórmula da coluna F reúne tudo:
=INDEX($A$2:$A$15,MATCH(E2,$D$2:$D$15,0))
De qualquer forma, eu queria compartilhar o que eu tinha como funciona e é um pouco diferente. Mas provavelmente a resposta do Garry's Student é melhor, pois usa menos colunas para chegar lá. (Possivelmente eu poderia combinar alguns e usar menos colunas também com o meu método.)