Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Mudassir: Por hoje, temos um problema muito interessante para trabalhar. O problema desse arquivo é que ele é fixo delimitado por colunas e não sei como resolver isso usando o Microsoft Power Query. Você pode assistir ao vídeo completo deste tutorial na parte inferior deste blog.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Primeiro, não foi fácil para mim excluir as colunas dinamicamente. Em segundo lugar, neste relatório, temos uma tabela com largura de coluna diferente e outra tabela com largura de coluna diferente.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Portanto, se eu aplicar um delimitador dinamicamente na parte superior, não conseguirei obter os dados de forma organizada. Quero obter todos esses dados da segunda tabela e os números dos meus produtos da primeira tabela. Eu também quero o número do trabalho em cada linha de todas as tabelas.

Tentei resolver sozinho, mas como tem algo a ver com power query precisei da ajuda da Melissa. Achei que ela levaria pelo menos dois dias, mas ela conseguiu encontrar uma solução na hora.

A Melissa vai nos mostrar como resolveu esse complicado problema. Acho que a maioria das pessoas lida com esse tipo de problema e está procurando maneiras de resolvê-los.

Melissa: A primeira dica é se você estiver olhando para um arquivo de comprimento fixo, você pode ir para a aba View e ativar a opção Monospaced .

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Podemos ver que é uma fonte de comprimento fixo. Também podemos ver os cabeçalhos, tabelas iniciais e subtabelas. Essas são as partes que nos interessam e das quais queremos extrair.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Além disso, certifique-se de ter sua barra de fórmulas ativada. É sempre bom tê-lo visível em sua tela, pois o usaremos com frequência para fazer pequenas modificações na entrada.

Criei um parâmetro para o local do arquivo onde armazenei o arquivo CSV. Eu trouxe isso como um arquivo de preparação e o subscrevi no meu parâmetro de localização de arquivo. Então eu criei uma referência e estarei trabalhando a partir dessa referência. Então é isso que estamos vendo agora na consulta de energia da Microsoft.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Índice

Adicionando uma coluna de índice

Normalmente, quando começo a trabalhar em um arquivo como este, preciso conhecer os requisitos do cliente. Pergunto o que o cliente precisa e o que procurar.

Nesse caso, queremos o número do item e o número do trabalho dos cabeçalhos e, em seguida, queremos todos os detalhes que pertencem a esse cabeçalho específico.

Vamos precisar de uma chave para juntar essas coisas. Mas se não houver nenhuma chave presente, então meu objetivo é adicionar uma coluna de índice . Clicarei no ícone da minimesa, selecione Adicionar coluna de índice e adicione De 0 .

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Usarei uma lógica mais tarde com listas, que têm o índice baseado em 0. Ter seu índice começando do zero, na verdade, significa que você pode referenciar a mesma linha. Caso contrário, você terá que subtrair 1 para chegar a essa posição baseada em 0.

Em seguida, precisamos encontrar a posição onde estão nossos cabeçalhos, o que podemos fazer com bastante facilidade porque esses cabeçalhos são repetidos constantemente ao longo de todo o arquivo.

Para começar, vamos copiar este valor:

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Adicione uma nova consulta em branco, cole-a e chame-a de HeaderID .

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Farei o mesmo processo para as subtabelas. Vou copiar essa string de texto, criar outra consulta em branco e colar esse valor. Essa será a string que usaremos ao procurar linhas detalhadas.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Se esse processo de alguma forma alterar o cabeçalho de qualquer uma dessas tabelas, basta alterar uma das strings de texto e o arquivo funcionará novamente.

Eu realmente não preciso mergulhar no código M para procurar aquela string que estamos procurando. Podemos apenas usar isso como um parâmetro.

Vamos habilitar a carga para essas duas consultas.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Criando uma lista de buffers no Microsoft Power Query

A primeira coisa que farei é transformar a Coluna1 em uma lista referenciando-a e carregando-a na memória uma vez. Dessa forma, não preciso fazer chamadas repetidas para o arquivo.

Vou abrir o editor avançado e colocá-lo totalmente no topo. Quando você usa a interface do usuário para criar seu código, ele fará referência à etapa anterior.

Quando você coloca uma etapa de buffer em qualquer outro lugar em seu código e deseja fazer uma modificação, posteriormente, isso ajudará você a fazer as alterações na etapa que está criando manualmente.

Vou chamar isso de BufferList e referenciar Column1. Para carregá-lo na memória, adicionarei uma etapa List.Buffer .

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Aqui está minha variável no topo. Posso fazer referência a isso várias vezes.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

A primeira coisa que quero determinar é onde meus cabeçalhos começam porque preciso de uma chave para manter essas seções de cabeçalho e obter um único valor para todas essas linhas. Para fazer isso, adicionarei uma coluna personalizada e a chamarei de Header .

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Vou escrever que, se Column1 for igual ao nosso ID de cabeçalho, quero que meu número de índice seja nulo.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Como resultado, encontrou o texto e retornou 5 e 23.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Preciso desse valor em todas as linhas, então preciso preenchê-lo. Você pode clicar com o botão direito do mouse para preencher, mas também pode usar uma sintaxe muito simples e adicioná-la à barra de fórmulas.

Neste caso, adicionei Table.FillDown e na string de texto, indiquei qual coluna queremos preencher (Header).

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Agora, preenchemos isso para todas as linhas. Temos uma chave para todas as seções de cabeçalho e todas as seções de linha porque todas compartilham esse valor.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Dividindo cabeçalhos das linhas

A próxima etapa é separar os cabeçalhos das linhas. Vou adicionar outra coluna personalizada e chamá-la de Temp . Desta vez, faremos algo mais elaborado e aproveitaremos o BufferList que criei anteriormente.

Usaremos algumas funções de lista para examinar cada uma das posições e descobrir se há uma correspondência com o índice.

Começarei com uma instrução if e usarei List.Contains para procurar uma posição específica no BufferList e fazer referência à consulta HeaderID .

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Queremos localizá-lo em todo o comprimento do arquivo e, em seguida, retornar a posição do item na lista. Se corresponder ao índice, teremos uma correspondência para essa linha específica.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Então eu quero retornar um valor para identificar o cabeçalho. Nesse caso, estou apenas retornando um H. Vou copiar a sintaxe para não ter que escrever tudo de novo.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Também precisamos identificar a seção de linha. Se a lista não contiver o HeaderID , mas o DetailID , estaremos em uma seção de linha.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Se Column1 for uma string de texto vazia, quero que ela permaneça vazia . Se não for esse o caso, quero que seja null .

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Essa oposição obteve a linha de cabeçalho e retornou um H e, em seguida, encontrou uma linha detalhada e retornou um R. Em seguida, retornou 0s para todos os itens compartilhados nessa seção de linha.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Esses espaços em branco ou nulos são importantes porque permitem que você preencha. O preenchimento não se moverá pelas células em branco para que possamos eliminá-las mais tarde.

Faremos isso na barra de fórmulas e usaremos Table.FillDown novamente. Ele quer uma lista com o nome da coluna, que é nossa coluna Temp .

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Agora temos os valores H e R repetidos por toda esta coluna, o que significa que podemos dividir os cabeçalhos das seções detalhadas.

Você também pode preenchê-lo na interface do usuário se não quiser escrever o código. Você pode simplesmente clicar com o botão direito do mouse e selecionar Preencher e, em seguida, Abaixo .

Removendo os nulos e espaços em branco no Microsoft Power Query

Agora que temos esse direito, podemos eliminar as coisas que não precisamos. Tudo o que é nulo ou contém um espaço em branco são as linhas que não precisamos e devem ser removidas. Podemos eliminá-los por filtragem.

Dividindo as seções

Depois de removermos esses espaços em branco e nulos, ficamos com tudo o que precisamos. Neste ponto, podemos apenas dividir as seções. Podemos nos concentrar nas linhas de cabeçalho e selecioná-las porque elas têm um espaçamento separado de todas as linhas de detalhes (que também têm um espaçamento separado).

Vou adicionar uma nova etapa na barra de fórmulas que me permite criar outro filtro nessa mesma coluna. Nesse caso, manterei apenas todas as seções de cabeçalho.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Agora, tenho todas essas linhas de cabeçalho aqui.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Posso selecionar Column1 , ir para a barra de fórmulas, selecionar Dividir coluna e dividir por posições.

Em seguida, faça com que a própria consulta de energia descubra isso. Ele irá sugerir algumas posições. Clique em OK para aceitar essas posições.

As únicas coisas que nos interessam nos cabeçalhos são o item e o número do trabalho .

Dentro da barra de fórmulas aqui, posso renomeá-los com Item e Job # . Isso me salvará de outra etapa de renomeação da coluna.

Após esta etapa, tudo o que preciso fazer é selecionar o Item , selecionar o Job # e, claro, selecionar nossa chave de cabeçalho . Em seguida, removerei todas as outras colunas porque não preciso mais delas.

Este será o resultado. Ainda precisamos limpar os valores e remover o item de texto e os traços. Tudo o que queremos são esses valores intermediários.

