es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Filtrado dinámico basado en el valor seleccionado en un slicer en Power BI

Estoy intentando crear una tabla calculada donde los datos se toman de otra tabla y se calcula el promedio en función del nombre de usuario, el promedio total y la variación entre estas dos columnas.

Para crear una tabla, utilicé el siguiente DAX en Power BI que calcula el promedio en función del nombre de usuario.

scanner_speed_average_calculation = 
    SUMMARIZE(scanner_speed
        ,scanner_speed[user_name]
        ,"Average"
        ,AVERAGE(scanner_speed[order_processed]))

Para calcular el grupo_promedio, utilicé el siguiente DAX:

group_average = 
    SUMMARIZE(
        scanner_speed
        , "Group Avg"
        , average(scanner_speed[order_processed]))

Y finalmente, para calcular la variación, utilicé esta consulta:

Variance = scanner_speed_average_calculation[Average] - scanner_speed_average_calculation[group_average]

A continuación se muestra el resultado de estos cálculos.

Resultado de cálculos

Quiero poder hacer que estos cálculos sean dinámicos en función del valor seleccionado de la fecha. La tabla de donde tomé estos cálculos tiene el valor de la fecha. Quiero poder usar un rango de fechas en el filtro y quiero que estos valores cambien según el rango de fechas seleccionado. Intenté algunas cosas con Filter y Selectedvalue, pero no estoy seguro si los usé correctamente.

A continuación se muestra una tabla principal de donde obtuve todos estos cálculos.

Tabla principal

A continuación se muestra una visualización de dónde quiero el grupo_promedio y la variación. Quiero poder usar un rango de fechas y estas columnas deberían cambiar en consecuencia.

Visualización

Cualquier idea o ayuda será apreciada. Si es posible, por favor incluya la fórmula completa. Soy aún un principiante en el mundo de DAX. Gracias de antemano.

power bi file

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para hacer que los cálculos sean dinámicos en función del rango de fechas seleccionado, puedes utilizar las siguientes fórmulas DAX:

    • Para filtrar la tabla “scanner_speed” en función del rango de fechas seleccionado:
    scanner_speed_filtered = 
    FILTER(scanner_speed
        ,scanner_speed[date] >= MIN(DateTable[date])
        && scanner_speed[date] <= MAX(DateTable[date]))
    

    Aquí, “DateTable” es la tabla que contiene el rango de fechas seleccionado por el usuario a través del segmentador.

    • Para calcular la velocidad promedio de cada usuario durante el rango de fechas seleccionado:
    scanner_speed_average_calculation_filtered = 
    SUMMARIZE(scanner_speed_filtered
        ,scanner_speed_filtered[user_name]
        ,"Average"
        ,AVERAGE(scanner_speed_filtered[order_processed]))
    

    Esto es similar a la fórmula “scanner_speed_average_calculation”, pero solo considera los registros dentro del rango de fechas seleccionado.

    • Para calcular el promedio del grupo durante el rango de fechas seleccionado:
    group_average_filtered = 
    SUMMARIZE(scanner_speed_filtered
        ,"Group Avg"
        ,AVERAGE(scanner_speed_filtered[order_processed]))
    

    Esto es similar a la fórmula “group_average”, pero solo considera los registros dentro del rango de fechas seleccionado.

    • Para calcular la varianza entre las velocidades promedio de los usuarios y el promedio del grupo durante el rango de fechas seleccionado:
    Variance_Filtered = 
    CALCULATE(
        [Average] - [Group Avg]
        ,scanner_speed_average_calculation_filtered
    )
    

    Aquí, estamos utilizando la función CALCULATE para calcular la varianza para la tabla filtrada “scanner_speed_average_calculation_filtered”.

    Finalmente, puedes utilizar las tablas “scanner_speed_average_calculation_filtered”, “group_average_filtered” y “Variance_Filtered” en tus visualizaciones para mostrar los cálculos dinámicos basados en el rango de fechas seleccionado.

    Nota: Asegúrate de establecer la relación de “DateTable” con la columna de fecha en la tabla “scanner_speed” para que el segmentador funcione correctamente.

    ¡Espero que esto sea de ayuda!

Comments are closed.