Calcular datos a partir de medidas absolutas

Un usuario Pregunto ✅

isidnis

Hola,

No puedo encontrar una solución para una pregunta probablemente muy simple. Tengo una tabla con una medida absoluta de un contador de servicios públicos con la marca de tiempo cuando se midió, por ejemploAnotación 2019-08-26 130442.png

La clave es que el valor medido siempre aumenta. Lo que me gustaría hacer es buscar información sobre el consumo, por ejemplo, cuánto se ha consumido este mes, cuál es la diferencia entre meses, consumo promedio por día, etc. Las marcas de tiempo son bastante aleatorias y es posible que falten algunas.

Hola @isidnis

Probablemente lo más fácil sea crear una columna calculada adicional con solo el día (es decir, descartando la hora):

DayColumn = INT(Table1[Timestamp])

y haga que el nuevo tipo de columna sea date. Luego, cree una tabla de fechas estándar y podrá configurar muchas de las cosas que está describiendo fácilmente. Por ejemplo, consumo medio por día:

1. Establecer Table1[DayColumn] en las filas de una matriz visual

2. Crea una medida y colócala en la matriz:

AverageMeasure = AVERAGE(Table1[Measure])

isidnis

En respuesta a Alba

Muchas gracias por tu respuesta, mi problema es que la medida es un valor absoluto de un contador. Entonces, el consumo promedio por día sería (Valor al final del día 1 – Valor al comienzo del día 1) + (Valor al final del día 2 – Valor al comienzo del día 2) … … / (Número de días con datos)

En respuesta a isidnis

Nos ayudaría y nos ahorraría tiempo si describiera en detalle lo que necesita desde el principio, como lo ha hecho ahora. A continuación, puede crear una medida y colocarla en una imagen de tarjeta (aún usando la nueva columna calculada descrita anteriormente):

Measure2 =
AVERAGEX (
    DISTINCT ( Table1[DayColumn] ),
    VAR ValBeginDay_ =
        CALCULATE ( MIN ( Table1[Measure] ) )
    VAR ValEndDay_ =
        CALCULATE ( MAX ( Table1[Measure] ) )
    RETURN
        ValEndDay_ - ValBeginDay_
)

isidnis

En respuesta a Alba

Perdón por la falta de información, soy bastante nuevo en toda esta área 🙂

Intentaré ser más específico. La tabla que tengo tiene en realidad 3 columnas deviceid: que identifica el contador de la utilidad, la marca de tiempo de la medida y la medida absoluta del contador que es un número que aumenta cada vez que un usuario consume electricidad.

Anotación 2019-08-26 163123.png

Lo que quiero lograr (tu última fórmula no funcionó) es algo como:

Anotación 2019-08-26 163853.png

Estaba pensando en tener una columna con valores diferenciales de cada día,

DAY CONDUMPTION = MAX(Table[Measure])-(CALCULATE(MAX(Table[Measure]),PREVIOUSDAY(Table[DayColumn]))

Pero tampoco funciona.

Perdón de nuevo por el malentendido

Anónimo

En respuesta a isidnis

Debe crear una tabla de hechos que se mantendrá cada día para cada ID de dispositivo y debe * interpolar * linealmente el consumo de cada día. Entonces podrás calcular FÁCILMENTE el consumo de alguna período de tiempo.

Si no lo hace de la manera que le digo, tendrá que luchar con DAX para que sea más complejo y lento de lo que debería ser. En otras palabras, la granularidad de su hecho debe ser El dia, no días con lagunas.

Puede crear la tabla de hechos con Power Query (M). No debería ser difícil. Recuerde: la clave para un modelo simple y correcto es INTERPOLACIÓN LINEAR.

Mejor
D.

isidnis

En respuesta a Anónimo

Gracias por tu ayuda. Probablemente fuera de mi conjunto de habilidades para hacer interpolación lineal en consultas de energía. Pude obtener una tabla con solo una medida por día, pero no estoy seguro de cómo obtener una columna que tenga el valor incremental en la consulta de energía. Lo he podido hacer con una medida.

Anónimo

En respuesta a isidnis

La forma de hacerlo en PQ es esta. Digamos que tiene un día a con una lectura de A y un día b con una lectura de B (A [a0a1)[a2a3))Soyouhavetonowcreatena=a0a1a(n-1)=b-1daysandallocatetotheminalinearfashiontheconsumptionofB-AEachdaywillhaveaconsumptionof(B-A)/nandthisisthelinearinterpolationIwastalkingaboutNowthisproceduremustbecarriedoutforeachandeverypairofconsecutivedays

Mejor
D.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *