Pular para o conteúdo
officetuning.aiofficetuning.ai
TreinamentosConsultoriaBibliotecaFerramentasConteúdoPortfólio
Entrar
officetuning.aiofficetuning.ai

Treinamento, consultoria e mentoria para decidir, construir e aprender nas quatro frentes da marca.

AI · Data · Productivity · Dev · São Paulo
contato@officetuning.ai
TreinamentosPower BIExcelSQLPowerPointIA + ProdutividadeTodos os treinamentos
PortalConsultoriaBibliotecaPortfólioBackground BuilderDashboard CanvasConteúdo
InstitucionalPolítica de privacidadeInformações legais
© 2026 officetuning.ai · São Paulo
  1. Biblioteca
  2. Power Query (M)
  3. UDFs M
  4. fnDocumentoAnonimo

fnDocumentoAnonimo

MMáscara de dados

Mascara CPF e CNPJ, mantendo o início e os dígitos verificadores.

Sintaxe

M
fnDocumentoAnonimo(documento as nullable text) as nullable text

Parâmetros

documentonullable textObrigatório

CPF (11) ou CNPJ (14, numérico ou alfanumérico), formatado ou não.

M
"123.456.789-00"

Tipo de retorno

nullable text

Exemplos

M
fnDocumentoAnonimo("123.456.789-00")
// "123.***.***-00"

fnDocumentoAnonimo("12.ABC.345/01DE-35")
// "12.***.***/****-35"

Código completo

M
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))

Observações

Outros tamanhos retornam null. Atenção Mascarar não é anonimizar no sentido da LGPD. Use em demonstração e treinamento e controle o acesso ao dado original.

Mais informações

Fonte
Paulo André Jesus — OfficeTuning
Versão
2.0
AnteriorfnClassificacaoIMCPróxima fnEmailAnonimo
Biblioteca