M · UDF
fnDocumentoAnonimo
Mascara CPF e CNPJ, mantendo o início e os dígitos verificadores.
Categoria: Máscara de dadosTipo: UDFVersão: v2.0Fonte: Paulo André Jesus — OfficeTuningAtualizado em: 25/09/2026
Documentação completa na Function Library →Sintaxe
fnDocumentoAnonimo(documento as nullable text) as nullable textArgumentos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| documento | nullable text | Sim | CPF (11) ou CNPJ (14, numérico ou alfanumérico), formatado ou não. |
Retorno
nullable text
Código completo
let
fnDocumentoAnonimo = (documento as nullable text) as nullable text =>
let
vLimpo = Text.Select(Text.Upper(documento ?? ""), {"0".."9", "A".."Z"})
in
if Text.Length(vLimpo) = 11 then Text.Start(vLimpo, 3) & ".***.***-" & Text.End(vLimpo, 2)
else if Text.Length(vLimpo) = 14 then Text.Start(vLimpo, 2) & ".***.***/****-" & Text.End(vLimpo, 2)
else null,
Documentacao = [
Documentation.Name = "fnDocumentoAnonimo",
Documentation.Description = "Mascara CPF e CNPJ, mantendo o início e os dígitos verificadores.",
Documentation.LongDescription = "11 caracteres = CPF; 14 = CNPJ (numérico ou alfanumérico). Aceita entrada formatada ou não. Outros tamanhos retornam null.",
Documentation.Category = "Máscara de dados",
Documentation.Author = "Paulo André Jesus",
Documentation.Version = "2.0",
Documentation.Examples = {
[Description = "CPF", Code = "fnDocumentoAnonimo(""123.456.789-00"")", Result = """123.***.***-00"""],
[Description = "CNPJ alfanumérico", Code = "fnDocumentoAnonimo(""12.ABC.345/01DE-35"")", Result = """12.***.***/****-35"""]
}
]
in
Value.ReplaceType(fnDocumentoAnonimo, Value.ReplaceMetadata(Value.Type(fnDocumentoAnonimo), Documentacao))Exemplos
fnDocumentoAnonimo("123.456.789-00")
// "123.***.***-00"
fnDocumentoAnonimo("12.ABC.345/01DE-35")
// "12.***.***/****-35"Dicas e observações
💡 Outros tamanhos retornam null. ⚠️ Mascarar não é anonimizar no sentido da LGPD. Use em demonstração e treinamento e controle o acesso ao dado original.