Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Calculando Período.

Pessoas boas.

Estou com um dificuldade que creio ser bem simples de resolver porém não consigo.

Acontece o seguinte:

Eu preciso calcular o mesmo período do ano passado para fazer uma comparação, visitando outros post localizei essa solução:


'Ano atual completo até os dias atuais: '&

chr(10)&chr(13)&

'Inicio: '&

Date(Min({1<dDATA = {"<=$(=Max(dDATA))>=$(=YearStart(Max(dDATA)))"}

    >} dDATA))

&chr(10)&chr(13)&

'Fim: ' &

Date(Max({1<dDATA = {"<=$(=Max(dDATA))>=$(=YearStart(Max(dDATA)))"}

    >} dDATA))

&chr(10)&chr(13)&

'Ano anterior completo até os dias correspondentes aos dias atuais: '&

chr(10)&chr(13)&

'Inicio: '&

Date(Min({1<dDATA = {"<=$(=AddYears(Max(dDATA), -1))>=$(=YearStart(AddYears(Max(dDATA), -1)))"}

    >} dDATA) )

&chr(10)&chr(13)&

'Fim: '&

Date(Max({1<dDATA = {"<=$(=AddYears(Max(dDATA), -1))>=$(=YearStart(AddYears(Max(dDATA), -1)))"}

    >} dDATA) )

Até aqui ok, ele me traz a datas necessária.

O que eu não estou conseguindo fazer e dar um Sum vTOTAL dentro desse Período informado acima.

Conseguem me ajudar?

Obrigado

1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

Eu consegui.

Dei varias voltas mas consegui concluir.

Yuri vc tem razão por variais e bem mas simples acabei fazendo dessa maneira;

let vDTAnteriorInicio    = date('01/01/' &Year(AddYears(MonthStart(Today() -30), -1)),'DD/MM/YYYY');

let vDTAnteriorFim       = AddYears(MonthEnd(Today() -30), -1);

let vDTAnteriorINIMes    = AddYears(MonthStart(Today() -30), -1);

let vDTFechadoInicio    =  date('01/01/' &Year(MonthStart(Today() -30)),'DD/MM/YYYY');

let vDTFechadoFim       =  MonthEnd(Today() -30);

let vDTFechadoINI       =  MonthStart(Today() -30);

Essas são minhas variáveis.

E meu calculo ficou assim.

(Sum({<dDATA={">=$(vDTFechadoINI)<=$(vDTFechadoFim)"}, dMES=, dANO=>} vTOTAL)

Sum({<dDATA={">=$(vDTAnteriorINIMes)<=$(vDTAnteriorFim)"}, dMES=, dANO=>} vTOTAL)

Se alguém tiver alguma observação, fiquem a vontade.

Obrigado.

View solution in original post

3 Replies
Not applicable
Author

Victor,

Já precisei calcular período anterior e usei a seguinte fórmula:

SUM ({<DATA={">=$(=YearStart('01/' & MIN(NUM(Month(DATA)))&'/'&MAX(Year(DATA)-1))) <=$(=DATE(DAY(MAX(DATA))&'/' & MAX(NUM(Month(DATA)))&'/'&MAX(Year(DATA)-1)))"}>} VALOR)

DATA: Campo de data que vou comparar. Ela deve ser maior/igual ao inicio do ano anterior e menor/igual à maior data porém do ao anterior.


Caso queira verificar os intervalos que está sendo comparado, separe as parte em um Objeto de texto (A 1ª é a data inicial e a segunda é a data final):


=YearStart('01/' & MIN(NUM(Month(DATA)))&'/'&MAX(Year(DATA)-1))


=DATE(DAY(MAX(DATA))&'/' & MAX(NUM(Month(DATA)))&'/'&MAX(Year(DATA)-1))


Veja se consegue encaixar essa fórmula na sua situação.


nicolett_yuri

Victor, você pode disponibilizar uma app de exemplo?

Existem formas mais simples de realizar esse cálculo criando flags em suas tabelas ou então variáveis.

Anonymous
Not applicable
Author

Eu consegui.

Dei varias voltas mas consegui concluir.

Yuri vc tem razão por variais e bem mas simples acabei fazendo dessa maneira;

let vDTAnteriorInicio    = date('01/01/' &Year(AddYears(MonthStart(Today() -30), -1)),'DD/MM/YYYY');

let vDTAnteriorFim       = AddYears(MonthEnd(Today() -30), -1);

let vDTAnteriorINIMes    = AddYears(MonthStart(Today() -30), -1);

let vDTFechadoInicio    =  date('01/01/' &Year(MonthStart(Today() -30)),'DD/MM/YYYY');

let vDTFechadoFim       =  MonthEnd(Today() -30);

let vDTFechadoINI       =  MonthStart(Today() -30);

Essas são minhas variáveis.

E meu calculo ficou assim.

(Sum({<dDATA={">=$(vDTFechadoINI)<=$(vDTFechadoFim)"}, dMES=, dANO=>} vTOTAL)

Sum({<dDATA={">=$(vDTAnteriorINIMes)<=$(vDTAnteriorFim)"}, dMES=, dANO=>} vTOTAL)

Se alguém tiver alguma observação, fiquem a vontade.

Obrigado.