Code Library

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 text

Argumentos

NomeTipoObrigatórioDescrição
documentonullable textSimCPF (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.