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.
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.
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.
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.
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.
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.
Então, clique com o botão direito do mouse no cabeçalho e, abaixo, selecione Adicionar como nova consulta .
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.
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.
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.
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.
Agora vamos voltar para a nossa etapa Custom. Dentro de List.Zip, podemos substituir essa primeira lista pelo nome da nossa variável (AttributeList).
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.
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.
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 .
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.
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 .
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.
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.
Em nossa barra de fórmulas, selecionamos nossa segunda lista e a substituímos por nossa lógica.
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.
Então, em vez de hours , vamos mudar isso para contacts .
Sem erros e parece bom. Esta é agora uma solução dinâmica para não dinamizar várias colunas.
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
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.
Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates
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.
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.
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.
Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.
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
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.
Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.