Como Remover Espaços Consecutivos no Power Query

A limpeza de textos é uma etapa essencial no processamento de dados, especialmente quando se trabalha com grandes volumes de informações inconsistentes. Uma tarefa comum é a remoção de espaços consecutivos e outros caracteres indesejados que podem atrapalhar a análise. Para resolver isso de forma eficiente, criamos a função personalizada chamada fc_texclean no Power Query.

Principais Recursos da fc_texclean:

  1. Remoção de Espaços Consecutivos:
    • Reduz qualquer sequência de espaços (independente do tamanho) para um único espaço.
    • Garante que o texto final seja visualmente e semanticamente limpo.
  2. Recursão Controlada:
    • Utiliza um limite de até 100 iterações para evitar problemas de desempenho ou estouro de pilha.
  3. Tratamento Seguro de Erros:
    • Com o uso de try...otherwise, a função retorna o texto original caso algum erro inesperado aconteça.
  4. Flexibilidade:
    • Pode ser aplicada diretamente em colunas no Power Query, facilitando a integração com qualquer projeto.

O Código da Função fc_texclean:

let
    getTexto = (pTexto as text, interacao as number) => 
    let
        T1 = Text.Clean(Text.Trim(Text.Combine(List.Select(Text.Split(Text.Trim(pTexto), " "), each _ <> ""), " "))),
        T2 = if Text.Contains(T1, "  ") and interacao < 100 then @getTexto(T1, interacao + 1) else T1
    in
        try T2 otherwise pTexto
in
    (pTexto) => getTexto(pTexto, 0)

Como a Função Funciona?

  1. Entrada Inicial (pTexto):
    • A função recebe um texto como entrada, por exemplo, "QUADRA33 LOTE 770".
  2. Etapa de Limpeza (T1):
    • Remove espaços no início e no final com Text.Trim.
    • Divide o texto em uma lista usando Text.Split.
    • Remove elementos vazios da lista com List.Select.
    • Recombina os elementos restantes com um único espaço, usando Text.Combine.
  3. Recursão (T2):
    • Verifica se ainda existem espaços consecutivos no texto com Text.Contains.
    • Se houver, a função chama a si mesma até que não haja mais espaços consecutivos ou o limite de 100 iterações seja atingido.
  4. Fallback de Segurança:
    • Caso ocorra um erro, a função retorna o texto original, garantindo robustez.
  5. Saída Final:
    • Retorna um texto limpo e padronizado.

Exemplo de Uso:

Entrada:

"QUADRA33                  LOTE  770"

Saída:

"QUADRA33 LOTE 770"

Como Implementar no Power Query:

  1. Abra o Power Query no Excel ou Power BI.
  2. Clique em Início > Avançado > Nova Consulta.
  3. Cole o código da função fc_texclean.
  4. Aplique a função em uma coluna:
    • Adicione uma Coluna Personalizada.
    • Use a fórmula: fc_texclean([SuaColuna])

Vantagens da fc_texclean:

  • Eficiente: Funciona de forma iterativa para garantir a remoção de todos os espaços consecutivos.
  • Segura: Evita estouros de pilha e trata erros de maneira elegante.
  • Prática: Pode ser reutilizada em qualquer projeto no Power Query, bastando importar o código.

Conclusão

A função fc_texclean é uma solução poderosa e simples para quem trabalha com limpeza de dados no Power Query. Com ela, você garante que seus textos estarão sempre padronizados, economizando tempo e evitando problemas durante a análise. Experimente e veja como sua limpeza de dados pode se tornar muito mais eficiente!

– essa foi mais uma dica do Ornit 😉.


Comentários

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *