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.

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!

May UG Leader Call Carousel 768x460.png

What difference can a User Group make for you?

At the monthly call, connect with other leaders and find out how community makes your experience even better.

Power BI Release May 2022 768x460.png

Check it out!

Click here to read more about the May 2022 updates!

Top Kudoed Authors