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.
Este tutorial discutirá sobre como escolher ou filtrar uma data específica em seus relatórios de dados do LuckyTemplates . O material usado neste tutorial vem do . Você aprenderá como resolver o problema e entender os métodos usados. Você pode assistir ao vídeo completo deste tutorial na parte inferior deste blog.
Índice
Compreendendo o relatório de dados no LuckyTemplates
Este é o relatório de dados de amostra que será usado. Ele consiste em um visual de tabela e duas segmentações.
O objetivo é ter uma seleção de data na coluna Data na segmentação de dados. Isso significa que, uma vez selecionada uma data no slicer, a visualização da tabela mostrará os dias anteriores com um intervalo de 7 dias. Neste exemplo, os dados selecionados na segmentação de data são 12 de maio de 2007.
A tabela deve mostrar o anterior com uma diferença de 7 dias entre as datas.
Você também precisa criar um parâmetro what if para mostrar dinamicamente o número de datas com base na seleção. Se você selecionar 3 , o visual da tabela deverá mostrar apenas 3 datas.
Recriando a tabela e as visualizações
O primeiro passo é criar um parâmetro what if . Dentro da área de trabalho do LuckyTemplates, vá para a guia Modelagem e selecione Novo parâmetro .
Adicione um nome ao parâmetro e defina o Tipo de dados como Número inteiro . Em seguida, defina os valores mínimo, máximo, de incremento e padrão conforme a imagem abaixo. Adicione a segmentação de dados à página marcando a caixa.
Depois de pressionar OK, um slicer será gerado. Converta a segmentação de dados em uma lista clicando no botão suspenso e selecionando Lista.
A próxima coisa a fazer é criar uma tabela de datas duplicada que será usada como uma tabela de datas desconectada. Vá para o editor de consulta de energia e duplique Dates .
Em seguida, renomeie o DisDate duplicado e clique em Fechar e Aplicar.
Carregando as tabelas de datas e segmentações de dados no LuckyTemplates
Depois que a tabela duplicada for carregada no modelo do LuckyTemplates, crie uma segmentação de dados com a coluna de data da tabela de data desconectada. Abra a tabela DisDate e arraste Date para a tela.
Em seguida, transforme a visualização em uma segmentação de dados.
Depois disso, altere o formato do slicer para List . A visualização ficará assim.
Em seguida, duplique o slicer e altere o campo de dados com a coluna Date da tabela Dates.
Selecionar uma data na segmentação Datas limitará o número de linhas visíveis da tabela Vendas na matriz. Se você selecionar 14 de março de 2005, a matriz mostrará apenas essa data.
O resultado e a medida não funcionarão se você usar esta configuração. O motivo é que antes mesmo de a medida começar a funcionar, o acesso da matriz já foi filtrado. Para esses valores filtrados, você não poderá gerar as datas com intervalos.
Criando medidas para as segmentações de seleção
Você precisa criar uma configuração de datas que não filtre a matriz diretamente quando uma seleção é colocada sobre uma segmentação de dados. A filtragem da matriz deve vir através do código DAX e não diretamente dos slicers. Portanto, se você selecionar uma data na segmentação DisDate, nenhuma alteração ocorrerá na matriz.
Isso acontece porque a tabela DisDate não tem relação com a tabela Dates. Por isso a mesa desconectada é essencial.
Exclua o slicer com a tabela Dates e crie a primeira medida. A medida recuperará o valor selecionado na segmentação Datas a serem exibidas. A primeira variável que você precisa criar é ValuesToShow . Em seguida, compare-o com o valor Dates To Show e insira RETURN para retornar os valores selecionados.
Arraste essa medida para a matriz. Se você selecionar 6 no slicer Dates To Show, a coluna Measure na matriz também produzirá 6.
Em seguida, crie outra variável que recuperará a data desconectada selecionada no slicer.
Uma vez feito isso, você verá o valor selecionado no slicer DisDate mostrado na coluna Measure.
Criando uma tabela calculada
Crie uma lista de datas com intervalos de 7 dias a partir da data selecionada no slicer. Em seguida, certifique-se de que a matriz gerará o número de dias com base na seleção do slicer Dates To Show. Para fazer isso, primeiro você precisa criar uma tabela calculada .
A tabela calculada ajuda a visualizar como as datas são geradas dentro do código DAX. Vá para a Visualização de dados e clique em Nova tabela.
Insira a variável SelectedDate e compare-a com a função DATE . Em seguida, insira uma data entre parênteses. Em seguida, crie outra variável que especificará o número de datas que você deseja mostrar na matriz. Insira DatesToShow e iguale-o ao número de datas.
Depois disso, crie outra variável que irá gerar uma lista de datas com intervalos de 7 dias. Insira DatesList e use a função GENERATESERIES . é uma função que gera uma lista de números passando vários argumentos.
Para o primeiro argumento, insira SelectedDate – (DatesToShow * 7) como o valor inicial. Em seguida, insira SelectedDate como o valor final. Para o último argumento, insira 7 para o valor de incremento ou o intervalo entre as datas. Feito isso, feche a função e insira RETURN e DateList .
Você pode então ver uma tabela contendo sete valores começando em 5 de maio e voltando com incrementos de sete.
Agora, você notará que ele criou muitas datas do que você precisa. No relatório de amostra original, a última data mostrada com as mesmas seleções de datas a serem exibidas e datas era 31 de março.
Para corrigir isso, você pode alterar o valor da variável DatesToShow para 5 ou subtrair 1 de 6. Neste exemplo, 1 é subtraído de 6.
Depois disso, você verá que os valores terminam no dia 31 de março.
Injetando Datas no Contexto do Filtro
Em seguida, você precisa usar e injetar essas datas em um contexto de filtro de data. Você também precisa calcular o valor das vendas no contexto do filtro. Então, copie a sintaxe GENERATESERIES e volte para sua medida.
Na medida, adicione uma nova variável e insira DatesToShow . Em seguida, iguale essa variável à sintaxe GENERATESERIES . Altere as variáveis dentro da sintaxe de SelectedDate para DisSelectedDate e DatesToShow para ValuesToShow .
Por fim, crie uma variável para o resultado. Iguale-o à função CALCULATE sobre Total Sales e DatesToShow para injetar todas as datas recebidas da sintaxe GENERATESERIES no contexto do filtro. Feito isso, insira Result na função RETURN .
Agora, você verá que a matriz não mostrará as datas que o código DAX está solicitando. Se você trouxer a medida Total Sales na matriz, verá que o código está retornando o próprio valor Sales.
O problema da medida é que a data que foi criada na sintaxe GENERATESERIES possui uma linhagem de dados com a tabela de datas desconectada. Isso significa que a tabela Data não está conectada à tabela Vendas. É por isso que quando a lista de datas foi aplicada no contexto do filtro, não incluiu a tabela Vendas.
Você precisa usar a função para criar relacionamentos virtuais e aplicar o contexto do filtro.
Usando TRATAS para corrigir a data na matriz do LuckyTemplates
Você precisa tratar os valores recebidos da sintaxe GENERATESERIES como se fossem parte da tabela Date original. Isso é basicamente construir uma linhagem com a coluna Date da tabela Date que está no modelo de dados.
Portanto, na variável Result, insira TREATAS após a tabela Total Sales e forneça os argumentos. Para o primeiro argumento, forneça a coluna ou tabela que não possui o relacionamento. Nesse caso, a coluna DatesToShow é usada.
Para o segundo argumento, forneça a coluna para a qual deseja mapear a linhagem da coluna no primeiro argumento. Neste exemplo, a coluna Date da tabela Dates é usada.
Porém, mesmo com as correções no código, a coluna Medida da matriz ainda não apresentará os valores corretos ao utilizar o slicer. Você também pode observar que os valores dentro da coluna estão se repetindo.
O problema está na forma como o código foi escrito. TREATAS aplica todos os valores no contexto do filtro e substitui o contexto do filtro existente na data selecionada por todos os valores que foram recuperados da função GENERATESERIES .
Usando a função KEEPFILTERS sobre TREATAS
Para garantir que o filtro seja injetado no filtro sem substituir o contexto de filtro existente, você precisa usar a função KEEPFILTERS . altera a semântica de filtragem de CALCULATE .
Insira KEEPFILTERS antes da função TRATAS e confirme a medida.
Agora você verá que os valores dentro da coluna Medida não estão se repetindo.
Se você expandir os meses de maio e abril, verá que os valores na coluna Medida são iguais aos valores da coluna Total de vendas.
Remova a medida Total Sales na matriz e selecione um número na segmentação Dates To Show. Você verá o número equivalente de datas sendo mostrado na matriz.
Corrigindo problemas de data ausente na matriz do LuckyTemplates
Outro problema com este relatório é que quando você seleciona 8 na segmentação DatesToShow , a matriz não muda.
Se você selecionar 9 na segmentação de dados, a matriz mostrará apenas 8 datas. Você também notará que 17 de março está faltando na lista de datas.
O motivo é que, em alguns dias da tabela Data, não há transações correspondentes na tabela Vendas. Portanto, a medida retorna um espaço em branco para essas datas. Como está retornando em branco, o código executado atrás da matriz remove as linhas em branco do resultado.
O LuckyTemplates usa o resultado retornado para preencher a matriz. Portanto, como alguns dias estão retornando em branco, você não pode ver as vendas e as entradas desses dias na matriz.
Se você quiser mostrar algo para os dias sem vendas em seus dados, volte para a medida e remova a sintaxe CALCULATE .
Usando o DAX para resolver datas ausentes no LuckyTemplates
Crie uma linhagem de dados escrevendo TREATAS sobre as colunas DatesToShow e Date da tabela Dates . Em seguida, verifique se todas as datas retornadas pela função TREATAS estão incluídas no contexto do filtro.
A partir daí, divida a execução por várias variáveis. Altere o nome da variável de Result para CreateDataLineage para mostrar que ela armazena o resultado de TREATAS .
Em seguida, crie outra variável que conterá todas as datas visíveis no contexto do filtro provenientes da matriz. Insira VisibleDate como o nome da variável e use na coluna Date .
A próxima coisa a fazer é criar uma coluna sobre o resultado da função TREATAS que conteria o valor de Vendas. Escreva DatesWithSales como o nome da variável e use sobre a variável CreateDataLineage .
Dentro da função, crie uma nova coluna e nomeie-a como Sales Amount com a medida Total Sales no contexto da linha para iniciar a transição de contexto.
Depois disso, crie uma variável que verifique se todas as datas que estão armazenadas na variável DatesWithSales estão incluídas no contexto do filtro. Insira IsDateInFilterContext como o nome da variável e use a função .
A partir daí, escreva DatesWithSales como o primeiro argumento da função. Em seguida, insira Dates[Date] IN VisibleDate como o segundo argumento para verificar se a data contida na tabela DatesWithSales está incluída na variável VisibleDate .
A última variável que você precisa criar é Result . Use a função sobre a variável IsDateInFilterContext . Escreva [@Sales Amount] + 0 para incluir os dias que não foram incluídos anteriormente.
Depois de tudo isso, você verá a data que falta, 17 de março, na matriz.
Usando +0 na medida original
As etapas anteriores mostraram como criar uma medida para incluir todas as datas que não possuem transações na tabela Fatos. Agora, se você usar o + 0 na medida original que criou, os valores na coluna Medida serão todos 0.
O motivo é que a variável Resultado contém um valor em branco ou Vendas. Portanto, se você adicionar 0, estará substituindo o espaço em branco por 0. Lembre-se de que as colunas resumidas removem as linhas em branco do conjunto de dados. Devolva-os ao LuckyTemplates para que possam mostrar apenas linhas limitadas e não os espaços em branco.
Mas como 0 é adicionado, a coluna de resumo é forçada a manter as linhas. Em seguida, retorna uma tabela que contém todas as datas existentes na tabela Dates e mostra zero sempre que aplicável ou quando está em branco.
Esta é a razão pela qual você precisa reescrever a medida de forma que você só precise adicionar 0 às datas visíveis no contexto do filtro e incluídas na variável DatesToShow .
Conectores do Power Automate: Número, Texto e Data Hora
Tabela de Data Estendida Power Query Função M
Power Query LuckyTemplates | Criar novos registros com base em campos de data
Conclusão
Para criar um relatório de dados que permite selecionar uma data específica em uma matriz do LuckyTemplates , você precisa usar tabelas calculadas e funções DAX . As funções e medidas DAX precisam ser escritas de forma que possam obter resultados facilmente.
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.