Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia Pessoal estou com um caso no qual preciso aplicar uma regra e gostaria do apoio de vocês para aplicar a mesma.
A regra é calculo de EBIT em determinado tempo.
Que funciona da seguinte forma:
Se o usúario selecionar o ano atual: trazer último mês fechado, exemplo: estamos em agosto de 2025, trazer os dados de agosto/24 a jul/25.
Se selecionar o ano e algum mês: pegar o mês selecionado e voltar 11 meses
Se selecionar o ano fechado: pegar o ano fechado, ou seja, janeiro a dezembro.
Eu fiz da seguinte forma:
AnoMes = {">=$(=vUlt12Meses)<=$(=vMaxMesAno)"}
Onde:
vUlt12Meses= =Year(AddMonths(Max(Data),-11))&Num(Month(AddMonths(Max(Data),-11)),'00')
vMaxMesAno= =Year(Max(Data))&Num(Month(Max(Data)),'00')
Isso conseguiu servir para as duas últimas regras, mas a do ano atual eu não consegui, poderiam me ajudar? Como posso resolver isso? Fazendo um IF e chamando alguma expressão, ou da pra fazer via variavel?
My translation maybe not accurate but try like this:
variable:
vIsCurrentYear = If(Max(Year(Data)) = Year(Today()), 1, 0)
then espression
Olá Robert, Bom dia! Essa não funcionou para a regra solicitada, Segue a regra que funcioonou...
vAnoMesMin =
=If( // 1) Ano e Mês selecionados apenas voltar 11 meses
GetSelectedCount(Ano)=1 and GetSelectedCount(Mês)=1,
Year(AddMonths(MonthStart(Max(Data)),-11)) & Num(Month(AddMonths(MonthStart(Max(Data)),-11)),'00'),
// 2) Só Ano selecionado e é ano fechado (antes do atual) pegar o primeiro mes que sempres será janeiro
If(GetSelectedCount(Ano)=1 and Max(Ano) < Year(Today()),
Max(Ano) & '01',
// 3) Só Ano selecionado e é o ano atual -> últimos 12 meses fechados (até mês anterior)
If(GetSelectedCount(Ano)=1 and Max(Ano)=Year(Today()),
Year(AddMonths(Max(Data),-12)) & Num(Month(AddMonths(Max(Data),-12)),'00'),
// 4) Sem nenhuma seleção específica voltar últimos 12 meses fechados
Year(AddMonths(Max(Data),-12)) & Num(Month(AddMonths(Max(Data),-12)),'00')
)
)
)
vAnoMesMax =
=If( // 1) Ano e Mês selecionados -> o próprio AnoMes selecionado
GetSelectedCount(Ano)=1 and GetSelectedCount(Mês)=1,
Year(MonthStart(Max(Data))) & Num(Month(MonthStart(Max(Data))),'00'),
// 2) Só Ano selecionado e é ano fechado (antes do atual) -> Dez desse ano
If(GetSelectedCount(Ano)=1 and Max(Ano) < Year(Today()),
Max(Ano) & '12',
// 3) Só Ano selecionado e é o ano atual -> último mês FECHADO (mês anterior)
If(GetSelectedCount(Ano)=1 and Max(Ano)=Year(Today()),
Year(AddMonths(Max(Data),-1)) & Num(Month(AddMonths(Max(Data),-1)),'00'),
// 4) Sem seleção específica -> mês atual dos dados
Year(Max(Data)) & Num(Month(Max(Data)),'00')
)
)
)
Na medida: AnoMes = {">=$(vAnoMesMin)<=$(=vAnoMesMax)"}
My translation maybe not accurate but try like this:
variable:
vIsCurrentYear = If(Max(Year(Data)) = Year(Today()), 1, 0)
then espression
Olá Robert, Bom dia! Essa não funcionou para a regra solicitada, Segue a regra que funcioonou...
vAnoMesMin =
=If( // 1) Ano e Mês selecionados apenas voltar 11 meses
GetSelectedCount(Ano)=1 and GetSelectedCount(Mês)=1,
Year(AddMonths(MonthStart(Max(Data)),-11)) & Num(Month(AddMonths(MonthStart(Max(Data)),-11)),'00'),
// 2) Só Ano selecionado e é ano fechado (antes do atual) pegar o primeiro mes que sempres será janeiro
If(GetSelectedCount(Ano)=1 and Max(Ano) < Year(Today()),
Max(Ano) & '01',
// 3) Só Ano selecionado e é o ano atual -> últimos 12 meses fechados (até mês anterior)
If(GetSelectedCount(Ano)=1 and Max(Ano)=Year(Today()),
Year(AddMonths(Max(Data),-12)) & Num(Month(AddMonths(Max(Data),-12)),'00'),
// 4) Sem nenhuma seleção específica voltar últimos 12 meses fechados
Year(AddMonths(Max(Data),-12)) & Num(Month(AddMonths(Max(Data),-12)),'00')
)
)
)
vAnoMesMax =
=If( // 1) Ano e Mês selecionados -> o próprio AnoMes selecionado
GetSelectedCount(Ano)=1 and GetSelectedCount(Mês)=1,
Year(MonthStart(Max(Data))) & Num(Month(MonthStart(Max(Data))),'00'),
// 2) Só Ano selecionado e é ano fechado (antes do atual) -> Dez desse ano
If(GetSelectedCount(Ano)=1 and Max(Ano) < Year(Today()),
Max(Ano) & '12',
// 3) Só Ano selecionado e é o ano atual -> último mês FECHADO (mês anterior)
If(GetSelectedCount(Ano)=1 and Max(Ano)=Year(Today()),
Year(AddMonths(Max(Data),-1)) & Num(Month(AddMonths(Max(Data),-1)),'00'),
// 4) Sem seleção específica -> mês atual dos dados
Year(Max(Data)) & Num(Month(Max(Data)),'00')
)
)
)
Na medida: AnoMes = {">=$(vAnoMesMin)<=$(=vAnoMesMax)"}