{"id":1000,"date":"2025-01-17T13:14:16","date_gmt":"2025-01-17T16:14:16","guid":{"rendered":"https:\/\/www.gpscompany.com.br\/newsite\/?p=1000"},"modified":"2025-01-17T14:48:40","modified_gmt":"2025-01-17T17:48:40","slug":"como-remover-espacos-consecutivos-no-power-query","status":"publish","type":"post","link":"https:\/\/www.gpscompany.com.br\/newsite\/2025\/01\/17\/como-remover-espacos-consecutivos-no-power-query\/","title":{"rendered":"Como Remover Espa\u00e7os Consecutivos no Power Query"},"content":{"rendered":"\n<div class=\"wp-block-group alignwide is-vertical is-content-justification-left is-layout-flex wp-container-core-group-is-layout-0c39fd5e wp-block-group-is-layout-flex\">\n<p class=\"bodyText\">A limpeza de textos \u00e9 uma etapa essencial no processamento de dados, especialmente quando se trabalha com grandes volumes de informa\u00e7\u00f5es inconsistentes. Uma tarefa comum \u00e9 a remo\u00e7\u00e3o de espa\u00e7os consecutivos e outros caracteres indesejados que podem atrapalhar a an\u00e1lise. Para resolver isso de forma eficiente, criamos a fun\u00e7\u00e3o personalizada chamada&nbsp;<strong><code>fc_texclean<\/code><\/strong>&nbsp;no Power Query.<\/p>\n\n\n\n<h4 class=\"wp-block-heading bodyText\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0099ff\" class=\"has-inline-color\">Principais Recursos da&nbsp;<code>fc_texclean<\/code>:<\/mark><\/h4>\n\n\n\n<ol class=\"wp-block-list bodyText\">\n<li>Remo\u00e7\u00e3o de Espa\u00e7os Consecutivos:\n<ul class=\"wp-block-list\">\n<li>Reduz qualquer sequ\u00eancia de espa\u00e7os (independente do tamanho) para um \u00fanico espa\u00e7o.<\/li>\n\n\n\n<li class=\"bodyText\">Garante que o texto final seja visualmente e semanticamente limpo.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Recurs\u00e3o Controlada:\n<ul class=\"wp-block-list\">\n<li>Utiliza um limite de at\u00e9&nbsp;<strong>100 itera\u00e7\u00f5es<\/strong>&nbsp;para evitar problemas de desempenho ou estouro de pilha.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Tratamento Seguro de Erros:\n<ul class=\"wp-block-list\">\n<li>Com o uso de&nbsp;<code>try...otherwise<\/code>, a fun\u00e7\u00e3o retorna o texto original caso algum erro inesperado aconte\u00e7a.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Flexibilidade:\n<ul class=\"wp-block-list\">\n<li>Pode ser aplicada diretamente em colunas no Power Query, facilitando a integra\u00e7\u00e3o com qualquer projeto.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading bodyText\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0099ff\" class=\"has-inline-color\">O C\u00f3digo da Fun\u00e7\u00e3o&nbsp;<code>fc_texclean<\/code>:<\/mark><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>let\n    getTexto = (pTexto as text, interacao as number) =&gt; \n    let\n        T1 = Text.Clean(Text.Trim(Text.Combine(List.Select(Text.Split(Text.Trim(pTexto), \" \"), each _ &lt;&gt; \"\"), \" \"))),\n        T2 = if Text.Contains(T1, \"  \") and interacao &lt; 100 then @getTexto(T1, interacao + 1) else T1\n    in\n        try T2 otherwise pTexto\nin\n    (pTexto) =&gt; getTexto(pTexto, 0)<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading bodyText\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0099ff\" class=\"has-inline-color\">Como a Fun\u00e7\u00e3o Funciona?<\/mark><\/h4>\n\n\n\n<ol class=\"wp-block-list bodyText\">\n<li><strong>Entrada Inicial (<code>pTexto<\/code>):<\/strong>\n<ul class=\"wp-block-list\">\n<li>A fun\u00e7\u00e3o recebe um texto como entrada, por exemplo,&nbsp;<code>\"QUADRA33 LOTE 770\"<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Etapa de Limpeza (<code>T1<\/code>):<\/strong>\n<ul class=\"wp-block-list\">\n<li>Remove espa\u00e7os no in\u00edcio e no final com&nbsp;<code>Text.Trim<\/code>.<\/li>\n\n\n\n<li>Divide o texto em uma lista usando&nbsp;<code>Text.Split<\/code>.<\/li>\n\n\n\n<li>Remove elementos vazios da lista com&nbsp;<code>List.Select<\/code>.<\/li>\n\n\n\n<li>Recombina os elementos restantes com um \u00fanico espa\u00e7o, usando&nbsp;<code>Text.Combine<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Recurs\u00e3o (<code>T2<\/code>):<\/strong>\n<ul class=\"wp-block-list\">\n<li>Verifica se ainda existem espa\u00e7os consecutivos no texto com&nbsp;<code>Text.Contains<\/code>.<\/li>\n\n\n\n<li>Se houver, a fun\u00e7\u00e3o chama a si mesma at\u00e9 que n\u00e3o haja mais espa\u00e7os consecutivos ou o limite de 100 itera\u00e7\u00f5es seja atingido.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Fallback de Seguran\u00e7a:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Caso ocorra um erro, a fun\u00e7\u00e3o retorna o texto original, garantindo robustez.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Sa\u00edda Final:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Retorna um texto limpo e padronizado.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading bodyText\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0099ff\" class=\"has-inline-color\">Exemplo de Uso:<\/mark><\/h4>\n\n\n\n<p class=\"bodyText\"><strong>Entrada:<\/strong><\/p>\n<\/div>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>\"QUADRA33                  LOTE  770\"<\/code><\/pre>\n\n\n\n<p class=\"bodyText\"><strong>Sa\u00edda:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code alignwide wp-container-content-9cfa9a5a\"><code>\"QUADRA33 LOTE 770\"<\/code><\/pre>\n\n\n\n<div class=\"wp-block-group alignwide is-vertical is-layout-flex wp-container-core-group-is-layout-fe9cc265 wp-block-group-is-layout-flex\">\n<h4 class=\"wp-block-heading alignwide bodyText\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0099ff\" class=\"has-inline-color\">Como Implementar no Power Query:<\/mark><\/h4>\n\n\n\n<ol class=\"wp-block-list bodyText\">\n<li>Abra o&nbsp;<strong>Power Query<\/strong>&nbsp;no Excel ou Power BI.<\/li>\n\n\n\n<li>Clique em&nbsp;<strong>In\u00edcio<\/strong>&nbsp;&gt;&nbsp;<strong>Avan\u00e7ado<\/strong>&nbsp;&gt;&nbsp;<strong>Nova Consulta<\/strong>.<\/li>\n\n\n\n<li>Cole o c\u00f3digo da fun\u00e7\u00e3o&nbsp;<code>fc_texclean<\/code>.<\/li>\n\n\n\n<li>Aplique a fun\u00e7\u00e3o em uma coluna:\n<ul class=\"wp-block-list\">\n<li>Adicione uma&nbsp;<strong>Coluna Personalizada<\/strong>.<\/li>\n\n\n\n<li>Use a f\u00f3rmula: fc_texclean([SuaColuna])<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading bodyText\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0099ff\" class=\"has-inline-color\">Vantagens da&nbsp;<code>fc_texclean<\/code>:<\/mark><\/h4>\n\n\n\n<ul class=\"wp-block-list bodyText\">\n<li><strong>Eficiente:<\/strong>&nbsp;Funciona de forma iterativa para garantir a remo\u00e7\u00e3o de todos os espa\u00e7os consecutivos.<\/li>\n\n\n\n<li><strong>Segura:<\/strong>&nbsp;Evita estouros de pilha e trata erros de maneira elegante.<\/li>\n\n\n\n<li><strong>Pr\u00e1tica:<\/strong>&nbsp;Pode ser reutilizada em qualquer projeto no Power Query, bastando importar o c\u00f3digo.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading bodyText\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0099ff\" class=\"has-inline-color\">Conclus\u00e3o<\/mark><\/h4>\n\n\n\n<p class=\"bodyText\">A fun\u00e7\u00e3o&nbsp;<code>fc_texclean<\/code>&nbsp;\u00e9 uma solu\u00e7\u00e3o poderosa e simples para quem trabalha com limpeza de dados no Power Query. Com ela, voc\u00ea garante que seus textos estar\u00e3o sempre padronizados, economizando tempo e evitando problemas durante a an\u00e1lise. Experimente e veja como sua limpeza de dados pode se tornar muito mais eficiente!<\/p>\n\n\n\n<p class=\"bodyText\">Desejamos que o conte\u00fado tenha sido \u00fatil para o seu aprendizado.<br>\u2013 Fonte de mat\u00e9ria site<strong>&nbsp;<a href=\"https:\/\/ornit.com.br\/site\/como-remover-espacos-consecutivos-no-power-query-com-a-funcao-personalizada\/\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0099ff\" class=\"has-inline-color\">ornit.com.br<\/mark><\/a><\/strong>\ud83d\ude09<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Aprenda como a fun\u00e7\u00e3o personalizada fc_texclean no Power Query pode simplificar a limpeza de textos, removendo espa\u00e7os consecutivos e padronizando dados automaticamente. Com um mecanismo recursivo controlado e tratamento seguro de erros, essa fun\u00e7\u00e3o \u00e9 ideal para quem busca efici\u00eancia e precis\u00e3o no processamento de dados no Excel ou Power BI.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[8,18],"class_list":["post-1000","post","type-post","status-publish","format-standard","hentry","category-power-bi","tag-power-bi","tag-power-query"],"_links":{"self":[{"href":"https:\/\/www.gpscompany.com.br\/newsite\/wp-json\/wp\/v2\/posts\/1000","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gpscompany.com.br\/newsite\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gpscompany.com.br\/newsite\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gpscompany.com.br\/newsite\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gpscompany.com.br\/newsite\/wp-json\/wp\/v2\/comments?post=1000"}],"version-history":[{"count":16,"href":"https:\/\/www.gpscompany.com.br\/newsite\/wp-json\/wp\/v2\/posts\/1000\/revisions"}],"predecessor-version":[{"id":1038,"href":"https:\/\/www.gpscompany.com.br\/newsite\/wp-json\/wp\/v2\/posts\/1000\/revisions\/1038"}],"wp:attachment":[{"href":"https:\/\/www.gpscompany.com.br\/newsite\/wp-json\/wp\/v2\/media?parent=1000"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gpscompany.com.br\/newsite\/wp-json\/wp\/v2\/categories?post=1000"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gpscompany.com.br\/newsite\/wp-json\/wp\/v2\/tags?post=1000"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}