Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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.
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.
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.
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.