Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

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 Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.