Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola comunidad...
De nuevo buscando de su sabiduria y experiencia.
Estoy tratando de hacer una consulta donde me pueda acumular por ejemplo las ventas hasta el mes anterior o bien el ultimo mes del año actual donde pueda comparar ese mismo período de años anteriores. No se tiene el dato de la fecha exacta de la transacción, por lo que todo está al 1 de cada mes.
Hice un calendario para aprovechar la facilidad para crear medidas de tiempo en Qlik Sense 3.2, pero ninguna de las opciones me está resultando, se mueve con la fecha del día actual.
La data siempre será actualizada al menos 2 semanas despúes de finalizado el mes.
Alguna idea???
Gracias.
Ejemplos de las que he intentado modificar:
Sum( { $< [Fecha.autoCalendar.InYTD]={1} > } [Ventas_Valor] )
Sum( { $< [Fecha.autoCalendar.InQTD]={1} > } [Ventas_Valor] )
Hola
No sé si ya pudiste resolver tu problema, pongo un ejemplo sencillo de cómo se resolvería con variables y set análisis, sobre todo para que los que estén en la comunidad y tengan más herramientas, esta creado en Sense pero también se puede realizar en Qlikview
1.- Tome el archivo que dejaste, se cargó en el script solo se modificó el campo Fecha (Todos modos dejo el qvf)
LOAD
date(Fecha) as Fecha,
Mes,
Año,
Año_Mes,
Marca,
Unidades_Estandar,
Ventas_Valor
FROM [lib://Fuente/Ejemplo Fechas Qlik Sense.xlsx]
(ooxml, embedded labels, table is Hoja1);
2.- Se crean las siguientes variables.
vDiaActual =today() --fecha del día actual
vAñoActual =yearStart(vDiaActual) -- Fecha inicial del año actual
vMesActualI =MonthStart(vDiaActual) -- Fecha inicial del mes actual
vMesActualIF =MonthEnd( vDiaActual) -- fecha final del mes actual
vMesAnteriorI =MonthStart(vDiaActual,-1) -- Fecha inicial del mes anterior
vMesAnteriorF =MonthEnd( vDiaActual,-1) -- fecha final del mes anterior
vAñoAnteriorI =yearStart(vDiaActual,-1) -- fecha inicial del año anterior
vAñoAnteriorF =yearEnd(vDiaActual,-1) -- fecha final del año anterior
vMesActualAñoAnteriorI =MonthStart(vDiaActual,-12) -- fecha inicial mes actual, pero del año anterior
vMesActualIAñoAnteriorF =MonthEnd( vDiaActual,-12) -- fecha final mes actual, pero del año anterior
vMesAnteriorAñoAnteriorI =MonthStart(vDiaActual,-13) -- fecha inicial mes anterior, pero del año anterior
vMesAnteriorAñoAnteriorF =MonthEnd( vDiaActual,-13) -- fecha Final mes anterior, pero del
Con este tipo de ejemplo, podrías crear sin fin de variables combinando fechas
3.- Generación de set análisis.
El acumulado de ventas que tiene la bases de datos, solo hasta la fecha del mes anterior.
sum({<Fecha={'<=$(vMesAnteriorF)'} >} Ventas_Valor)
El acumulado de ventas solo lo que se lleva del año actual.
sum({<Fecha={'>=$(vAñoActual)'} >} Ventas_Valor)
El Acumulado de ventas solo del año anterior, fecha inicio a fecha fin.
sum({<Fecha={'>=$(vAñoAnteriorI)<=$(vAñoAnteriorF)'} >} Ventas_Valor)
El acumulado de ventas para el mes actual, para este ejemplo aparece en cero, no hay información en la base de datos.
sum({<Fecha={'>=$(vMesActualI)<=(vMesActualF)'} >} Ventas_Valor)
El acumulado de ventas para el mes anterior, para este ejemplo aparece en cero, no hay información en la base de datos.
sum({<Fecha={'>=$(vMesAnteriorI)<=(vMesAnteriorF)'} >} Ventas_Valor)
El acumulado de ventas del mes actual, pero del año anterior.
sum({<Fecha={'>=$(vMesActualAñoAnteriorI)<=(vMesActualAñoAnteriorF)'} >} Ventas_Valor)
El acumulado de ventas del mes anterior, pero del año anterior.
sum({<Fecha={'>=$(vMesAnteriorAñoAnteriorI)<=(vMesAnteriorAñoAnteriorF)'} >} Ventas_Valor)
Ejemplo de vistas.
Este es un pequeño ejemplo de cómo se resolvería, hay varias técnicas que dentro de la comunidad se pueden ver, espero te pueda servir, así como a la comunidad y les sirva el ejemplo para resolver casos similares, cualquier duda estoy para servirte.
Muchas gracias Gerardo... Definitivamente no era algo sencillo, pero creo que será de mucha utilidad para nosotros y la comunidad.
Voy a trabajar con esto...
Excelente aporte y aunque bien mencionas hay varios post. Del tema el tuyo
es extremadamente.grafico y completo.
Saludos
Atte. Carlos Hernández
El 5 may. 2017 6:54 PM, "Gustavo Segreda" <qcwebmaster@qlikview.com>
escribió:
Qlik Community <https://community.qlik.com/?et=watches.email.thread>
¿Cómo crear una medida de tiempo para acumular hasta el mes anterior al
actual?
respuesta de Gustavo Segreda
<https://community.qlik.com/people/gsegreda?et=watches.email.thread> en *Qlik
México* - Ver la discusión completa
<https://community.qlik.com/message/1263132?et=watches.email.thread#1263132>
Qué bueno que les sirva, solo como comentario la fecha base es al día de hoy ( Today() ), pero también podría funcionar con la última fecha seleccionada (max(Fecha) ).
Solo es agregarle algo de creatividad y así podrás generar tus propias variables para las distintos rangos de comparación, como consejo puedes ayudarte con las funciones de fechas, así como en el ejemplo que puse monthstar(Fecha) que determina el primer día del mes de la fecha o campo que se requiere.
Te dejo el siguiente link para las funciones de Fechas
Cualquier duda estoy para servirte.
Hola Gerardo.
De nuevo gracias por compartir tu información.
Hoy te molesto de nuevo porque no he logrado que me sume los datos de años anteriores, basados en la fecha máxima. He intentado de diferentes formas pero en ocasiones no me suma nada, o bien me suma el año completo.
Yo recibo una data hasta con 6 semanas (aunque es variable) posterior al mes, por lo que las fórmulas me van agregando hasta 2 meses de los años anteriores... por lo que no se hace comparativo el análisis del año en curso.
Cualquier ayuda será muy bien recibida...
Gracias.
Hola,
Dentro de este ejemplo no se si ya intentaste sustituir la variable vDiaActual
vDiaActual = max(Fecha)
luego el tipo de formatos de fechas pueden causar problemas.
Si intenté cambiar en las fórmulas la variable del día actual, pero no me suma...
sum({<Fecha={'<=$(vAñoAnteriorI)=$(vMesMax)'} >} Ventas_Valor)
vMesMax = Max(Fecha)
Lo que estoy buscando es comparar el acumulado al mes del año reciente contra los años anteriores.
Te incluyo algunos archivos, incluso el APP que compartiste.
Muchas gracias por la ayuda!
Tomando la descripción que te pase tendrías que tomar los siguientes elementos, solo cambias la variable de Día Actual ya sea por today() o max(Fecha)
Ahora el acumulado de lo que llevas a este año vs acumulado año anterior (Enero - Mayo ), tomando en cuenta que la fecha máxima fuera mayo, puede cambiar de mes conforme a la fecha máxima seleccionada.
vDiaActual = max(Fecha)
vAñoActual =yearStart(vDiaActual) // inicio de mes año actual (Enero 2017)
vMesActualIF =MonthEnd( vDiaActual) // fin de mes año actual (Mayo 2017)
vAñoAnteriorI =yearStart(vDiaActual,-1) // inicio de mes año anterior (Enero 2016)
vMesActualIAñoAnteriorF =MonthEnd( vDiaActual,-12) // fin de mes año anterior (Mayo 2016)
expresiones:
// acumulado de enero a mayo 2017
sum({<Fecha={'>=$(vAñoActual)<=(vMesActualIF)'} >} Ventas_Valor)
// acumulado de enero a mayo 2016
sum({<Fecha={'>=$(vAñoAnteriorI)<=(vMesActualIAñoAnteriorF)'} >} Ventas_Valor)
espero no enredarte.
Un gusto Gustavo
Te comento para este tipo se análisis entre fechas yo utilizo o creo un campo extra de periodo y periodoID con estos campos en particular puedo hacer comparaciones entre años y meses anteriores, que incluyen valores acumulados de forma mas sencilla,
Year(Temp_Fecha) * 100 + Month(Temp_Fecha) as [Periodo]
una ves listo este campo, se genera el Periodo_ID
AutoNumber(Periodo, 'PeriodoID') as [PeriodoID], // esto como precedent
y mediante set Analisys
se puede hacer estos analisis
1) Sum({<PeriodoId = {'<=$(=Max(PeriodoId)-2)'},[Año Cartera] = ,[Mes Cartera] =,[Dia Cartera] =,[Semana Cartera] = >}Resolución)
2) Sum({<PeriodoId = {'<=$(=Max(PeriodoId)-1)'},[Año Cartera] = ,[Mes Cartera] =,[Dia Cartera] =,[Semana Cartera] = >}Resolución)
Estas expreciones se usan valores acumulados
Espero te sirva Gustavo