Skip to main content
Announcements
See why Qlik is a Leader in the 2024 Gartner® Magic Quadrant™ for Analytics & BI Platforms. Download Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Restar a fila actual la fila anterior y acumular

Hola, a ver si alguien puede ayudarme.

Tengo la siguiente tabla:

tablaEnergia.PNG.png

Donde Tengo un edificio, relacionado con fecha y hora cada 10 minutos y donde va almacenando un valor de energía.

Dicho valor va incrementando ( aunque no se vea en la imagen) con lo que se va acumulando la energía con el paso del tiempo.

Ahora viene mi duda, que si quiero saber la energía de distintos periodos ( ej: 1 hora, 1 día, 1 mes, ...), debería de restar a la última fila su anterior fila, y así sucesivamente hacia arriba e ir acumulando los resultados de esas restas.

Alguien sabe cómo puedo hacer algo así?

Un saludo y muchas gracias.

8 Replies
jolivares
Specialist
Specialist

Usando la funcion Above obtienes el valor anterior y simplemente lo resta para obtener la energia.

Not applicable
Author

Hola Juan, muchas gracias por tu ayuda que solucionó mi problema, pero ahora se me plantea otro.

Tengo la siguiente tabla:

Above.PNG.png

Donde en la columna SAbove tengo la siguiente instrucción:

=If(ABOVE(SUM(ActualValue), 0, ROWNO())<ABOVE(SUM(ActualValue), 1, ROWNO()),0,ABOVE(SUM(ActualValue), 0, ROWNO())-ABOVE(SUM(ActualValue), 1, ROWNO()))

Que con cada mMedidor y fecha va sacando valores de energía y con Above voy haciendo ( fila actual - fila anterior ), para sacar la energía total acumulada por cada mMedidor; Y si cambia a otro medidor vuelve a contar. Hasta aquí bien, ahora el problema viene cuando intento obtener la suma de todos los Above de cada mMedidor en un gráfica, o en un objeto de texto o donde sea ( Es decir, quiero sacar los totales de cada mMedidor).

No se si es porque Above no funciona en gráficas o no se.

Necesito ayuda!

Muchas gracias y un saludo.

Not applicable
Author

Hola, por favor, que alguien me ayude con esto.

De la tabla iba restando a la fila actual la fila anterior, esos valores que salen de las restas son los que quiero recuperar y sumarlos todos. Intento guardarlos en una variable, pero no me muestra los valores. Hay alguna forma de representar esto en una gráfica? O alguna forma de poder sacar estos resultados fuera de la tabla que he hecho?

Un saludo y muchas gracias.

jolivares
Specialist
Specialist

Debes agregarlo por medidor...

Capture.PNG.png

Primero debes usar la funcion de RangeSum para que puedas acumular los valores

RangeSum(Above(TOTAL [Ventas],0,RowNo(TOTAL))

Y despues ...

Sum( Aggr(RangeSum(Above(TOTAL Sum( Aggr(Sum(ValNetoUSD),Fecha)),0,RowNo(TOTAL))),Semana2))

Not applicable
Author

Muchas gracias Juan, aquí estoy peleándome con el código.

Con la primera instrucción voy acumulando en la última fila lo que se va restando en la columna SAbove.

tablaAbo.PNG.png

Pero necesito acumularlo por medidor, es decir, que se acumule lo de cada medidor independiente.

Y eso mismo poderlo pasar a una gráfica del estilo de la siguiente:

GrafMed.PNG.png

La 2ª instrucción que pones no entiendo muy bien lo que hace.

Te agradezco mucho la ayuda. Estoy cerca de lo que necesito.

Un saludo y muchas gracias.

Not applicable
Author

También necesito con los valores que resultan de la resta de cada fila ( la columna SAbove de la tabla anterior ) representar una gráfica de este estilo:

grafpot.bmp

JOSE MARIA TOS MIÑANA

Sonia Fernández

Un saludo y gracias.

Not applicable
Author

Hola, alguien tiene algún tipo de solución?

Gracias y un saludo.

cbermejo
Partner - Contributor III
Partner - Contributor III

Hola, lo que está haciendo la segunda expresión que te proponían, es agregar los datos sumados por Semana2:

Sum( Aggr(RangeSum(Above(TOTAL Sum( Aggr(Sum(ValNetoUSD),Fecha)),0,RowNo(TOTAL))),Semana2))

Si reemplazas Semana2 por mMedidor debería funcionar.