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.
Hola POWER BI Team,
Necesito su ayuda en un proyecto y haré todo lo posible para explicar el resultado deseado.
Mi empresa está estructurada en 3 Unidades de Negocio (BUs) - BU A, BU B, BU C, y tenemos un informe que muestra los resultados en toda la empresa a nivel estatal y nivel de BUs.
Una de las métricas que necesito es el número de trabajo promedio diario por grupo de empleados por estado y BU. En mi conjunto de datos, el número de trabajos se sume por empleado y fecha. Simplemente utilicé la columna donde se cuenta el número de trabajos y utilicé la función AVERAGE cuando la columna se coloca en FIELD en VALUE.
Los resultados se muestran utilizando un MATRIX y en la parte superior, tengo una SLICER que permite al usuario ver los resultados para toda la empresa o seleccionar un BU específico.
Ahora, donde estoy atascado es que para BU A SOLAMENTE, si un empleado ha completado menos de 3 trabajos al día, entonces deben ser excluidos del promedio para ese día. No sé en absoluto cómo hacer esto.
Espero tener sentido y que alguien pueda ayudar?
Gracias.
Hola
Comparta algunos datos y muestre el resultado esperado.
Hola @corange ,
Intente utilizar esta medida:
average =
VAR _avg =
CALCULATE (
AVERAGE ( 'Table'[value] ),
ALLEXCEPT ( 'Table', 'Table'[BUs], 'Table'[state] )
)
RETURN
IF (
SELECTEDVALUE ( 'Table'[BUs] ) = "BU A",
CALCULATE (
AVERAGEX (
FILTER ( 'Table' , NOT ( 'Table'[value] < 3 && 'Table'[BUs] = "BU A" ) ),
'Table'[value]
),
ALLEXCEPT ( 'Table', 'Table'[BUs], 'Table'[state] )
),
_avg
)
Cuando la segmentación es BU A, filtrará los valores que < 3 para calcular el promedio basado en el estado y BU
Aquí está mi tabla de muestra y el resultado:
Adjunto mi archivo de muestra que espera ayudarle: Filtrar en Aggeration.pbix
Best Looks,
Yingjie Li
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @Yingjie Li,
Gracias. ¿Podría escribir explícitamente la agregación con los datos y ver cómo obtenemos los siguientes resultados cuando no se selecciona nada en la segmentación de datos?
La regla de menos de 3 puestos de trabajo para BU A todavía tendría que aplicarse en la visión general también cuando no se selecciona ningún filtro de la segmentación de datos y queremos ver los resultados para toda la organización. ¿Esto se hace automáticamente usando su medida?
Muchas gracias por su ayuda.
Hola @corange ,
Intente modificar la medida así para mostrar el promedio inicial correcto si no hay BU seleccionado en la segmentación de datos:
average =
VAR _avg =
AVERAGE ( 'Table'[value] )
RETURN
IF (
NOT ( ISFILTERED ( 'Table'[BUs] ) ),
_avg,
IF (
SELECTEDVALUE ( 'Table'[BUs] ) = "BU A",
CALCULATE (
AVERAGEX (
FILTER ( 'Table', NOT ( 'Table'[value] < 3 && 'Table'[BUs] = "BU A" ) ),
'Table'[value]
),
ALLEXCEPT ( 'Table', 'Table'[BUs], 'Table'[state] )
),
_avg
)
)
Best Looks,
Yingjie Li
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola
Gracias por tu respuesta, pero no la entiendo.
Según la muestra que ha enviado a través, el resultado deseado sería no incluir nada por debajo o igual a 3 en cualquier cálculo y seguir siendo capaz de ver los resultados con la misma regla al seleccionar un BU específico.
Por ejemplo, utilizando la última medida que ha enviado a través de:
El resultado deseado sería tener el cálculo sin incluir la primera fila donde el valor es dos. Esto pertenece a BU A, así y el promedio es 3 que significa que está siendo incluido en mi promedio.
Quiero poder aplicar la regla y ver el resultado general para la empresa o seleccionando un BU.
Hola @corange ,
Por favor, hágamelo saber si desea filtrar todos los datos que valores> 3 antes de calcular el promedio.
Si es así, simplemente cree una medida como esta:
Measure =
VAR tab =
SUMMARIZE (
FILTER ( 'Table', 'Table'[value] >= 3 ),
'Table'[BUs],
'Table'[date],
'Table'[state],
'Table'[employee],
'Table'[value]
)
RETURN
AVERAGEX ( tab, [value] )
Best Looks,
Yingjie Li
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @corange ,
Si desea filtrar <-3 sólo elija BU A y calcular el promedio noramlly si no se ha seleccionado bu, creo que mi medida publicada anterior [promedio] lo ha logrado.
Best Looks,
Yingjie Li
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola v-yingjl ,
Sólo para aclarar las cosas, quiero que el <- 3 se elimine de todos los cálculos, no importa si selecciono BU A o no. En la tabla de resumen, si se seleccionan todas las BUs, entonces seguirá eliminando <-3 para BU A y presentará los resultados para todos y al seleccionar BU A, entonces también eliminará <-3 y presentará el resultado.
Entonces, ¿con qué medida debo ir?
donde estoy confundido es los resultados que está recibiendo para su promedio. No coincide con lo que esperaría. ¿Qué podemos hacer para aclarar la situación y asegurarnos?
Gracias.
Hola @corange ,
Basándome en su descripción, quiero confirmar algo basado en mi muestra:
Si mi entendimiento sigue siendo parcialmente incorrecto, por favor hágamelo saber para ayudarle mejor.
Best Looks,
Yingjie Li
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @v-yingjl ,
Por favor, vea a continuación
<< Basado en su descripción, quiero confirmar algo basado en mi muestra:
Espero que esto ayude.
Gracias.
Hola @corange ,
Si solo se considera que se seleccionan una o todas las segmentaciones, creo que la siguiente medida debería funcionar:
Measure =
VAR _avg =
CALCULATE (
AVERAGEX (
FILTER ( 'Table', 'Table'[value] >= 3 || 'Table'[BUs] <> "BU A" ),
'Table'[value]
),
ALLEXCEPT ( 'Table', 'Table'[BUs], 'Table'[state] )
)
VAR _avgA =
CALCULATE (
AVERAGEX (
FILTER ( 'Table', NOT ( 'Table'[value] < 3 && 'Table'[BUs] = "BU A" ) ),
'Table'[value]
),
ALLEXCEPT ( 'Table', 'Table'[BUs], 'Table'[state] )
)
VAR _avgother =
AVERAGE ( 'Table'[value] )
RETURN
IF (
HASONEFILTER ( 'Table'[BUs] ),
IF (
NOT ( ISFILTERED ( 'Table'[BUs] ) ),
_avg,
IF ( SELECTEDVALUE ( 'Table'[BUs] ) = "BU A", _avgA, _avgother )
),
_avg
)
Archivo de muestra adjunto: Filtro en Aggreation.pbix
Best Looks,
Yingjie Li
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @v-yingjl ,
No entiendo cómo se obtiene un promedio de 4.80 cuando sólo 4 debe ser considerado?
¿De dónde viene la 0.80?
Gracias.
Hola @v-yingjl ,
Además, podemos ver que todos los promedios son similares en todos los Estados y Empleados. No parece correcto en absoluto.
El trabajo <-3 para BU A se aplica sin importar si selecciono la BU A para ver los promedios o si quiero ver los promedios en toda la BU. Cuando un empleado realiza menos de 3 trabajos al día en BU A, se elimina automáticamente del cálculo.
@corange , Tienes que probar algo como esto
AverageX(filter(summarize(Table, Table[employee], "_sum" ,sum(Table[No of jobs])),[_sum]>3),[_sum])
O
AverageX(filter(summarize(Table, Table[employee], "_sum" ,sum(Table[No of jobs])),[_sum]>3),divide([_sum],count([employee])))
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |