Não dinamizar várias colunas dinamicamente no LuckyTemplates

Neste tutorial, revisitaremos um tópico que abordei anteriormente sobre como não dinamizar várias colunas no Power Query usando List.Zip. Um membro do LuckyTemplates perguntou no como tornar esse método dinâmico. Você pode assistir ao vídeo completo deste tutorial na parte inferior deste blog.

Eu rotulei isso como avançado porque estaremos escrevendo várias funções M e algumas delas podem até ser novas para você.

Dito isso, vamos para o Power Query.

Índice

Dados em formato tabular

Como você pode ver, esses dados já foram transformados em um formato de tablet adequado para análise. Esse processo, embora muito importante, não será abordado aqui, mas examinaremos brevemente cada etapa.

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Na etapa de origem, vemos uma repetição constante dos pares de valores, que são as horas e os contatos de cada um dos atributos listados acima.

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Nas Etapas aplicadas , você pode ver o restante das etapas. Removemos algumas linhas superiores, removemos as colunas vazias, limpamos nossos valores de texto e os preenchemos. Em seguida, transpusemos nossos dados, removemos o registro vazio, mesclamos as colunas um e dois, limpamos nossos valores de texto novamente e transpomos nossos dados de volta.

Criamos uma etapa personalizada, que examinaremos com mais detalhes posteriormente, extraímos valores de nossa lista e, finalmente, alteramos o tipo.

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Vamos ver o código inteiro. O que nos interessa aqui é a função List.Zip . Breve recapitulação, ele usa uma única lista como parâmetro e, em seguida, retorna uma lista. Como resultado, vemos que esta única lista neste exemplo contém três listas separadas.

Se examinarmos a primeira lista, ela contém nomes de atributos embutidos em código, apenas valores de texto que foram digitados. A segunda lista contém referências de coluna embutidas em código para os valores de hora. A lista final contém referências de coluna embutidas em código para os valores de contato.

List.Zip pega um elemento de cada uma dessas três listas e os combina com base em sua posição em uma nova lista. Por exemplo, cada primeiro elemento dessas listas é combinado em uma nova lista. O mesmo acontece para todos os valores listados em segundo lugar nessa lista e assim por diante.

Os valores embutidos em código podem ser considerados se os atributos não forem alterados ao longo do tempo. Então, se da próxima vez, nem todos os itens estiverem presentes ou novos itens existirem, você pode ter problemas.

Alterando o código para não dinamizar várias colunas dinamicamente

Então, como fazemos essa dinâmica?

A primeira coisa que faço é percorrer o código para ver se há um lugar onde podemos pegar esses valores de atributo sem ter que criar uma etapa separada para fazer isso. Portanto, vamos retroceder no código, e esta etapa RemoveNull é perfeita.

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Você pode ver que ele lista todos os valores de atributo aqui na coluna um. Podemos usar a interface do usuário para extraí-los.

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Então, clique com o botão direito do mouse no cabeçalho e, abaixo, selecione Adicionar como nova consulta .

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Obtemos esta lista e isso é uma boa notícia porque queremos substituir aquela lista codificada que vimos anteriormente pela dinâmica. Tudo o que precisamos fazer é arrumar os valores.

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Vamos começar removendo esses nulos. Portanto, dentro da barra de fórmulas, adicionaremos um List.RemoveNulls . Como você pode ver agora, todos os itens são repetidos e isso ocorre por causa dos pares de valores. Está listado uma vez para as horas.

Não dinamizar várias colunas dinamicamente no LuckyTemplates

E, novamente, para os contatos, para remover essas duplicatas, podemos adicionar um List.Distinct . Agora criamos essa lógica e tudo o que precisamos fazer é copiá-la e colá-la de volta em nossa consulta de amostra.

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Na Consulta de amostra , abra o Editor avançado e crie um novo nome de variável. Vamos chamá-lo de AttributeList . Em seguida, colamos o código e colocamos uma vírgula.

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Agora vamos voltar para a nossa etapa Custom. Dentro de List.Zip, podemos substituir essa primeira lista pelo nome da nossa variável (AttributeList).

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Agora vamos dar uma olhada mais de perto na segunda lista. Sabemos que faz referência a nomes de coluna, e cada um desses nomes de coluna começa com o mesmo atributo que já temos nessa lista seguido por um espaço e um texto “horas”.

