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

Mostrar rendimiento individual vs. promedio de equipo con slicer

Hola Comunidad!

Resumen: Estoy tratando de mostrar el recuento promedio de actividades completadas por persona por hora para todo un equipo en comparación con un individuo seleccionado en la misma gráfica usando una segmentación de datos.

Mis datos se ven algo así. Cada actividad tiene una identificación única y quiero un recuento para cada individuo en cada hora y luego el promedio por persona y hora.

amhiggins_0-1620746218838.png

El recuento individual es bastante directo - sólo un recuento distinto de id. Luego creé una medida para calcular el promedio por persona y hora que funciona bien cuando se seleccionan todos los miembros del equipo, pero cambia para mostrar solo a un miembro del equipo cuando se elige un miembro del equipo. ¿Puede alguien ayudarme a resolver esto? Siento que mi medida está equivocada o necesito un modelo de datos elegante que simplemente no estoy viendo.

Aquí está la medida para el recuento promedio por persona y día que estoy usando. Agregué el ALL() para tratar de ignorar la segmentación de datos para esta medida, pero que no está funcionando (es el ALL() en el lugar equivocado?).

Avg by Person by Hour = AVERAGEX(
    SUMMARIZE(
        'Table',
        'Table'[Owner],
        'Table'[Actual End by Hour],
        "Hourly Count", CALCULATE(DISTINCTCOUNT('Table'[id]), ALL('Table'[Owner]))
    ),
    [Hourly Count]
)

Cuando se selecciona a todas las personas, obtendo el recuento que quiero:

(Tenga en cuenta que estas gráficas muestran un solo día)

amhiggins_1-1620746589763.png

Pero cuando elacciono sólo una persona, la medida promedio cambia a ser sólo esa persona.

amhiggins_2-1620746675642.png

Cualquier ayuda es muy apreciada!

1 ACCEPTED SOLUTION

No @amhiggins,

Pruebe el código siguiente:

Avg by Person by Hour =
AVERAGEX (
    CALCULATETABLE (
        SUMMARIZE (
            'Table',
            'Table'[Actual End By hour],
            'Table'[Owner],
            "@IDCount", DISTINCTCOUNT ( 'Table'[ID] )
        ),
        ALL ( 'Table'[Owner] )
    ),
    [@IDCount]
)

View solution in original post

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

No @amhiggins,

Debe utilizar todo en el resumen no en el CALCULATE. La medida se basa en el contexto y desea calcular los valores de cada uno de los persos dentro de la selección, lo que está haciendo es seleccionar primero los valores filtrados por persona y calcular los valores para toda la selección.

Debe hacer lo contrario, así que primero seleccione todos los datos y, a continuación, realice el cálculo:

Avg by Person by Hour = AVERAGEX(
    SUMMARIZE(
        ALL('Table'),
        'Table'[Owner],
        'Table'[Actual End by Hour],
        "Hourly Count", DISTINCTCOUNT('Table'[id])
    ),
    [Hourly Count]
)

Tenga en cuenta que es posible que deba utilizar ALLSELECTED en lugar de todo debido al contexto de transicción:

Avg by Person by Hour = AVERAGEX(
    SUMMARIZE(
        ALLSELECTED('Table'),
        'Table'[Owner],
        'Table'[Actual End by Hour],
        "Hourly Count", DISTINCTCOUNT('Table'[id])
    ),
    [Hourly Count]
)

¡Gracias por la respuesta! Cuando muevo el ALL hacia arriba en el resumen pierdo la granularidad del cálculo por hora - sólo me da un único cálculo promedio que es el mismo para cada hora - ¿hay alguna manera de mantener el cálculo hora a hora?

También tengo algunos otros filtros que me gustaría conservar en los datos (como la fecha) así que intenté usar el siguiente comando, pero hacer esto hace que el valor cambie cuando uso la segmentación de datos Person - ¿estoy usando ALLEXCEPT incorrectamente?

Avg by Person by Hour = AVERAGEX(
    SUMMARIZE(
        ALLEXCEPT('Table', [OTHER-FILTERED-COLUMNS...]),
        'Table'[Owner],
        'Table'[Actual End by Hour],
        "Hourly Count", DISTINCTCOUNT('Table'[id])
    ),
    [Hourly Count]
)

No @amhiggins,

Pruebe el código siguiente:

Avg by Person by Hour =
AVERAGEX (
    CALCULATETABLE (
        SUMMARIZE (
            'Table',
            'Table'[Actual End By hour],
            'Table'[Owner],
            "@IDCount", DISTINCTCOUNT ( 'Table'[ID] )
        ),
        ALL ( 'Table'[Owner] )
    ),
    [@IDCount]
)

Lamentablemente, ese cálculo cambia cuando selecciono a una persona en la segmentación de datos. 😞

No @amhiggins,

¿Puede compartir un archivo de ejemplo? Hice un archivo de prueba y trabajo correctamente.

Fui a crear el archivo de ejemplo y encontré que uno de mis otros filtros en la página estaba causando el problema con su última sugerencia - Parece que la última fórmula hará exactamente lo que quiero!!

¡Muchas gracias por su ayuda!

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.