Qlik Community

New to QlikView

Discussion board where members can get started with QlikView.

Not applicable

Comparación entre periodos diferentes

Hola, buen día.

Estoy utilizando el set analisys para sacar un dato en un modelo, dentro de una tabla pivotante.

En una de las expresiones hago lo siguiente:

sum({$<Cuenta={'323232'},SubCTA={'<=323'},Mes_Ant>}-(saldo_final))

La idea es que me traiga el saldo final del mes anterior, es decir que si tengo selecciónado Agosto, me traiga el saldo de julio como valor en esa expresión unicamente, en las demas si requiero que el saldo sea el de agosto. Pero no me trae el dato correcto.

¿Podrían ayudarme con alguna formula para poder hacer comparaciones entre periodos diferentes dentro del mismo objeto?

Les agradezco.

Saludos!

1 Solution

Accepted Solutions
Not applicable

Re: Comparación entre periodos diferentes

Hola Elizabeth,

Intenta con análisis de conjuntos, algo así:

Sum({<Periodo_= {">=$(=AddMonths(Max(Periodo_),-1))<$(=Max(Periodo_))"}, FechaProgramada_=, Mes_=, Año_>} MiMetrica)

El Campo Periodo lo calculas a partir de tu campo principal de fecha, aquel con el que creaste tu Calendario usando la funcion MonthName algo así:

Calendario:

LOAD

     MiFecha

     Year(MiFecha) as Año,

     Month(MiFecha) as Mes,

     Day(MiFecha) as Día,

     MonthName(MiFecha) as Año

From MiData.qvd;

La funcion AddMonths(Campo,-1) nos da el periodo anterior es decir el Mes Anterior por ejemplo si seleccionas Septiembre de 2014 nos trae lo de Agosto 2014 y esta función tambien funciona cuando tienes seleccionado Enero para traer Diciembre del Año anterior (un periodo atras), en el caso de tu expresion quedaria álgo por el estilo:

sum({$<Cuenta={'323232'},SubCTA={'<=323'},Periodo_= {">=$(=AddMonths(Max(Periodo_),-1))<$(=Max(Periodo_))"},CampoMes=,CampoAño=>}-(saldo_final))

Es importante que tu CampoAño y CampoMes (Como sea que los allas nombrado) los pongas = a nada para que no interfieran en recorrer un mes hacia atras.

Espero te sea de ayuda.

Saludos.

3 Replies
Not applicable

Re: Comparación entre periodos diferentes

Hola Elizabeth,

Intenta con análisis de conjuntos, algo así:

Sum({<Periodo_= {">=$(=AddMonths(Max(Periodo_),-1))<$(=Max(Periodo_))"}, FechaProgramada_=, Mes_=, Año_>} MiMetrica)

El Campo Periodo lo calculas a partir de tu campo principal de fecha, aquel con el que creaste tu Calendario usando la funcion MonthName algo así:

Calendario:

LOAD

     MiFecha

     Year(MiFecha) as Año,

     Month(MiFecha) as Mes,

     Day(MiFecha) as Día,

     MonthName(MiFecha) as Año

From MiData.qvd;

La funcion AddMonths(Campo,-1) nos da el periodo anterior es decir el Mes Anterior por ejemplo si seleccionas Septiembre de 2014 nos trae lo de Agosto 2014 y esta función tambien funciona cuando tienes seleccionado Enero para traer Diciembre del Año anterior (un periodo atras), en el caso de tu expresion quedaria álgo por el estilo:

sum({$<Cuenta={'323232'},SubCTA={'<=323'},Periodo_= {">=$(=AddMonths(Max(Periodo_),-1))<$(=Max(Periodo_))"},CampoMes=,CampoAño=>}-(saldo_final))

Es importante que tu CampoAño y CampoMes (Como sea que los allas nombrado) los pongas = a nada para que no interfieran en recorrer un mes hacia atras.

Espero te sea de ayuda.

Saludos.

Not applicable

Re: Comparación entre periodos diferentes

Gracias Oswald, es justo lo que ocupo .

Muchas gracias por tu apoyo!!!

maxicarena
Contributor

Re: Comparación entre periodos diferentes

Hola! ¿cómo están?, tengo una consulta ya que estoy teniendo problemas para comparar periodos cuando paso de un año a otro, por ejemplo si estoy posicionado en enero 2017 y quiero ver lo de diciembre 2016.

Mi caso es el siguiente, de manera simple, tengo seleccionado el campo MES (construido con el Calendario sobre el campo principal Fecha) y el campo AÑO (idem. anterior), entonces quiero ver las ventas generadas en el mes pasado teniendo en cuenta de que el AÑO cambia.

La fórmula que estoy usando (contiene función SET ANALYSIS) y que me sirve para comprar meses dentro del mismo año es la siguiente:

Sum({<[FECHA.autoCalendar.Month]={$(vPriorMonth)}>})VALO)

La variable vPriorMonth es la siguiente: =Month(addmonths(max(FECHA),-1))

Tengo una selección en el Campo [FECHA.autoCalendar.Month] (Mes) y [FECHA.autoCalendar.Year] (Año), entonces lo que veo es que tengo que incluir de alguna forma esta exclusión de Año en la fórmula.

Hice esto pero NO FUNCIONA para el cambio de Año: SUM ({<[FECHA.autoCalendar.Month]={$(vPriorMonth)},[FECHA.autoCalendar.Year]>}  VALO)

¿Se entiende? ¿Alguien puede ayudarme?

Muchas gracias