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.
A criação de um calendário de feriados do LuckyTemplates é crucial para muitos cálculos de inteligência de tempo. Neste tutorial, mostrarei como calcular datas específicas de feriados usando medidas DAX. Você pode assistir ao vídeo completo deste tutorial na parte inferior deste blog.
Este exemplo veio de uma das iniciativas chamada Problema da Semana, onde cada mês pegamos um DAX do mundo real ou um problema de Power Query e o dividimos em detalhes.
Eu usei uma técnica chamada Rubber Duck Debugging. Normalmente é usado para depuração, mas acho que também é muito valioso para criar a estrutura inicial que você usará para resolver um problema complexo como no LuckyTemplates.
É basicamente usar um pato de borracha ou uma pessoa com quem você conversa e diz em voz alta a solução que está imaginando e desenvolve um plano de como vai atacar o problema.
O mero ato de expressar que muitas vezes ajuda você a resolver o problema. Em alguns casos, em uma situação de depuração, isso faz você perceber o que está fazendo, se faz sentido e ajuda a encontrar uma maneira de corrigi-lo abordando o problema.
Abaixo está o problema DAX do mundo real para este desafio específico. Temos aqui uma tabela com 10 feriados com mês e dia. Alguns dos dias são dias específicos e alguns deles são relativos. Precisamos inventar a Data do Feriado e as medidas do Comemorado.
Para fazer isso, precisamos analisar o campo Dia em dois componentes. A primeira análise é a ocorrência (terceira, última, primeira, segunda) e a segunda é o dia (segunda, quinta). Essas são duas informações críticas que precisamos separar.
Índice
Calculando datas específicas no calendário de feriados do LuckyTemplates
Normalmente, eu faria isso no Power Query apenas por meio de uma divisão por delimitadores, mas como estamos fazendo com DAX, teremos que fazer de uma maneira diferente. (Observe que não temos permissão para usar o Power Query neste desafio.)
Precisamos calcular as datas mínima e máxima para o ano, mês e nome do dia especificados. Nesse caso, por exemplo, podemos dizer para 2027, janeiro e terceira segunda-feira. Depois de obter esse dia mínimo para um determinado mês, podemos adicionar sete dias a ele para chegar à segunda segunda-feira, 14 dias para chegar à terceira segunda-feira e 21 dias para chegar à quarta segunda-feira.
Outra técnica que quero compartilhar com você relacionada a esse desafio é o que chamo de Building in Parts ao criar uma medida. Acho isso muito útil em uma medida complexa em que, se você tiver muitas variáveis, terá muitos componentes para construir.
O que sempre faço é ter uma variável de resultado ( VAR Result ) no final e minha última declaração que é apenas Return Result . Isso torna muito fácil voltar e testar as variáveis que construí. Posso passar, rastrear e resolvê-lo em partes.
A última técnica que quero compartilhar com você é o que chamo de Searching for Unknown Functions. Por exemplo, se eu não souber qual função usar para este desafio de calendário de feriados do LuckyTemplates, irei para a guia External Tools e irei para o SQLBI DAX Guide .
Tem um recurso muito legal aqui chamado Grupos (no lado esquerdo), onde as funções são agrupadas por tipo. E assim, se estou pensando em analisar uma string de texto, por exemplo, posso pesquisar por Text functions .
Ele fornece todas as funções de texto que o DAX possui. Essa é uma ótima maneira de encontrar rapidamente a função DAX necessária para uma medida.
Medidas DAX para o calendário de feriados do LuckyTemplates
Para a medida Holiday Date , criei esta série de s , coletando as datas da segmentação de dados, o mês do feriado, o número do mês e o dia da tabela Date.
Então, tenho a duração desse dia selecionado usando a função de duração ( ). Nesse caso, ele retornou texto, então tive que envolvê-lo em para alterar esse texto para um valor numérico.
E então, usei a função para a posição do espaço e envolvi VALUE, mas dizendo, procure o espaço dentro do dia selecionado, começando na posição um e retornando zero se eu não encontrar aquela string lá.
O CharsBeforeSpace (caracteres antes do espaço) é apenas o SpacePosition. O número de CharsAfterSpace (caracteres após o espaço) é apenas o comprimento ( SelDayLen ) da string menos a posição do espaço. A partir disso, podemos fazer o FirstParse e o SecondParse .
Neste ponto, agora temos duas variáveis, uma representando a ocorrência e outra representando o dia.
E então, temos um básico ( Calc1st ) onde retiramos o filtro da tabela Dates. Em seguida, aplicamos os filtros do ano selecionado no slicer, o nome do mês e depois o dia da semana dessa segunda análise que fizemos.
Da mesma forma, fazemos o mesmo para o último cálculo ( VAR CalcLast ).
Assim que tivermos tudo isso, ele vai para uma instrução e a última parte é o RETURN Result.
Por fim, quero orientá-lo na medida Celebrated On como um bônus adicional do desafio. Este é apenas um simples onde peguei a data do feriado que calculamos na medida anterior, fui até a tabela Dates e procurei o nome do dia da semana. E então fiz uma declaração SWITCH onde pegamos o resultado do DayLookup. E, finalmente, finalizo com um RETURN DateAdjust .
Criando uma tabela de calendário para feriados no LuckyTemplates
Calendários personalizados do LuckyTemplates: Calculando para alteração mês a mês – 445 calendários
Comparação de tempo para tabelas de datas não padrão no LuckyTemplates
Conclusão
Esse desafio do calendário de feriados do LuckyTemplates, como mencionei, é um problema do mundo real. A solução que encontrei é bastante complexa, mas realmente eficaz no cálculo das datas específicas dos feriados.
Espero que você tenha aprendido muito com este tutorial. Confira o tutorial em vídeo completo para obter uma explicação passo a passo mais detalhada das medidas DAX.
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.