Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Maximize ROI with Qlik Professional Services – Expert Guidance, Faster Results: Explore Qlik Services
cancel
Showing results for 
Search instead for 
Did you mean: 
alexdelagarza
Contributor III
Contributor III

Fecha inicio y fecha fin año anterior

Buen día tengo un reporte donde consulto información del mes actual con fecha de corte al día anterior.

Por ejemplo:

Fecha inicio: 01/Feb/2025

Fecha Fin_ 13/Feb/2025 (suponiendo que el día de hoy es 14/Feb/2025)

 

La consulta que tengo es la siguiente:

=Sum( Aggr(Sum( {<FECHAT = {">=$(vMesActualI)<=$(vDiaActual)-1"},Escenario={'Real'}>}AFORO)

* Only(POND_TOTAL),AGRUPACION, FECHAT, PROYECTO, Tramo,  DESCRIPCION))

/ COUNT({<FECHAT = {">=$(vMesActualI)<=$(vDiaActual)-1"},Escenario={'Real'}>} Día)

 

Dónde las variables son las siguientes:

vMesActualI =MonthStart(vDiaActual)

vDiaActual = Today()

 

Esta parte me funciona bien, sin embargo tengo problemas para establecer el rango de fechas de la misma consulta pero del año anterior, si me da la fecha de inicio bien, pero la fecha fin se extiende hasta el año 2025.

Por ejemplo:

Fecha inicio: 01/Feb/2024

Fecha fin: 13/Feb/2024

 

La consulta que tengo es la siguiente:

=Sum( Aggr(Sum( {<FECHAT = {">=$(vMesActualAñoAnteriorI)<=$(vDiaActual)-367"}, Escenario={'Real'}>} AFORO)

* Only(POND_TOTAL),AGRUPACION, FECHAT, PROYECTO, Tramo,  DESCRIPCION))

/COUNT({<FECHAT = {">=$(vMesActualAñoAnteriorI)<=$(vDiaActual)-367"},Escenario={'Real'}>} Día)

Dónde las variables son las siguientes:

vMesActualAñoAnteriorI =MonthStart(vDiaActual,-12)

vDiaActual = Today()

 

Nota.- Estoy restando 367 días ya que el 2024 es bisiesto y además resto un día adicional ya que la consulta es a un día anterior.

Espero me puedan apoyar.

 

Muchas gracias

Labels (3)
1 Reply
morgankejerhag
Partner - Creator III
Partner - Creator III

This could be several things.

  • I assume you are not making any selections on any calendar field?
  • Try a parenthesis round: ($(vDiaActual)-367)
  • Comparison of dates in set analysis is dangerous, sometimes it searches for text values. I would make sure FECHAT is numerical and calculated date values are numerical as well

You will also run into problems with -367 as you need to change it now and then.

Instead I would create a calendar table in script and flag the dates that are in MTD och MTD last year.

In script, something like:

TmpDate:
Load
     num(min(fieldvalue('MyDateColumn',recno()))) as MinDate,
     num(max(fieldvalue('MyDateColumn',recno()))) as MaxDate
AutoGenerate FieldValueCount('MyDateColumn');
 
Let vMinDate = peek('MinDate',0);
Let vMaxDate = peek('MaxDate',0);
drop table TmpDate;
 
Calendar:
Load
     Date as MyDateColumn,
     if(InMonthToDate(Date,today(),0),1,0) as Flag_MTD,
     if(InMonthToDate(Date,today(),-12),1,0) as Flag_LY_MTD
     // Add year, month etc if you like
     ;
Load
date($(vMinDate)+recno()-1) as Date
AutoGenerate($(vMaxDate)-$(vMinDate)+1);

 

In expressions, something like:

Sum({<Flag_MTD={1}>} Amount)