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

Filtrar filas por registro de estado para todas las entradas de fecha, hora y unidad relacionadas (tablas de muestra incluidas)

Hola a todos,

Tengo un informe con una tabla de datos simple que contiene una columna datetime, una columna ID y un valor asociado a cada entrada. Existe una relación de varios a uno entre la columna ID de la tabla de datos y una columna Clave de una tabla de hechos. Cada entrada en la tabla de hechos tiene información asociada, como la unidad de la que provienen los datos y lo que mide la etiqueta. Aquí hay una maqueta de cómo se ven mis datos:

TABLA DE HECHOS
UnidadAtributoColumna clave [ 1 : * ]
A1EstadoS1A1Estado
A1RendimientoS1A1Rendimiento
A1TemperaturaS1A1Temperatura
A1PresiónS1A1Presión
A1GastoS1A1Caudal
A2EstadoS1A2Estado
A2RendimientoS1A2Yield
A2TemperaturaS1A2Temperatura
A2PresiónS1A2Presión
A2GastoS1A2Caudal
A3EstadoS1A3Estado
A3RendimientoS1A3Yield
A3TemperaturaS1A3Temperatura
A3PresiónS1A3Presión
A3GastoS1A3Caudal
A4EstadoS1A4Estado
A4RendimientoS1A4Yield
A4TemperaturaS1A4Temperatura
A4PresiónS1A4Presión
A4GastoS1A4Caudal

TABLA DE DATOS
DateTimeID de registro [ * : 1 ]Valor

Estado de ejecución

(la columna que quiero hacer con el resultado deseado)

1/1/2021 0:00S1A1Estado00
1/1/2021 0:00S1A1Rendimiento15.50
1/1/2021 0:00S1A1Temperatura1000
1/1/2021 0:00S1A1Presión20
1/1/2021 0:00S1A1Caudal10000
1/1/2021 0:00S1A2Estado11
1/1/2021 0:00S1A2Yield701
1/1/2021 0:00S1A2Temperatura10001
1/1/2021 0:00S1A2Presión151
1/1/2021 0:00S1A2Caudal200001
1/1/2021 6:00S1A1Estado00
1/1/2021 6:00S1A1Rendimiento100
1/1/2021 6:00S1A1Temperatura750
1/1/2021 6:00S1A1Presión10
1/1/2021 6:00S1A1Caudal5000
1/1/2021 6:00S1A2Estado11
1/1/2021 6:00S1A2Yield711
1/1/2021 6:00S1A2Temperatura12001
1/1/2021 6:00S1A2Presión141
1/1/2021 6:00S1A2Caudal21001
1/1/2021 12:00S1A1Estado11
1/1/2021 12:00S1A1Rendimiento681
1/1/2021 12:00S1A1Temperatura9001
1/1/2021 12:00S1A1Presión101
1/1/2021 12:00S1A1Caudal16001
1/1/2021 12:00S1A2Estado11
1/1/2021 12:00S1A2Yield701
1/1/2021 12:00S1A2Temperatura11501
1/1/2021 12:00S1A2Presión151
1/1/2021 12:00S1A2Caudal20101

Hay una medición de "Estado" en la tabla de hechos asociada con cada unidad. (por ejemplo, el estado de la unidad A1 difiere del estado de la unidad A2, etc.) Esta medición me permite saber si la unidad estaba activa para cada vez en la tabla de datos.

Esto es lo que quiero hacer:

En la tabla de datos, determine si la etiqueta Status está activa ( = 1 ) o inactiva ( = 0 ) para cada fecha y hora de la tabla.

A continuación, en una columna calculada, asigne un valor de 1 o 0 a todas las entradas con el mismo valor datetime y la asignación de unidades relacionada de la tabla de hechos.

He tenido problemas para que DAX asigne el valor de estado a las entradas donde la medida asociada en la tabla de hechos NO ES = "Estado". Creo que esto está sucediendo porque estoy configurando la lógica de la siguiente manera:

-> asignar una variable para determinar la unidad (en la tabla de hechos) asociada con el ID de registro (en la tabla de datos)

-> determinar el valor asociado con la entrada Estado para cada fecha y hora (en la tabla de fechas)

-> para todas las entradas con el mismo valor datetime Y la misma asignación de unidad relacionada, RETURN el valor de estado relacionado determinado anteriormente (este es el paso en el que estoy atascado)

Agradecería enormemente cualquier ayuda para averiguar cómo funcionaría la lógica para este conjunto de datos. Estoy abierto a probar opciones en M y/o DAX (actualmente probando DAX debido a la relación entre las tablas).

¡Gracias!

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Hola

Probé un par de fórmulas y obtuve algo para trabajar usando la función LOOKUPVALUE. Así es como se ve esa función (modificada para encajar con los datos simulados que he incluido en este hilo).

Estado de ejecución =
DÓNDE
fecha relacionada = 'Tabla de datos'[DateTime]
DÓNDE
Unidad relacionada = RELACIONADO( 'Tabla de hechos'[Unidad] )
DÓNDE
runStatus =
LOOKUPVALUE(
'Tabla de datos'[Valor],
'Tabla de hechos'[Atributo], "Estado",
'Tabla de hechos'[Unidad], Unidad relacionada,
'Tabla de datos'[DateTime], fecha relacionada
)
DEVOLUCIÓN
SI( runStatus = 1,
1,
0
)
¡Espero que esto ayude a alguien con un problema similar!

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

Hola

Probé un par de fórmulas y obtuve algo para trabajar usando la función LOOKUPVALUE. Así es como se ve esa función (modificada para encajar con los datos simulados que he incluido en este hilo).

Estado de ejecución =
DÓNDE
fecha relacionada = 'Tabla de datos'[DateTime]
DÓNDE
Unidad relacionada = RELACIONADO( 'Tabla de hechos'[Unidad] )
DÓNDE
runStatus =
LOOKUPVALUE(
'Tabla de datos'[Valor],
'Tabla de hechos'[Atributo], "Estado",
'Tabla de hechos'[Unidad], Unidad relacionada,
'Tabla de datos'[DateTime], fecha relacionada
)
DEVOLUCIÓN
SI( runStatus = 1,
1,
0
)
¡Espero que esto ayude a alguien con un problema similar!
Syndicate_Admin
Administrator
Administrator

Su TABLA DE HECHOS no lo es. Es una tabla de dimensiones.

Del ejemplo adjunto, ¿qué estás tratando de lograr a continuación?

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.