The ultimate Microsoft Fabric, Power BI, Azure AI, and SQL learning event: Join us in Stockholm, September 24-27, 2024.
Save €200 with code MSCUST on top of early bird pricing!
Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
He creado correctamente un cálculo de diferencia horaria en Power BI, pero estoy buscando agregar una columna condicional. Quiero que la nueva columna tenga si la suma entre ceros es menor que 1, el valor es 0. Si la suma entre ceros es mayor que 1, me gustaría que los valores siguieran siendo los mismos que los originales. Si el valor original es 0, el valor permanece como 0. ¿Cómo puedo lograrlo en Power BI?
por ejemplo
Igualmente
Este es el enlace de mi archivo https://drive.google.com/file/d/1mgo5Iusx_2AlaMxLo6QJ1on0PrgYAOqS/view?usp=sharing
¡Hola! @v-nuoc-msft
¡Gracias por su útil respuesta! Realmente resolvió el problema al que me enfrentaba.
¡Era exactamente lo que necesitaba para resolver mi problema!
Usar Power Query, agregar una columna como valor de índice
Si el valor del índice es menor o igual que el valor del índice actual y temp es 0, se devuelve el valor máximo del índice
max_index = CALCULATE (
max ('Table'[Index] ),
FILTER('Table', 'Table'[Index] <=EARLIER('Table'[Index]) && 'Table'[temp] = 0)
)
Cuando temp es 0, devuelve 0 y group_index cuando no es igual a 0
group_index = IF([temp] = 0, 0, [max_index])
Suma temporal para el mismo valor de columna
temp_value = SUMX(FILTER('Table', 'Table'[group_index] = EARLIER('Table'[group_index])), [temp])
Determine si la suma de valores entre 0 es mayor que 1 y devuelva el valor requerido
result = IF([temp_value] = 0, 0, if([temp_value] < 1, 0, if([temp_value] > 1, [temp])))
Por último, puedes hacer un informe para mostrar el resultado
Saludos
Noveno Chen
Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
¡HOLA! @amitchandak
Pido disculpas por no expresarme con claridad. Algunas partes no eran precisas y había inexactitudes en los datos que proporcioné. Aquí hay un enlace a una versión más precisa.
En primer lugar, WorkHourTemp se utiliza para observar el proceso de funcionamiento de la máquina.
El proceso de determinación de WorkHourTemp:
"Fichaje de evento" significa que alguien detecta y enciende la máquina.
"Event clock-out" indica que alguien detecta y detiene la máquina.
En este proceso:
Si el 'fichaje' se produce antes del 'fichaje de salida', significa que alguien está operando la máquina. Si el sensor detecta un cambio de mv mayor que 1, calcula WorkHour, representando al personal que opera la máquina y realiza acciones específicas.
Si el 'reloj de salida' ocurre antes del 'reloj de entrada', implica que nadie opera la máquina. Incluso si el sensor detecta un cambio de mv, no se calculará la hora de trabajo.
Usando la Máquina 2 como ejemplo:
Hay dos escenarios:
Primer escenario:
El marco de tiempo con cuadro azul para la máquina 2 comienza a las 12:02 a. m. del 23 de julio de 2023 y finaliza a las 12:12 a. m. del mismo día. Este período solo representa 0,17 horas, teóricamente considerado un período de prueba, ya que generalmente concluimos las pruebas de la máquina dentro de 1 hora.
Segundo escenario:
El marco de tiempo en el cuadro rojo para la máquina 2 comienza a las 10:24 a. m. y finaliza a las 12:10 p. m. del 23 de julio de 2023. Este período incluye un tiempo de funcionamiento real de 0,68 horas + 1,08 horas, claramente no es un período de prueba.
El cálculo de 0,68 y 1,08 surge de los cambios de mv detectados por el sensor. Por lo tanto, WorkHourTemp registra estas dos entradas de datos.
Actualmente, mi objetivo es excluir el período de prueba y calcular solo el tiempo real que el personal operó la máquina, eliminando así el primer escenario. En otras palabras, preferiría que no se incluyera el valor de 0,17 horas, conservando solo los valores de 0,68 horas + 1,08 horas para determinar el tiempo operativo real, excluyendo el período de prueba.
Revisando la máquina 1:
Hay cuatro instancias en un recuadro rojo que indican que entre el "registro de entrada" y el "registro de salida", el personal utilizó la máquina para cuatro acciones específicas.
La suma de los tiempos dentro de estos cuadros rojos es evidentemente más de 1 hora, lo que significa períodos sin pruebas.
Sin embargo, la suma de tiempo dentro del área de caja azul de la máquina 1 no supera 1 hora. Por lo tanto, agradecería un método para excluir los valores dentro de los recuadros azules, manteniendo solo el tiempo total del personal operando la máquina para acciones específicas.
Nota adicional: Durante el período de prueba, el sensor registra un máximo de 15 entradas de datos en 1 hora.
@Bubufun , Suponiendo que WorkHourTemp es una medida, cree una medida como
AverageX(Summarize(Table, Table[Name], Table[UTC], Table[Event], "_1", Switch(True(), [WorkHourTemp]<1, 0,1 )), [_1])
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Check out the August 2024 Power BI update to learn about new features.
Learn from experts, get hands-on experience, and win awesome prizes.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |