Ir para conteúdo
  • 0

Semana do mês


Dione J. Santos

Pergunta

  • Alunos

Bom dia!

 

Galera, estou quebrando a cabeça em um relatório que apresente a venda na semana do mês.

 

Utilizando a formula abaixo consigo o resultado semana no ano no relatório:

Semana do ano = WEEKNUM(dCalendario[Date])=

image.png.7b204f28ddf4fa2d45cab2f696006684.png

 

Porem, a coisa complica quando tento apresentar a semana no mês.
A ideia é q a semana se limite ao mês corrente de segunda a domingo.

Semana do mês =
var SemMes = weeknum(dCalendario[Date]) - WEEKNUM(date(YEAR(dCalendario[Date]), MONTH(dCalendario[Date]),1))+1
var mes = FORMAT(dCalendario[Date],"MMM")
 
 return
 
SemMes&"º"& " Semana" &" de "& mes

 

A ideia é contar a semana do mês e reiniciar no mês seguinte.

Ex.: Sem 1 de Agosto, Sem 2 de agosto... Sem 1 de Setembro...

Porem, ocorre essa quebra que não consigo tratar.

Alguém tem alguma dica? Obrigado desde ja! 

image.png.02daa932b3380e68b70547088769eae5.png

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos

Obrigado!

Sua resposta me fez "lembrar" que existe o M.

O que me levou por outros caminhos... e acabei criando um calendário usando M e nele ajustando o campo da forma q eu queria.

Valeu demais!

Segue:
 

let
    //Variável que Identifica a data mínima da tabela fato 
    Datamin = List.Min(#"Pedido Novo"[Data Emissão]),
    //Variável que Identifica a data máxima da tabela fato 
    Datamax = List.Max(#"Pedido Novo"[Data Emissão]),
    //Variável com o ano inicial
    AnoInicial = Date.Year(Datamin),
    //Variável com o ano final
    AnoFinal = Date.Year(Datamax),
    //Variável com o primeiro dia da tabela
    DataInicial = Date.StartOfYear(#date(AnoInicial, 1, 1)),
    //Variável com o último dia da tabela
    DataFinal = Date.EndOfYear(#date(AnoFinal, 12, 31)),
    //Conta a quantidade de dias entre as duas datas
    QtdeDias = Duration.Days(DataFinal-DataInicial)+1,
    //Cria lista de datas
    Datalist = List.Dates(DataInicial,QtdeDias,#duration(1,0,0,0)),
    //Converter para Tabela
    ConvertTabela = Table.FromList(Datalist, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    //Altera Tipo
    AlteraTipo = Table.TransformColumnTypes(ConvertTabela,{{"Column1", type date}}),
    //Renomeia Coluna
    RenomeiaColuna = Table.RenameColumns(AlteraTipo,{"Column1", "Data"}),
 
    //Criação de Colunas Adicionais
    //Criar Coluna ANO
    Ano = Table.AddColumn(RenomeiaColuna, "Ano", each Date.Year([Data]),Int64.Type),
    //Criar Coluna Mês
    Mes = Table.AddColumn(Ano, "Mes", each Date.Month([Data]),Int64.Type),
    //Criar Coluna Nome do Mês
    Nome_Mes = Table.AddColumn(Mes, "Nome_Mes", each Date.MonthName([Data]), type text),
    //Criar Coluna Dia
    Dia_do_Mes = Table.AddColumn(Nome_Mes, "Dia_Mes", each Date.Day([Data]), Int64.Type),
    //Criar Coluna Dia do Ano
    Dia_do_Ano = Table.AddColumn(Dia_do_Mes, "Dia_Ano", each Date.DayOfYear([Data]), Int64.Type),
    //Criar Coluna Dia da Semana
    Dia_Semana = Table.AddColumn(Dia_do_Ano, "Dia_Semana", each Date.DayOfWeek([Data]), Int64.Type),
    //Criar Coluna Dia da Semana
    Nome_Dia_Semana = Table.AddColumn(Dia_Semana, "Nome_Dia_Semana", each Date.DayOfWeekName([Data]), type text),
    //Criar Coluna Dia da Semana
    Trimestre = Table.AddColumn(Nome_Dia_Semana, "Trimestre", each Date.QuarterOfYear([Data]), Int64.Type),
    //Criar Coluna Semana do Ano
    Semana_Ano = Table.AddColumn(Trimestre, "Semana_Ano", each Date.WeekOfYear([Data]), Int64.Type),
    //Criar Coluna Semana do Mes
    Semana_Mes = Table.AddColumn(Semana_Ano, "Semana_Mes", each Date.WeekOfMonth([Data]), Int64.Type)

in
    Semana_Mes

Mérito ao amigo:
(63) Como criar uma tabela calendário no Power BI com datas variáveis a partir de outra tabela? | LinkedIn

Só add:
= Table.AddColumn(Semana_Mes, "Semana/Mês", each Text.Combine({Text.From([Semana_Mes], "pt-BR"), "ª Semana de ", Text.Proper([Nome_Mes])}), type text)

  • Like 1
Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...