Como criar uma tabela calendário para filtro de datas relativas no Power BI

No Power BI, você pode criar um filtro personalizado para segmentar datas usando a função “Calendário de Data” e criar colunas com as opções desejadas, como “Últimos 30 dias” e “Última semana”. Aqui está um exemplo de como você pode fazer isso:

  • Crie uma nova tabela no Power BI, clicando com o botão direito do mouse na área “Campos” e selecionando “Nova Tabela”.
  • Na fórmula da nova tabela, utilize a função “CALENDAR” para criar uma tabela de datas para um período específico. Por exemplo, para criar um calendário para o ano atual, você pode usar a seguinte fórmula:
Calendário = CALENDAR(DATE(YEAR(NOW()), 1, 1), NOW())

Agora, crie colunas adicionais para representar os intervalos de datas desejados. Para adicionar as opções de “Último dia”, “Último mês” e “Último ano” à fórmula da coluna “Período” na tabela “Calendário”, você pode expandir a lógica do SWITCH. Como no exemplo abaixo:

Período = 
SWITCH(
    TRUE(),
    Calendário[Date] >= TODAY() - 7 && Calendário[Date] <= TODAY(), "Última semana",
    Calendário[Date] >= TODAY() - 30 && Calendário[Date] < TODAY() - 7, "Últimos 30 dias",
    Calendário[Date] = TODAY() - 1, "Último dia",
    Calendário[Date] >= EOMONTH(TODAY(), -1) + 1 && Calendário[Date] <= EOMONTH(TODAY(), -1), "Último mês",
    Calendário[Date] >= TODAY() - 365 && Calendário[Date] < TODAY() - 30, "Último ano",
    "Outros"
)

Nessa fórmula, foram adicionadas três novas condições ao SWITCH:

  • A condição Calendário[Date] = TODAY() - 1 verifica se a data é igual a ontem, atribuindo o valor “Último dia”.
  • A condição Calendário[Date] >= EOMONTH(TODAY(), -1) + 1 && Calendário[Date] <= EOMONTH(TODAY(), -1) verifica se a data está dentro do último mês, atribuindo o valor “Último mês”. A função EOMONTH(TODAY(), -1) retorna o último dia do mês anterior.
  • A condição Calendário[Date] >= TODAY() - 365 && Calendário[Date] < TODAY() - 30 verifica se a data está dentro do último ano, atribuindo o valor “Último ano”.

Certifique-se de aplicar essa nova fórmula à coluna “Período” na tabela “Calendário” e atualizar a tabela no Power BI. Agora você terá as opções de “Último dia”, “Último mês” e “Último ano” disponíveis na coluna “Período”.

Lembre-se de ajustar as condições e os rótulos conforme necessário para atender às suas necessidades específicas.

Agora para criar divisões de meses por semanas na tabela “Calendário” no Power BI, você pode adicionar colunas calculadas que representam essas divisões.

Crie uma nova coluna adicional e adicione o seguinte :

MesDaSemana = MONTH([Date]) & "-" & WEEKNUM([Date]) - WEEKNUM(DATE(YEAR([Date]), MONTH([Date]), 1)) + 1

Essa fórmula concatena o número do mês com o número da semana dentro do mês para criar um identificador único para cada semana no formato “Mês-Semana”

Agora você terá uma nova coluna “SemanaNoMes” indica o número da semana dentro do mês para cada data.

Também é possível criar dentro do editor, colunas na tabela “Calendário” que mostrem a representação escrita das semanas dentro de cada mês, você pode usar a função SWITCH para atribuir os valores correspondentes. Por exemplo:

SemanaNoMesTexto =
SWITCH(
    [SemanaNoMes],
    1, "1ª semana",
    2, "2ª semana",
    3, "3ª semana",
    4, "4ª semana",
    "Outras semanas"
)

Nessa fórmula, estamos usando a função SWITCH para atribuir o valor correspondente a cada semana dentro do mês.

Agora você terá uma nova coluna chamada “SemanaNoMesTexto” na tabela “Calendário” que mostrará a representação escrita das semanas dentro de cada mês.

É possível utilizar esse tipo de corte de datas para realizar analises em períodos específicos.

Sobre Janaina Valim 100 Artigos
Como Analista de Dados, minha paixão é desvendar insights valiosos e transformá-los em estratégias de sucesso. Constantemente em busca de novos conhecimentos, minha jornada vai além das planilhas e gráficos. Fora do mundo dos dados, sou uma apreciadora entusiasta de vinhos e cervejas, sempre em busca de novos sabores e experiências.

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será divulgado.


*