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
Power BI December 2021 Update_carousel 768x460.jpg

Check it Out!

Click here to read more about the December 2021 Updates!

User Group Leader Meeting January 768x460.png

Calling all User Group Leaders!

Don't miss the User Group Leader meetings on January, 24th & 25th, 2022.

Jan 2022 Dev Camp 768x460 copy.png

Power BI Dev Camp- January 27th, 2022

Mark your calendars and join us for our next Power BI Dev Camp!