Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola, presento mi duda a ver si alguien me puede ayudar.
Tengo valores cada 15 minutos y lo que necesito es coger el máximo entre los siguientes rangos:
Max({MediTotal<Minutos={">=12"},Minutos={"<=17"},PointSliceID={"11229"}>}ActualValue)+
Max({MediTotal<Minutos={">=27"},Minutos={"<=33"},PointSliceID={"11229"}>}ActualValue)+
Max({MediTotal<Minutos={">=42"},Minutos={"<=48"},PointSliceID={"11229"}>}ActualValue)+
Max({MediTotal<Minutos={">=57"},PointSliceID={"11229"}>}ActualValue)
Sumando dichos valores me da el valor que necesito de cada hora.
Funciona para una hora, pero si lo quiero de un día o un mes no funciona.
He probado con set analysis, con If() y con Aggr(,Mes, Dia, Hora), pero no funciona.
Cómo podría hacerlo?
Gracias.
Un saludo.
Buenos días Alexis, la expresión con el Aggr() me fallaba cuando tenía seleccionada la fecha en el estado Meditotal y a la vez en el estado prederterminado, para evitarlo le he añadido al primer sum el mismo estado alterno que a los Max(). También he puesto el filtro de minutos como decía Emilio.
Adjunto el documento.
Saludos.
Intenta utilizar la funcion firstsortedvalue().
firstsortedvalue( actualvalue, aqui pones el rango que deseas).
Hola Juan,
gracias por contestar, pero necesito que los 4 valores de cada hora se sumen con los 4 valores de la hora siguiente y así de un mes o un día dependiendo de lo seleccionado.
Y como me comentas no lo consigo hacer.
Gracias.
Un saludo.
Hola Aleix:
Lee estos documentos de un gurú de la herramienta, igual te ayudan a resolver tu requerimiento.
How to use - Master-Calendar and Date-Values
Saludos,
Joaquín
Hola Alexis, la opción del Aggr, si estamos hablando de una expresión, debería estar incluída en una función de agregación, supongo que Max(Aggr(....,Mes, Dia, Hora))
Publica un trozo de datos y coloca lo que tu quieres que haga la aplicacion.
Estoy mirando los documentos Joaquín a ver si lo puedo solucionar.
A ver, tengo un dato por cada minuto y lo que necesito es el máximo de entre minutos>=12 y minutos<=17 y sumar el máximo que está entre minutos>=27 y minutos<=33 mas el máximo de entre Minutos=>=42 y Minutos<=48 mas el máximo entre Minutos>=57.
Así saldrán 4 valores cada hora.
Pero lo intento con Set Analysis y Aggr como comenta Rubén, pero no lo consigo.
Gracias.
Un saludo.
Cuando dices que no lo consigues o que no te funciona ¿significa que no te devuelve ningún valor o que no es el valor que esperas?
Por cierto he releído el tercer post y para sumar los máximos de todas las horas en vez del Max sería un Sum:
Sum(Aggr(....,Mes, Dia, Hora))
También comprueba que el estado MediTotal no tenga alguna selección que esté influyendo.
Unos cuantos datos de ejemplo vendrían bien, aunque hasta mañana no voy a poder revisarlo.
Saludos.
yo te recomiendo crear una bandera para cada intervalo en el backend script y ya sobre ese creas un aggr como sugiere Ruben
Hola Alex,
La verdad es que no lo he entendido muy bien lo que quieres hacer, pero lo que si he visto es un error en la expresión que has puesto, lo correcto sería lo siguiente:
RangeSum(
Max({MediTotal<Minutos = {">=12<=17"}, PointSliceID = {"11229"}>} ActualValue)
, Max({MediTotal<Minutos = {">=27<=33"}, PointSliceID = {"11229"}>} ActualValue)
, Max({MediTotal<Minutos = {">=42<=48"}, PointSliceID = {"11229"}>} ActualValue)
, Max({MediTotal<Minutos = {">=57"} , PointSliceID = {"11229"}>} ActualValue)
)
Fijate como he filtrado el campo "Minutos" en el análisis de conjunto. Si no lo haces así, la interpretación de QlikView será del último filtro sobre "Minutos" que pongas, es decir, sólo puede aparecer cada campo una sola vez dentro del mismo análisis de conjuntos. He de suponer que "MediTotal" es un marcador sobre el que le aplicas el análisis de conjunto, ¿verdad?
Un saludo y espero haberte ayudado.