Estou comparando a posição de um disco com a posição dele no ano passado: This year it is ranked 4th out of 50, in 2015 it was ranked 21st
. É possível adicionar "st", "nd", "rd" e "th" à classificação 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 último ano,
- COL C = classificação do último ano,
- COL D = dados do ano anterior,
- COL E = classificação do ano anterior.
Sinto-me bastante confortável usando fórmulas IF, mas não tenho certeza de como me referir ao último dígito de uma célula e dizer: SE "é 1, então 'st'", SE "é 2, então 'nd'", SE "é um 3 então 'rd'", senão 'th'.
Observe que a classificação pode ser um número de vários dígitos. As letras são baseadas no último dígito. Portanto, a posição 31 é a 31ª. Também há exceções para os adolescentes. As classificações 11, 12 e 13 usam "th".
Isso pode ser feito como uma fórmula ou precisa ser feito pelo VBA?
Responder1
O seguinte pressupõe que a "classificação" esteja na célula B50"
=IF(B50=1,"st",IF(B50=2,"nd",IF(B50=3,"rd","th")))
O texto acima fornecerá resultados como "st", "nd" etc.
Embora eu suspeite que você também queira mostrar o número, então use
=IF(B50=1,B50 & "st",IF(B50=2,B50 & "nd",IF(B50=3,B50 & "rd",B50 & "th")))
Isso mostrará resultados como "1º", "2º" etc.
Graças ao comentário do ejbytes, não testei> 10! O trecho a seguir faz isso para que você possa ter o 22º ou o 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 nas questões 11, 12 e 13, bem como 111, 112, 113, etc., então precisamos lidar com elas!
=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")))))))
Responder2
Trabalhando com a fórmula @Dave IF, tive que fazer algumas alterações em minha planilha de dados.
Reconhecer o dígito mais à esquerda significava que eu precisava adicionar outra coluna 'auxiliar'.
- A coluna A é o número da classificação original
- A coluna B é uma nova coluna auxiliar =VALUE(RIGHT(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")))))
Tive que lidar especificamente com 12 e 13… por causa do inglês!
Funciona, mas pode machucar os olhos. Obrigado