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.
Mostrarei como manter seu conjunto de dados de prática atualizado toda vez que você fizer uma atualização . Você pode assistir ao vídeo completo deste tutorial na parte inferior deste blog.
Se você realmente quer melhorar suas habilidades DAX, o jeito é usar e colocar em prática. E para fazer isso, você precisaria de um conjunto de dados de prática que o ajudasse a visualizar e trabalhar em possíveis cenários da vida real.
O problema com conjuntos de dados práticos é que os dados geralmente são estáticos . Para praticar com eficiência, você precisa dar a impressão de que os dados estão ativos.
Índice
Configurando um caminho de arquivo para o conjunto de dados de prática
Para meus dados de amostra, tenho um arquivo Excel contendo dados de vendas de 2014, 2015 e 2016.
Estes são os dados que preciso atualizar.
A localização do documento pode ser encontrada aqui na minha barra de ferramentas de acesso rápido.
Preciso disso para configurar um parâmetro para o caminho do meu arquivo. Vou copiar a localização do documento.
Há um ponto de acesso à barra de ferramentas de acesso rápido no lado direito.
Assim que pressiono isso, recebo esta tela.
Então, irei para Todos os Comandos e, em seguida, escolherei Localização do Documento . Adicione isso à barra de ferramentas de acesso rápido e pressione OK.
Agora, entrarei no Power Query para criar o parâmetro que conterá o caminho do meu arquivo. Esta etapa é importante porque permite que todas as consultas dentro do modelo sejam restauradas caso outro usuário altere a localização do arquivo.
Então vou criar um novo parâmetro .
Vou chamar isso de FileLocation .
Em tipo, vou selecionar Text . E para Current Value , colarei no local do documento que copiei anteriormente.
Vou criar uma nova consulta.
Em seguida, escolho os dados de amostra que usarei como meu conjunto de dados de prática.
Várias tabelas diferentes aparecerão aqui, pois tenho dados de vendas de 2014, 2015 e 2016. Só preciso escolher a primeira, que é Sales_2014 .
Agora que escolhi os dados Sales_2014, é hora de alterar esse local de arquivo codificado para um local de arquivo dinâmico .
Entrarei no Editor Avançado e selecionarei tudo o que estiver relacionado ao local do arquivo .
Então, vou mudar isso para o parâmetro FileLocation que criei anteriormente.
Em seguida, pressionarei Concluído para bloquear essas alterações na consulta Sales_2014.
Criando a pasta de preparação de dados
Observando as etapas aplicadas para a consulta Sales_2014, clicarei na etapa de navegação . Isso me mostra que ele faz referência à etapa Source .
Ele também faz referência a Sales_2014 , que é mostrado como uma Tabela . Também mostra que está extraindo dados da coluna Dados.
Agora, deixe-me ver a próxima etapa da Fonte .
A etapa Source me mostra tudo o que reside no meu arquivo do Excel . Se eu verificar essas coordenadas, vejo Sales_2014 e, em Kind, aparece Table .
Quando procuro a coluna de dados, ela mostra o objeto Tabela que foi extraído.
Assim, posso duplicar esta consulta para obter os dados de 2015 . Para fazer isso, só preciso clicar com o botão direito do mouse em Sales_2014 e escolher Duplicate.
Então, voltarei para a etapa de Navegação.
Vou mudar esse ano de 2014 para 2015.
Também vou renomear isso aqui em Propriedades. Vou chamá-lo de Sales_2015.
Desta vez, duplicarei Sales_2015.
Então voltarei para a etapa de Navegação e mudarei o ano para 2016.
Agora tenho meus dados de vendas completos. Mas essas consultas não devem ser carregadas em meu modelo . Eu só preciso clicar com o botão direito do mouse em cada um deles e desmarcar Ativar carga .
Agora, vou selecionar todas as consultas e colocá-las em uma única pasta para deixar as coisas mais organizadas.
Vou chamar essa pasta de Data Prep .
Obtendo a compensação do dia
Os dados de amostra aqui em Data Prep serão estáticos . Isso significa que a 1ª e a última data nunca serão alteradas .
Vou entrar em Sales_2016 e classificar a coluna Order Date em ordem decrescente para obter a última data desse conjunto de dados .
A última data neste conjunto de dados é 31 de dezembro de 2016 .
Agora, criarei uma nova consulta.
Em seguida, verificarei qual é o Day Offset da última data no conjunto de dados até hoje. Isso significa que preciso descobrir que dia é hoje. Para isso, utilizarei a função DateTime.FixedLocalNow . Isso me dará a data e a hora da máquina em que estou trabalhando.
Mas eu realmente não preciso da parte do tempo aqui. Eu só preciso da parte da data desse valor.
Então, vou extrair a data usando Date.From .
A partir desse valor, subtrairei a última data em meu conjunto de dados . Como os dados são estáticos, posso usar o valor de data intrínseco . Então essa é a #data e a referência 31 de dezembro de 2016.
Agora, preciso extrair o número dessa diferença . Portanto, adicionarei Number.From e fecharei com um parêntese. Em seguida, pressione entrar.
Vou renomear isso como DayOffset .
Configurando intervalos de datas dinâmicos
Também preciso de intervalos de datas dinâmicos para minha tabela de datas. Começarei clicando com o botão direito do mouse na pasta Data Prep e criando uma nova consulta em branco.
Em seguida, trabalharei na Data de início da minha tabela Data.
Eu sempre quero o primeiro dia do ano como minha data de início. Então vou colocar o sinal de igual e usar a função Date.StartOfYear .
Como preciso dar um valor a isso, vou compensar isso usando Date.AddDays .
Em seguida, usarei o valor de data intrínseco novamente e usarei a 1ª data em meu conjunto de dados , que é 1º de junho de 2014.
Também preciso do número de dias que calculei em meu DayOffset , então vou adicioná-lo.
Assim que pressiono enter, ele me dá 1º de janeiro de 2017 . Esta será a primeira data na minha tabela de datas.
Vou renomeá-lo para fxStartDate .
Agora, posso configurar minha data de término. Vou copiar esta sintaxe que usei na minha data de início.
Vou criar uma nova consulta em branco.
Em seguida, renomeie-o para fxEndDate .
Então vou colar a sintaxe da minha data de início .
Em vez de StartOfYear , mudarei para EndOfYear.
Também vou usar a última data do meu conjunto de dados , que é 31 de dezembro .
Quando pressiono enter, retorna 31 de dezembro de 2020 .
Criando uma única tabela de vendas
Vou combinar as 3 tabelas em uma única tabela Sales . Para fazer isso, vou criar uma nova consulta.
Vou chamar isso de minha tabela de vendas .
Em seguida, combinarei Sales_2014, Sales_2015 e Sales_2016 em uma única tabela.
Sei que você pode fazer isso pela faixa de opções, mas também há a opção de fazer diretamente na barra de fórmulas. Vou escolher essa 2ª opção.
Vou começar com Table.Combine .
Table.Combine requer uma lista de tabelas . Então adicionarei um inicializador de lista , que são aqueles colchetes , então vou nomear as 3 consultas . Pressione enter depois disso.
Transformando a coluna de data do pedido
Agora que tenho a maioria dos elementos de que preciso, vou gerar uma parte fundamental da sintaxe que usarei mais tarde para completar meu conjunto de dados de prática dinâmica.
Começarei selecionando duas colunas numéricas. Posso usar o Índice de região de entrega e o Índice de descrição do produto . Do seu lado, você pode pressionar Shift ou Ctrl para selecionar ambas as colunas.
Na guia Transformar , selecionarei Valor absoluto .
Se eu olhar para a barra de fórmulas, ela mostrará a função Table.TransformColumns . Esta é a chave para a solução final.
A função recebe uma lista de listas de transformação . Como você pode ver, existem 2 listas aqui aninhadas uma dentro da outra.
Ele faz referência ao nome da coluna como texto. É por isso que o índice de região de entrega foi referenciado aqui no 1º conjunto.
Em seguida, adiciona uma etapa de transformação .
Ele faz o mesmo em uma lista separada para a coluna Índice de descrição do produto .
Agora, irei para o Editor Avançado .
Não quero valores absolutos . Então, a primeira coisa que vou fazer é compensar minha data . Vou criar uma função chamada fxUpdateDate para fazer isso. Ele usará a data atual, que digitarei como cDate .
Então, vou usar a função Date.AddDays novamente, que também usa o cDate . Também usarei o DayOffset que criei anteriormente.
Tudo o que o fxUpdateDate faz é pegar a data. Portanto, se eu passar isso para a função Table.TransformColumns , ela começará a verificar cada data registrada.
Então, se eu estiver trabalhando na 1ª linha aqui, por exemplo, vai considerar 1º de junho de 2014 como cDate.
E toda vez que a função for chamada, ela adicionará o DayOffset que eu criei.
Agora, a etapa Table.Transform aparece em Calculated Absolute Value .
Vou renomeá-lo primeiro e chamá-lo de UpdateOrderDate.
Esta etapa UpdateOrderDate envolve minha Table.TransformColumns que é igual a Source.
A tabela inicial listada é o Índice de Região de Entrega . Mas não há necessidade de transformar isso. Então, vou alterar a primeira coluna referenciada na coluna OrderDate .
Também diz aqui que a transformação será em valores absolutos.
Como não quero isso, vou mudar isso para fxUpdateDate .
O tipo também não será um valor absoluto, então também preciso alterar essa parte.
Vou mudar isso para um encontro .
Eu só preciso de uma transformação, então vou deletar a 2ª lista junto com a etapa de transformação que vem com esse conjunto…
…então é apenas uma transformação para a coluna OrderDate.
Como renomeei a etapa para Valor absoluto calculado, também preciso alterar isso na minha instrução.
Agora mostra UpdateOrderDate também.
Portanto, a coluna OrderDate agora chamará essa função para cada registro em Table.TransformColumns .
Olhando para a coluna Order Date, posso ver que isso foi atualizado.
E se eu classificar isso em ordem decrescente, mostra 7 de julho de 2020 como a data atual.
Então, vou remover essa etapa de classificação porque realmente não preciso disso. Só fiz isso para verificar se a data atual também havia sido atualizada.
Aplicando inteligência de tempo usando código M
Meu modelo é todo sobre dados de vendas . Como vou fazer alguma inteligência temporal, precisaria de uma tabela Date .
Então, irei ao . No M-code Showcase , vou para o tópico Extended Date Table .
Role até o topo da página e copie o código inteiro .
Voltando ao meu modelo, vou criar uma nova consulta em branco e colar esse código M em . Pressione Concluído.
Vou renomear essa consulta para fxCalendar .
Para meus parâmetros, usarei 1º de janeiro para StartDate e 31 de janeiro para EndDate . Em seguida, pressione Invocar.
Assim que a tabela aparecer, vou renomeá-la como Dates .
Lembre-se de que já criei as datas de início e término observando a 1ª data no conjunto de dados de amostra e compensando isso pelo meu DayOffset. Portanto, o fxStartDate aqui aparece como 1º de janeiro de 2017 .
Quanto ao fxEndDate, ele retorna 31 de dezembro de 2020 .
Posso voltar para a tabela Dates e atualizar a etapa Source lá também.
Ele lista os parâmetros na ordem em que foram chamados. O primeiro parâmetro deve mostrar a data de início .
Vou mudar isso para fxStartDate .
Eu também vou substituir o segundo parâmetro.
Vou colocar o fxEndDate .
Assim que pressiono Enter, a transformação está completa. Agora tenho um conjunto de dados de prática totalmente atualizado que permanecerá sempre atual.
Vou apenas clicar em Fechar e Aplicar para bloquear todas essas etapas.
Criando uma tabela de consulta de data dinâmica no LuckyTemplates: um tutorial do editor de consultas
Configurando uma data inicial e uma data final dinâmicas para tabelas de datas do Power Query
usando a função de deslocamento em tabelas de datas estendidas
Conclusão
Como mencionei anteriormente, ter seu próprio conjunto de dados de prática dinâmico definitivamente aumentará o nível do seu jogo quando se trata de LuckyTemplates. Ele permite que você pratique suas habilidades e conhecimentos enquanto finge que está trabalhando em um cenário da vida real.
Se você quiser saber mais sobre como tornar suas datas de início e término dinâmicas, especialmente para um conjunto de dados de prática que está usando, confira o fórum LuckyTemplates. Há muitas conversas sobre isso e outros tópicos relevantes. Você pode até encontrar outras abordagens que funcionariam para você.
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.