Só precisamos adicionar um sufixo a cada item. Então, vamos voltar uma etapa e adicionar uma coluna personalizada para criar alguma lógica.

Não dinamizar várias colunas dinamicamente: adicionando lógica de coluna personalizada

É apenas uma coluna temporária, então não precisamos dar um nome apropriado a ela. Vamos removê-lo assim que terminarmos.

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Para alterar os valores em uma lista, podemos usar a função List.Transform . Precisamos transformar os valores em nosso AttributeList , então vou colar isso.

Aqui nos cabeçalhos, vemos que os valores de texto começam com uma letra maiúscula e o resto é minúsculo. Nosso atributo contém apenas uma palavra em maiúscula, então temos que transformar esse valor de texto também. E podemos usar o sublinhado para acessar cada item da lista e adicionaremos esse sufixo.

Com isso, obtemos um valor de lista em nossa coluna. Não importa qual você selecione, mas apenas clique ao lado no espaço em branco em qualquer um deles aqui.

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Abaixo da página, vemos uma prévia dessa lista que criamos. Então você vê que temos esses cabeçalhos de coluna agora com maiúsculas e minúsculas apropriadas para que correspondam aos cabeçalhos de coluna que vemos aqui com esta lista.

Agora temos os meios para identificar os campos do nosso registro que queremos acessar. Então, vamos abrir nossa caixa de diálogo de coluna personalizada novamente e adicionar Record.SelectFields . Ele quer um registro como um registro, então podemos usar esse sublinhado para acessar o registro atual em que estamos. E então fornecemos uma lista com todos os nomes de campo, então adicione um parêntese de fechamento e pressione OK .

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Então não temos mais uma lista, mas agora temos um registro. Vamos clicar ao lado no espaço em branco novamente para visualizar o conteúdo desse registro. Aqui vemos que ele lista os nomes dos campos de registro e os valores dos campos de registro.

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Mas estamos interessados ​​apenas nos valores do campo de registro, então precisamos extraí-los. Vamos voltar para nossa caixa de diálogo de coluna personalizada e adicionar Record.FieldsValues ​​.

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Agora temos uma lista novamente e não mais um registro. Clicamos ao lado no espaço em branco novamente e você vê que agora temos uma lista com apenas esses valores. Parece bom.

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Vamos copiar a lógica completa que criamos, exceto pelo último parêntese de fechamento. E agora podemos remover nossa coluna temporária porque não precisamos mais dela.

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Em nossa barra de fórmulas, selecionamos nossa segunda lista e a substituímos por nossa lógica.

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Para criar uma lista com os valores dos campos de registro dos contatos, basta alterar o sufixo. Assim, podemos selecionar a última lista também e colar nossa lógica.

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Então, em vez de hours , vamos mudar isso para contacts .

Não dinamizar várias colunas dinamicamente no LuckyTemplates

Sem erros e parece bom. Esta é agora uma solução dinâmica para não dinamizar várias colunas.

Não dinamizar várias colunas dinamicamente no LuckyTemplates


Colunas não dinâmicas do LuckyTemplates – Tutorial do Power Query
Como não dinamizar colunas no LuckyTemplates
Fundamentos não dinâmicos e dinâmicos do LuckyTemplates – Revisão do Editor de consultas

Conclusão

É assim que você não dinamiza várias colunas dinamicamente no usando List.Zip.

Se um novo atributo entrar, ele será selecionado automaticamente pelo AttributeList. E quando um item não existir mais, ele não estará presente naquela lista.

Espero que você tenha gostado deste. Assista ao vídeo completo abaixo para obter mais detalhes sobre este tutorial e confira os links abaixo para obter mais conteúdo sobre várias colunas não dinâmicas no LuckyTemplates.

Tudo de bom

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.