M · UDF
fnRemoveAcentos
Remove acentos de letras latinas por uma tabela fixa de substituição.
Categoria: TextoTipo: UDFVersão: v2.0Fonte: Paulo André Jesus — OfficeTuningAtualizado em: 25/09/2026
Documentação completa na Function Library →Sintaxe
fnRemoveAcentos(texto as nullable text) as nullable textArgumentos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| texto | nullable text | Sim | Texto com acentos. |
Retorno
nullable text
Código completo
let
fnRemoveAcentos = (texto as nullable text) as nullable text =>
let
vDe = "ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöøùúûüýÿŠšŽžŸ",
vPara = "AAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyySsZzY",
vPares = List.Zip({Text.ToList(vDe), Text.ToList(vPara)})
in
if texto = null then null
else Text.Combine(List.ReplaceMatchingItems(Text.ToList(texto), vPares)),
Documentacao = [
Documentation.Name = "fnRemoveAcentos",
Documentation.Description = "Remove acentos de letras latinas por uma tabela fixa de substituição.",
Documentation.LongDescription = "Cada caractere de vDe é trocado pelo caractere na mesma posição de vPara. Caracteres fora da tabela não mudam. O resultado não depende da página de código do computador.",
Documentation.Category = "Texto",
Documentation.Author = "Paulo André Jesus",
Documentation.Version = "2.0",
Documentation.Examples = {
[Description = "Texto em português", Code = "fnRemoveAcentos(""São João d’Ávila"")", Result = """Sao Joao d’Avila"""],
[Description = "Caractere fora da tabela", Code = "fnRemoveAcentos(""Straße"")", Result = """Straße"""]
}
]
in
Value.ReplaceType(fnRemoveAcentos, Value.ReplaceMetadata(Value.Type(fnRemoveAcentos), Documentacao))Exemplos
fnRemoveAcentos("São João d’Ávila")
// "Sao Joao d’Avila"
fnRemoveAcentos("Straße")
// "Straße" (fora da tabela: não muda)Dicas e observações
💡 O resultado não depende da página de código do computador nem do Service. ⚠️ O atalho Text.FromBinary(Text.ToBinary(texto, 1251), ...) não é documentado pela Microsoft e troca caracteres como – e € por ? ou �.