Calendário de feriados do LuckyTemplates - Calcular data com DAX

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.

Calendário de feriados do LuckyTemplates - Calcular data com DAX

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.

Calendário de feriados do LuckyTemplates - Calcular data com DAX

É 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.

Calendário de feriados do LuckyTemplates - Calcular data com DAX

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.

Calendário de feriados do LuckyTemplates - Calcular data com DAX

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 .

Calendário de feriados do LuckyTemplates - Calcular data com DAX

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 .

Calendário de feriados do LuckyTemplates - Calcular data com DAX

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.

Calendário de feriados do LuckyTemplates - Calcular data com DAX

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 .

Calendário de feriados do LuckyTemplates - Calcular data com DAX

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.

Calendário de feriados do LuckyTemplates - Calcular data com DAX

Da mesma forma, fazemos o mesmo para o último cálculo ( VAR CalcLast ).

Calendário de feriados do LuckyTemplates - Calcular data com DAX

Assim que tivermos tudo isso, ele vai para uma instrução e a última parte é o RETURN Result.

Calendário de feriados do LuckyTemplates - Calcular data com DAX

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 .

Calendário de feriados do LuckyTemplates - Calcular data com DAX


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!

Leave a Comment

Colunas calculadas no SharePoint | Uma visão geral

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.

Atributos pré-atentivos: como isso pode afetar seu relatório

Atributos pré-atentivos: como isso pode afetar seu relatório

Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

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.

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

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.

Variáveis ​​e expressões dentro do editor do Power Query

Variáveis ​​e expressões dentro do editor do Power Query

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.

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

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

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

Como salvar e carregar um arquivo RDS em R

Como salvar e carregar um arquivo RDS em R

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.

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.