cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Cálculo de la duración entre filas por tagname

Hola

Tengo un problema, y no pude encontrarlo inmediatamente en este foro.

Tengo muchos datos de un sensor de luz, y queremos saber el % de las veces que estaba dando una señal (valor = 1).

Tenemos tres sensores: LDR1, LDR y LDR3. Cada vez que uno cambia, obtenemos los valores de los tres sensores.

Así que tengo que tomar la suma de la duración por sensor cuando da valor 1, y devide por el tiempo total de lectura.

Por ejemplo:

LDR2 da el valor 1 desde 4/08/21 a las 14:48:51 hasta 4/08/21 14:48:58 (ver imagen a continuación). Así que esto da una duración de 0:00:07.

Schermafbeelding 2021-08-24 130007.png

Gracias de antemano.

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

@vrmntmtt
Este es el error es porque se compara un entero con un valor de texto, por favor comparta una muestra en un formato que podemos copiar y pasado, por lo que podemos probar para llegar a su resultado esperado.

Paul Zheng _ Equipo de soporte de la comunidad

Hola

Perdón por la respuesta tardía. Pero lo resolví hace un tiempo.

Hice una columna calculada 'detenido en' y selecciona la siguiente fecha diferente. Excepto al final, Power BI usa Now

Utilicé la siguiente fórmula:

Stopped_at = SI(CALCULAR(MIN('8xLight_B2'[received_at]), FILTRO('8xLight_B2',[received_at] <> ANTERIOR([received_at]) && [received_at] > ANTERIOR('8xLight_B2'[received_at])))>0,CALCULAR(MIN('8xLight_B2'[received_at]), FILTRO('8xLight_B2',[received_at] <> ANTERIOR([received_at]) && [received_at] > ANTERIOR('8xLight_B2'[received_at]))),AHORA())
Luego hice otra columna calculada que toma la diferencia de tiempo entre la hora de inicio y finalización.
vrmntmtt_0-1635433436084.png

Syndicate_Admin
Administrator
Administrator

@vrmntmtt , Cree una nueva columna como esta y use eso

Nueva columna =
var _max = maxx(filter(Table, [received_at] <earlier([received_at]) && [Tag] =earlier([Tag]) ),[received_at])
var _val = maxx(filter(Table, [received_at] =_max && [Tag] =earlier([Tag]) ),[value])
devolución
if(_val =1 && [Valor]=1 , datediff(_max,received_at, second), blank())

@amitchandak Gracias por su treply rápido.

Sin embargo, la formulación da un error en el texto subrayado:

Nueva columna =
var _max = maxx(filter(Table, [received_at] <earlier([received_at]) && [Tag] =earlier([Tag]) ),[received_at])
var _val = maxx(filter(Table, [received_at] =_max && [Tag] =earlier([Tag]) ),[value])
devolución
if(_val =1 && [Valor]=1 , datediff(_max,received_at, second), blank())

Actualizar:

Estaba trabajando en la consulta, no en el formato de datos para agregar una columna (lo siento).

Pero recibí el siguiente error al agregar la columna: las operaciones de comparación de DAX no admiten la comparación de valores de tipo Text con valores de tipo Integer. Considere la posibilidad de utilizar la función VALUE o FORMAT para convertir uno de los valores.

Helpful resources

Announcements
Microsoft Build 768x460.png

Microsoft Build is May 24-26. Have you registered yet?

Come together to explore latest innovations in code and application development—and gain insights from experts from around the world.

May 23 2022 epsiode 5 without aka link.jpg

The Power BI Community Show

Welcome to the Power BI Community Show! Jeroen ter Heerdt talks about the importance of Data Modeling.

Power BI Dev Camp Session 22 with aka link 768x460.jpg

Check it out!

Mark your calendars and join us on Thursday, May 26 at 11a PDT for a great session with Ted Pattison!

charticulator_carousel_with_text (1).png

Charticulator Design Challenge

Put your data visualization and design skills to the test! This exciting challenge is happening now through May 31st!

Top Kudoed Authors