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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
Syndicate_Admin
Administrator
Administrator

filtrar una tabla en varias condiciones asociadas con la segmentación de datos

Hola a todos

Hay dos columnas "Tiempo de implementación" y "Tiempo de error" en mi tabla 'Tabla', ambas en el tipo de fecha / hora. Me gustaría etiquetar cada fila de datos '1' si su "Tiempo de falla" está entre "hora de inicio" y "hora de finalización" O su "Tiempo de implementación" es anterior a "Hora de finalización". Probé algo como esto:

FailureTimeTable = VALUES(Tabla[FailureTime])
MaxFailureTime = MAX(FailureTime[FailureTime])
AllDeploymentTimeTable = VALUES(Table[DeploymentTime])
DeploymentTimeTable = FILTER(AllDeploymentTime, [DeploymentTime]<=[MaxFailureTime])
TimeFilter =
SI (
O (
SELECTEDVALUE ( 'Table'[FailureTime] ) EN ALLSELECTED ( FailureTime[FailureTime] ),
SELECTEDVALUE ( 'Table'[DeploymentTime] ) EN ALLSELECTED ( DeploymentTime[DeploymentTime] )
),
1,
0
)
Utilizo una segmentación de datos en la tabla "FailureTime", por lo que los usuarios pueden seleccionar la "hora de inicio" y la "hora de finalización" a través de la segmentación de datos.
Esperaba que la medida 'TimeFilter' en la tabla 'Table' mostrara 1 si esa fila sigue la regla mencionada anteriormente, de lo contrario 0, pero resulta que el [MaxFailureTime] no puede obtener dinámicamente el valor de la segmentación de datos. ¿Hay alguna manera de solucionar esto?
1 ACCEPTED SOLUTION

Hay @Guan27,

En realidad, puede crear una tabla calculada fácilmente y crear esta medida de segmentación de datos para obtener el resultado basado en la tabla datos

Date table = CALENDARAUTO()
Time Slicer = 
VAR starttime =
    CALCULATE ( MIN ( 'Date table'[Date] ), ALLSELECTED ( 'Date table' ) )
VAR endtime =
    CALCULATE ( MAX ( 'Date table'[Date] ), ALLSELECTED ( 'Date table' ) )
RETURN
    IF (
        OR (
            SELECTEDVALUE ( 'Table'[FailureTime] ) >= starttime
                && SELECTEDVALUE ( 'Table'[FailureTime] ) <= endtime,
            SELECTEDVALUE ( 'Table'[DeploymentTime] ) <= endtime
                && SELECTEDVALUE ( 'Table'[DeploymentTime] ) <> BLANK ()
        ),
        1,
        0
    )

vyingjl_0-1631672926222.png

Saludos
Equipo de apoyo a la comunidad _ Yingjie Li
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

¿Su FailureTime está relacionado con Table? ¿DeploymentTime está relacionado con la tabla?

Vea mi respuesta a este post: https://community.powerbi.com/t5/Desktop/How-to-Create-and-Add-Row-between-dates-and-cut-the-value-b...

Tiene un archivo pbix que puede resultarle útil: puede usar una fórmula similar aquí para comparar las fechas. https://excelwithallison.blogspot.com/2020/06/dax-approximate-lookup.html

Nota: Deberá ser una MEDIDA para actualizar en función de las selecciones de la segmentación de datos.

Hay @AllisonKennedy ,

Creo que esto no resolvió mi problema. Voy a dar un ejemplo de lo que quiero aquí:

Digamos que tenemos datos como este

Guan27_0-1631500727268.png

y si usamos una segmentación de datos para dividir el valor entre 2017.4.1 y 2017.6.2

entonces el TimeFilter debe ser el siguiente porque FailureTime debe estar enlazado por 2017.4.1 y 2017.6.2, pero DeploymentTime solo está limitado por 2017.6.2.

Guan27_1-1631500869123.png

El problema aquí es: quiero usar solo una segmentación de datos en el objeto visual para facilitar la interfaz de usuario (una segmentación de datos debería proporcionar suficiente información porque uso la hora de inicio / finalización en la segmentación de datos para FailureTime y solo la hora de finalización para DeploymentTime)

¿Puede proporcionar un ejemplo de power bi implementando la característica anterior? Soy nuevo en power bi, así que no sé cómo transferir su respuesta a la función que quiero. ¡Gracias de antemano!

Hay @Guan27,

En realidad, puede crear una tabla calculada fácilmente y crear esta medida de segmentación de datos para obtener el resultado basado en la tabla datos

Date table = CALENDARAUTO()
Time Slicer = 
VAR starttime =
    CALCULATE ( MIN ( 'Date table'[Date] ), ALLSELECTED ( 'Date table' ) )
VAR endtime =
    CALCULATE ( MAX ( 'Date table'[Date] ), ALLSELECTED ( 'Date table' ) )
RETURN
    IF (
        OR (
            SELECTEDVALUE ( 'Table'[FailureTime] ) >= starttime
                && SELECTEDVALUE ( 'Table'[FailureTime] ) <= endtime,
            SELECTEDVALUE ( 'Table'[DeploymentTime] ) <= endtime
                && SELECTEDVALUE ( 'Table'[DeploymentTime] ) <> BLANK ()
        ),
        1,
        0
    )

vyingjl_0-1631672926222.png

Saludos
Equipo de apoyo a la comunidad _ Yingjie Li
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel1

Power BI Monthly Update - May 2024

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

Top Solution Authors