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.
Recuperar valores de períodos anteriores no LuckyTemplates é uma tarefa comum, mas recuperar valores de semanas anteriores requer atenção especial. Neste tutorial, discutirei dois métodos simples e versáteis para obter os valores da semana anterior do LuckyTemplates que podem ser adições úteis à sua caixa de ferramentas – um usando DAX e outro usando o Power Query. Você pode assistir ao vídeo completo deste tutorial na parte inferior deste blog.
Este tutorial veio de uma pergunta que recebi de um membro do LuckyTemplates. O membro perguntou qual era a maneira mais fácil de determinar o número da semana anterior. Esta é uma pergunta comum que encontro. Parece bastante simples, mas quanto mais você se aprofunda, mais percebe que há muito o que processar.
Índice
Valores da semana anterior no LuckyTemplates: o problema
Se olharmos para o número da semana, temos 52 semanas; multiplique isso por sete dias (uma semana) e chegará a 364. Então, em cada ano, há um dia a mais, e nos anos bissextos, há dois dias a mais. Esses um ou dois dias a mais acabam causando muitos problemas.
Vamos criar uma medida a partir da nossa tabela Dates. Vamos chamá-lo de MAX Week # (número). Nesta análise, estamos usando a tabela LuckyTemplates Extended Dates; isso tem ISO Weeknumber , o que é bastante útil. Agora, vamos pegar o MAX do ISO Weeknumber.
Agora, vamos pegar uma tabela e descartar Year , bem como nossa MAX Week # . Esse conjunto de dados tem 10 anos de dados e vemos que os dois primeiros anos têm 52 semanas. Então, temos dois anos com 53 semanas, três anos com 52 semanas e mais dois anos com 53 e um com 52.
Não há realmente um padrão discernível aqui. Não é fácil voltar e prever que em um ano você terá 52 semanas e no outro terá 53.
A próxima coisa que você pode pensar se estiver familiarizado com as funções de inteligência de tempo DAX é usar a função DATEADD , que muda um intervalo de datas para um determinado período. Ele faz isso muito bem para Dia, Mês, Trimestre e Ano, mas não inclui Semana, então temos que encontrar uma maneira diferente de fazer isso.
Na tabela de datas estendidas do LuckyTemplates que estamos usando, Melissa (uma das especialistas do LuckyTemplates) incluiu uma função chamada OFFSETS . Vamos nos aprofundar nessa função porque ela é absolutamente essencial para resolver isso de uma perspectiva DAX.
Olhando para o período atual (por exemplo, 20 de janeiro, que é o período de criação deste tutorial), o que vemos é que o deslocamento é igual a zero . A maneira como os deslocamentos funcionam é que, para o período atual, o deslocamento é zero.
A semana anterior à semana atual é negativa, duas semanas antes da semana atual é negativa dois e assim por diante. E então, avança a partir dos números positivos; na próxima semana ganha um, duas semanas ganha dois, etc.
Cada vez que você abre o relatório relativo à data de hoje, ele calcula os deslocamentos. Isso é incrivelmente poderoso e agora mostrarei como é fácil resolver alguns problemas difíceis como este número da semana anterior do LuckyTemplates quando você estiver usando compensações.
Obtendo o LuckyTemplates na semana anterior usando DAX
Vamos criar uma nova medida e chamá-la de Previous Wk # . Vamos começar com uma variável ( SelWkOffset ), onde faremos apenas um SELECTEDVALUE do WeekOffset . Então, na linha atual, ele vai desenhar esse WeekOffset e colocá-lo em nossa variável.
A próxima variável será Result . Este é o resultado final que queremos e vamos usar CALCULATE porque vamos mudar o contexto.
Então, queremos o MAX ISO Weeknumber e isso estará sujeito a essas condições de filtro. Portanto, removeremos todos os filtros da tabela Dates e usaremos ALL aqui. Se tivéssemos um data slicer, poderíamos usar ALLSELECTED , mas por enquanto não, então vamos apenas usar ALL para remover o filtro dessa tabela Dates.
E então, diremos que WeekOffset será igual ao nosso SelWkOffset menos um . É aqui que os OFFSETS se tornam tão poderosos. Você não pode usar Weeknumber menos um porque ele é zerado a cada ano. Mas como ALL OFFSETS é sequencial, você pode tratá-lo como trataria encontrar o ano anterior e apenas subtrair um para cada ano anterior. E assim, este deslocamento funciona da mesma forma que um número consecutivo.
Agora podemos pegar e fechar essa condição de filtro, fechar CALCULATE e apenas RETURN nosso Result .
Agora, vamos ver como essa medida funciona. Na tabela abaixo, podemos ver que está fazendo exatamente o que esperávamos. Na semana 52 para o período um no ano seguinte, a semana anterior é 52. E então, retrocede um a cada período e assim por diante.
Agora, o que você faz nos casos em que não tem um deslocamento?
Digamos que você esteja trabalhando com uma tabela de data corporativa que vem de seu data warehouse e não inclui esses deslocamentos. Há uma técnica que quero mostrar a você no Power Query. A primeira vez que o vi foi em um blog de Imke Feldmann.
Essa abordagem funciona muito bem para qualquer situação em que você pode ordenar a tabela em ordem crescente e não precisa ter um deslocamento. Não precisa ter nem mesmo um campo de data. Poderia ser um tipo de mesa totalmente diferente. Contanto que seja classificável em ordem crescente, você pode usar essa técnica.
Então, vamos fazer referência a esta tabela Dates Raw e vamos chamá-la de Dates . Em seguida, certificamo-nos de classificar isso em ordem crescente .
Em seguida, queremos agrupar por semana . A razão para isso é que vamos adicionar duas colunas de índice. Quando adicionamos essas colunas de índice, queremos que elas estejam na granularidade da semana , não na granularidade do dia.
Em seguida, queremos adicionar essas colunas de índice. O importante aqui é que o primeiro índice que adicionaremos será um índice baseado em 0. E então, vamos adicionar um segundo índice que é um índice baseado em 1.
Em seguida, vamos pegar esta coluna e mesclar uma tabela nela mesma. Vamos mesclá-lo com base nas duas colunas de índice diferentes. Isso vai nos dar uma mudança nas linhas.
Portanto, se pegarmos isso e mesclarmos o primeiro ao índice baseado em 0 no índice baseado em 1, ele corresponderá a 521 em 522 linhas. Isso é exatamente o que esperávamos porque a segunda tabela não vai pegar o índice zero, pois começa em um.
Depois disso, vamos expandir isso corretamente, apenas usando o ISO Weeknumber.
Isso nos dá o número da semana anterior. E agora, vamos apenas expandir nosso agrupamento original e retirar o campo WeekEnding e o número da semana ISO original para que não dupliquemos.
Se colocarmos isso em uma tabela, você verá que são exatamente os mesmos resultados do uso da técnica DAX. Está funcionando exatamente como nossa medida DAX, mas, neste caso, não precisamos usar os deslocamentos.
Conclusão
Estas são duas maneiras muito versáteis de encontrar o número da semana anterior. Na primeira técnica, você pode ver o poder dos offsets em fazer o que de outra forma seria um cálculo difícil, bastante simples. A segunda técnica funciona exatamente como nossa medida DAX, mas, neste caso, não precisamos usar os deslocamentos.
Espero que você ache este tutorial útil. Você pode assistir ao tutorial em vídeo completo abaixo e conferir os links relacionados para obter mais conteúdo semelhante.
Saúde!
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.