Code Library

M · UDF

fnAddOrdinalSuffixEN

Adiciona o sufixo ordinal em inglês: 1st, 2nd, 3rd, 4th...

Categoria: TextoTipo: UDFVersão: v1.1Fonte: Paulo André Jesus — OfficeTuningAtualizado em: 25/09/2026
Documentação completa na Function Library →

Sintaxe

fnAddOrdinalSuffixEN(SingleNumber as nullable number) as nullable text

Argumentos

NomeTipoObrigatórioDescrição
SingleNumbernullable numberSimNúmero inteiro.

Retorno

nullable text

Código completo

let
    fnAddOrdinalSuffixEN = (SingleNumber as nullable number) as nullable text =>
        let
            // O sinal não muda o sufixo: -1 → "-1st"
            vAbs = Number.Abs(SingleNumber),
            vDoisUltimos = Number.Mod(vAbs, 100),
            vUltimo = Number.Mod(vAbs, 10),
            // 11, 12 e 13 são exceção: sempre "th"
            vSufixo =
                if List.Contains({11, 12, 13}, vDoisUltimos) then "th"
                else if vUltimo = 1 then "st"
                else if vUltimo = 2 then "nd"
                else if vUltimo = 3 then "rd"
                else "th"
        in
            if SingleNumber = null then null else Text.From(SingleNumber, "en-US") & vSufixo,

    Documentacao = [
        Documentation.Name = "fnAddOrdinalSuffixEN",
        Documentation.Description = "Adiciona o sufixo ordinal em inglês (1st, 2nd, 3rd, 4th...).",
        Documentation.LongDescription = "Recebe um número inteiro e devolve o número com o sufixo ordinal do inglês. Números terminados em 11, 12 e 13 levam sempre 'th'. Entrada null retorna null.",
        Documentation.Category = "Texto",
        Documentation.Author = "Paulo André Jesus",
        Documentation.Version = "1.1",
        Documentation.Examples = {
            [Description = "Regra geral", Code = "fnAddOrdinalSuffixEN(22)", Result = """22nd"""],
            [Description = "Exceção", Code = "fnAddOrdinalSuffixEN(112)", Result = """112th"""],
            [Description = "Centena", Code = "fnAddOrdinalSuffixEN(101)", Result = """101st"""]
        }
    ]
in
    Value.ReplaceType(fnAddOrdinalSuffixEN, Value.ReplaceMetadata(Value.Type(fnAddOrdinalSuffixEN), Documentacao))

Exemplos

fnAddOrdinalSuffixEN(22)
// "22nd"

fnAddOrdinalSuffixEN(112)
// "112th"

fnAddOrdinalSuffixEN(101)
// "101st"

Dicas e observações

💡 Terminados em 11, 12 e 13 levam sempre "th". 💡 O sinal não muda o sufixo: -1 vira "-1st".