Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
3 years ago

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

  • @_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/n4TYhF2ARe8

    Tambié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.

  • 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:

    FechaStaffIdHorasProyecto
    07.10.202353762bla1Sábado
    07.10.202353765bla2Sábado
    13.10.202353765bla1Viernes
    13.10.202353763bla2Viernes
    14.10.202353762bla1Sábado
    14.10.202353761bla2Sábado
    15.10.202353763bla1Domingo
    15.10.202353764bla2Domingo

    Esa es mi tabla de fechas:

    FechaIsWeekend
    07.10.20231
    08.10.20231
    09.10.20230
    10.10.20230
    11.10.20230
    12.10.20230
    13.10.20230
    14.10.20231
    15.10.20231

    Y ese es el resultado esperado:

    FechaStaffIdHorasNOSOTROS>4NOSOTROS<4
    07.10.20235376710
    13.10.20235376800
    14.10.20235376301
    15.10.20235376710

    Sería genial si pudieras investigarlo, ¡gracias!

    Por cierto: ¡Voté a favor de la solicitud de la función

    Gracias, Christian

  • @_chris_ ,

    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