Forum Discussion
Problema de poca medida
Hola
Tengo una tabla de datos con las reservas de tiempo de los empleados y una tabla de fechas que están relacionadas a través del campo de fecha.
Necesito dos medidas para calcular el número de ocurrencias del trabajo de fin de semana de acuerdo con las siguientes reglas:
Cada sábado o domingo (Date[IsWeekend]) un empleado trabajó entre 0 y 4 hrs, la medida WE<4 debe ser 1 y en caso de haber trabajado más de 4 hrs la medida WEY4 debe ser 1.
Con mis habilidades, podría resumir todas las horas de los días de fin de semana, donde un empleado trabajó entre 0 y 4 horas. Pero si agrupo por trimestre el número de ocurrencias, obtendría el número total de horas.
Ahí es donde estoy atascado. Así que cualquier ayuda sería genial.
Gracias, Christian
4 Replies
- Syndicate_Admin
Administrator
@_chris_ Parece que en tu medida necesitas RESUMIR por ocurrencia y luego SUMAR a través de ella, básicamente el problema total de una medida. ¿Se pueden publicar datos de muestra como texto? De lo contrario, esto puede ayudar a:
Primero, por favor, vota por esta idea: https://ideas.powerbi.com/ideas/idea/?ideaid=082203f1-594f-4ba7-ac87-bb91096c742e
Esto parece un problema de totales de medida. Muy común. Mira mi post al respecto aquí: https://community.powerbi.com/t5/DAX-Commands-and-Tips/Dealing-with-Measure-Totals/td-p/63376
Además, esta Medida Rápida, Totales de Medida, La Última Palabra debería darte lo que necesitas:
https://community.powerbi.com/t5/Quick-Measures-Gallery/Measure-Totals-The-Final-Word/m-p/547907
También: https://youtu.be/uXRriTN0cfY
Y: https://youtu.be/n4TYhF2ARe8También puede obtener algo de kilometraje de esto. Esto parece un problema de agregación de medidas. Vea el artículo de mi blog sobre eso aquí: https://community.powerbi.com/t5/Community-Blog/Design-Pattern-Groups-and-Super-Groups/ba-p/138149
El patrón es:
MinScoreMeasure = MINX ( SUMMARIZE ( Tabla, Tabla[Grupo] , "Medir",[TuMedida] ), [Medir])
MaxScoreMeasure = MAXX ( SUMMARIZE ( Tabla, Tabla[Grupo] , "Medir",[SuMedida] ), [Medir])
AvgScoreMeasure = AVERAGEX ( SUMMARIZE ( Tabla, Tabla[Grupo] , "Medir",[SuMedida] ), [Medir])
etc. - Syndicate_Admin
Administrator
Hi, @Greg_Deckler,
En primer lugar, muchas gracias por su respuesta. Traté de seguir sus enlaces, pero no lo logré. A la hora de calcular los totales, no necesito referirme al número de horas sino al número de ocurrencias. Esto hace que sea difícil para mí entenderlo.
Así que decidí publicar los datos como texto y pedirte que me ayudes de nuevo:
Tabla de hechos:
Fecha StaffId Horas Proyecto 07.10.2023 5376 2 bla1 Sábado 07.10.2023 5376 5 bla2 Sábado 13.10.2023 5376 5 bla1 Viernes 13.10.2023 5376 3 bla2 Viernes 14.10.2023 5376 2 bla1 Sábado 14.10.2023 5376 1 bla2 Sábado 15.10.2023 5376 3 bla1 Domingo 15.10.2023 5376 4 bla2 Domingo Esa es mi tabla de fechas:
Fecha IsWeekend 07.10.2023 1 08.10.2023 1 09.10.2023 0 10.10.2023 0 11.10.2023 0 12.10.2023 0 13.10.2023 0 14.10.2023 1 15.10.2023 1 Y ese es el resultado esperado:
Fecha StaffId Horas NOSOTROS>4 NOSOTROS<4 07.10.2023 5376 7 1 0 13.10.2023 5376 8 0 0 14.10.2023 5376 3 0 1 15.10.2023 5376 7 1 0 Sería genial si pudieras investigarlo, ¡gracias!
Por cierto: ¡Voté a favor de la solicitud de la función
Gracias, Christian
- Syndicate_Admin
Administrator
Estos son los pasos que puedes seguir:
1. Crear medida.
WE<4 = var _sum= IF( MAX('Table'[Day of Week]) in {"Saturday","Sunday"}, SUMX( FILTER(ALL('Table'), 'Table'[Date]=MAX('Table'[Date])),[Hours]),BLANK()) return IF( _sum >=0 && _sum <=4&&_sum <>BLANK(),1,0)WE>4 = var _sum= IF( MAX('Table'[Day of Week]) in {"Saturday","Sunday"}, SUMX( FILTER(ALL('Table'), 'Table'[Date]=MAX('Table'[Date])),[Hours]),BLANK()) return IF( _sum >4&&_sum <>BLANK(),1,0)2. Resultado:
Saludos
Liu Yang
Si esta publicación ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente
- Syndicate_Admin
Administrator
Hola, gracias, ¡esto funciona perfectamente!