Fórmula para atribuir um sufixo a um rank: IF 1 então “st”, IF 2 então “nd”, etc

0

Estou comparando a posição de um registro à sua posição no ano passado: This year it is ranked 4th out of 50, in 2015 it was ranked 21st . É possível adicionar o "st", "nd", "rd" e "th" ao rank automaticamente?

Meus dados estão em uma tabela:

  • COL A = Nome do ponto de dados (Bob, Jane, Bill, Anne, etc.). Esta é uma coluna fixa.
  • COL B = dados do ano anterior,
  • COL C = classificação mais recente do ano,
  • COL D = dados do ano anterior,
  • COL E = classificação do ano anterior.

Eu me sinto bastante confortável usando fórmulas IF, mas não tenho certeza de como me referir ao último dígito em uma célula e dizer: SE "é um 1 então 'st'", SE "é um 2 e depois '", Se" é um 3 então' rd '", else' th '.

Observe que a classificação pode ser um número com vários dígitos. As letras são baseadas no último dígito. Então, a classificação de 31 é 31. São também exceções para os adolescentes. Ranks 11, 12 e 13 usam "th".

Isso pode ser feito como uma fórmula ou precisa ser feito pelo VBA?

    
por RocketGoal 19.10.2016 / 10:46

2 respostas

0

O seguinte assume que a "classificação" está na célula B50 "

=IF(B50=1,"st",IF(B50=2,"nd",IF(B50=3,"rd","th")))

Os itens acima darão resultados como "st", "nd" etc

Embora eu suspeite que você também queira mostrar o número, use

=IF(B50=1,B50 & "st",IF(B50=2,B50 & "nd",IF(B50=3,B50 & "rd",B50 & "th")))

Isso mostrará resultados como "1st", "2nd" etc.

Graças ao comentário ejbytes, não testei > 10! O snippet a seguir faz isso para que você possa ter 22º ou 43º, etc.

=IF(RIGHT(B50,1) = "1", B50&"st",IF(RIGHT(B50,1)="2",B50&"nd",IF(RIGHT(B50,1)="3",B50&"rd",B50&"th")))

Agora entramos nos números 11, 12 e 13, 111, 112, 113, etc, então precisamos lidar com eles!

=IF(RIGHT(B50,2)="11",B50 & "th",IF(RIGHT(B50,2)="12",B50&"th",IF(RIGHT(B50,2)="13",B50&"th",IF(RIGHT(B50,1)="1",B50&"st",IF(RIGHT(B50,1)="2",B50&"nd",IF(RIGHT(B50,1)="3",B50&"rd",B50&"th"))))))

Finalmente, ficamos com 0 ... 10, 50, 100, mas também temos 0!

=IF(B50=0,0,IF(RIGHT(B50,2)="11",B50&"th",IF(RIGHT(B50,2)="12",B50&"th",IF(RIGHT(B50,2)="13",B50&"th",IF(RIGHT(B50,1)="1",B50&"st",IF(RIGHT(B50,1)="2",B50&"nd",IF(RIGHT(B50,1)="3",B50&"rd",B50&"th")))))))
    
por 19.10.2016 / 10:53
1

Trabalhando com a fórmula @Dave IF, tive que fazer algumas alterações na minha planilha de dados.

Reconhecer o dígito mais à esquerda significava que eu precisava adicionar outra coluna 'auxiliar'.

  • A coluna A é o número de classificação original
  • A coluna B é uma nova coluna auxiliar = VALOR (DIREITA (A1,1)) Isso me dá o último dígito.
  • A coluna C tem a fórmula

    =IF(A1=12,A1&"th",IF(A1=13,A1&"th",IF(B1=1,A1&"st",IF(B1=2,A1&"nd",IF(B1=3,A1&"rd",A1&"th")))))
    

Eu tive que lidar com 12 e 13 especificamente ... por causa do inglês!

Funciona, mas pode machucar os olhos. Obrigado

    
por 19.10.2016 / 15:41