Então, abrimos e desmarcamos os traços e itens.

Agora, todos os cabeçalhos estão prontos.

Também temos que fazer o mesmo processo para DetailID . Vou precisar renomear essas etapas para que seja mais fácil voltar a elas um pouco mais tarde.

Voltaremos à consulta inicial que iniciamos. Começamos com Filtered Rows no painel Applied Steps.

Vou copiar isso e adicioná-lo ao meu filtro. Desta vez, não estou selecionando H, mas sim o R.

Em seguida, seleciono a Coluna 1, vou para a coluna Dividir, divido por posições e, em seguida, faço uma consulta avançada para descobrir.

Isso é o que a consulta de energia sugere. Vamos tentar.

Isso realmente parece muito bom. Mesmo as linhas totais se dividem perfeitamente. Claro, há muitos espaços porque tínhamos esse recuo.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Cortando as strings de texto no Microsoft Power Query

Selecionarei a primeira coluna e pressionarei para baixo + Shift para selecionar até a coluna 1.10. Vá para Transform , selecione Format e depois Trim . Aparar apenas removerá os espaços em excesso na frente ou no final da corda, não no meio.

Em seguida, podemos apenas promover os cabeçalhos, para que não seja necessário digitar todos os cabeçalhos ou títulos dessas colunas. Na etapa de divisão, renomeei duas colunas. Agora, é claro, com 10 colunas, isso é um pouco incômodo.

Também temos que nos livrar desses valores em excesso. Como temos totais, tenho que usar uma dessas três últimas colunas porque são as únicas linhas que têm os valores adicionais em algum lugar intermediário. Em seguida, desmarcaremos esses espaços em branco, traços e textos.

Em seguida, removerei as colunas desnecessárias para que tudo o que resta seja uma tabela com apenas os cabeçalhos e apenas os detalhes. Precisamos de uma chave para reunir essas seções novamente.

Para isso, podemos usar uma auto-fusão para que possamos mesclar a tabela com ela mesma para reunir essas informações. Na guia Início , selecione Mesclar e, em seguida, selecione a Coluna 5 e a mesma consulta.

Em vez de AllDetails, quero AllHeaders como minha tabela inicial com a qual desejo mesclar.

Isso trouxe de volta todas as informações da tabela de cabeçalho com uma única linha para cada item e cada número de trabalho.

Usamos uma chave para mesclar com as linhas de detalhes. Se eu pressionar para o lado no espaço em branco aqui, veremos uma visualização de todas as linhas que pertencem ao Cabeçalho 5.

Vamos remover a coluna final aqui e, em seguida, terminamos de corrigir a largura da coluna fixa mista na consulta de energia da Microsoft.

Tutorial do Microsoft Power Query sobre como corrigir problemas mistos de largura de coluna fixa

Conclusão

Neste tutorial, criamos uma maneira de resolver problemas mistos de largura de coluna fixa usando o Microsoft Power Query. Se você gostou do conteúdo abordado neste tutorial específico, não se esqueça de se inscrever no canal de TV LuckyTemplates.

Temos uma grande quantidade de conteúdo sendo publicado o tempo todo, meu e de vários criadores de conteúdo, todos dedicados a melhorar a maneira como você usa o LuckyTemplates e a Power Platform.

melissa

Leave a Comment

Colunas calculadas no SharePoint | Uma visão geral

Colunas calculadas no SharePoint | Uma visão geral

Descubra a importância das colunas calculadas no SharePoint e como elas podem realizar cálculos automáticos e obtenção de dados em suas listas.

Atributos pré-atentivos: como isso pode afetar seu relatório

Atributos pré-atentivos: como isso pode afetar seu relatório

Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Aprenda a contar o número total de dias em que você não tinha estoque por meio dessa técnica eficaz de gerenciamento de inventário do LuckyTemplates.

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Saiba mais sobre as exibições de gerenciamento dinâmico (DMV) no DAX Studio e como usá-las para carregar conjuntos de dados diretamente no LuckyTemplates.

Variáveis ​​e expressões dentro do editor do Power Query

Variáveis ​​e expressões dentro do editor do Power Query

Este tutorial irá discutir sobre Variáveis e Expressões dentro do Editor do Power Query, destacando a importância de variáveis M e sua sintaxe.

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calcular uma média no LuckyTemplates envolve técnicas DAX para obter dados precisos em relatórios de negócios.

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

Como salvar e carregar um arquivo RDS em R

Como salvar e carregar um arquivo RDS em R

Você aprenderá como salvar e carregar objetos de um arquivo .rds no R. Este blog também abordará como importar objetos do R para o LuckyTemplates.

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.