Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buenos días,
Necesito crear un contador, que me calcule el número de meses que han pasado hasta la fecha actual.
He utilizado para este la formula "GetPossibleCount(Fecha)".
El problema que tengo es que esto me devuelve los meses que han pasado desde principio del año en curso hasta la fecha actual, pero si hago una selección ya no me devuelve un valor correcto, por lo que necesito una formula que me calcule los meses transcurridos desde la fecha más antigua que tenga en la selección, hasta la fecha más nueva que tenga en la selección.
¿A alguien se le ocurre como hacerlo?
Gracias
Hola Esteban
Si simplemente es contar los meses te podría servir esto:
=((Year(Max(Fecha)) * 12) + Month(Max(Fecha))) -
((Year(Min(Fecha)) * 12) + Month(Min(Fecha)))
Luego puedes meter en variables la fecha máxima y la mínima para reutilizar código...
Espero que te sirva...
Saludos,
H
!
Hola,
No te sirve esta fórmula?
=month(now())-month(Fecha)
Siendo now la fecha máxima que quieres restar y Fecha la seleccionada
Saludos,
Te adjunto ejemplo.
El problema de esa formula, es que si hay algún mes que no tiene datos, no te lo cuenta.
Esteban, ¿puedes poner un ejemplo?
Perdón, quería decir, que si el último mes seleccionado no tiene datos, no lo cuenta.
Es decir, si selecciono de febrero a mayo y mayo no tiene datos de ventas y abril si, aún seleccionando mayo, me devuelve 3 meses, no 4.
Lo que quiero es calcular cada cuanto tiempo se realiza un pedido, es decir, el nº meses/nº pedidos.
No te sigo....
Es igual los meses que tengan o no tengan datos, tu métrica segun he entendido solo restará los meses de la fecha máxima y la fecha mínima......
Tu dices:
Perdón, quería decir, que si el último mes seleccionado no tiene datos, no lo cuenta.
lo que tendrias que hacer es restar del mes seleccionado.... entiendo....
De todas formas si puedes subir un ejemplo como dice Hector mejor.....
Saludos,
Pero no es restar el mes seleccionado, lo que tiene que hacer la función es contar los meses que hay en el periodo seleccionado.
Tal y como he comentado, si la selección es de Febrero a Mayo, me debería de dar 4 meses, pero si el mes de Mayo que he seleccionado no tiene datos de ventas, no lo tiene en cuenta y me devuelve 3.
De hecho, si selecciono de Febrero a Junio, como Junio si tiene datos, me devuelve 5. Vamos que si el mes que no tiene datos, está en medio de la selección, si lo tiene en cuenta.
El problema que tiene Qlik, es que si en una fecha determinada no tiene datos, Qlik, coge por defecto la última fecha de la que disponga de datos.
No se si termino de explicarme.
Crea un calendario maestro, te dejo un link Calendario Maestro para obtener todos los días transcurridos
y este es el que tengo en uno de mis documentos.
Fecha:
LOAD
Num(43009) + rowno() as Día // 43009 es el "01-10-2017" // Esta fecha se puede modificar
AUTOGENERATE (91); // 91 es la cantidad de días que hay para llegar al "31-12-2031"
//***********************************************************************************
// Crear Calendario usando como base la fecha del Campo X
//***********************************************************************************
LET vMinDate = Num(Peek('Día',0,'Fecha'));
LET vMaxDate = Num(Peek('Fecha Campo X',-1,'Nombre de la Table'));
LET vToday = Num(today());
Drop Table Fecha;
TempCalendar:
LOAD
$(vMinDate) + rowno()-1 as Num,
Date($(vMinDate) + rowno()-1) as TempDate
AUTOGENERATE
$(vMaxDate) - $(vMinDate) + 1;
Calendario:
LOAD
year(TempDate) as Año,
Month(TempDate) as Mes,
Day(TempDate) as Día,
ceil(num(Month(TempDate))/4) & Year(TempDate) as PeriodoQ,
right('00' & num(Month(TempDate)),2) & Year(TempDate) as PeriodoNota,
right('00' & week(TempDate),2) & Year(TempDate) as PeriodoW,
ceil(num(Month(TempDate))/3) & ('º Q') as Trimestre
RESIDENT TempCalendar
ORDER BY TempDate Asc;
DROP TABLE TempCalendar
De esta forma tendrás todos los meses así no tengas ventas!
De verdad si subes un ejemplo ayudaria porque hablas de selecciones y luego de datos... crea un pequeño inline....
Te adjunto otro caso por si te ayuda....