Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
4 years ago
Solved

Countrows incorrecto

Hola Comunidad,

Tengo una medida para calcular el total de licencias tomadas que excluye los fines de semana y días festivos. Countrows no es un resultado correcto.

Por ejemplo, en diciembre, emp 12 tomó 21 hojas no 13

ExcelPBI_0-1642146848463.png

Mi archivo PBI de ejemplo: https://1drv.ms/u/s!Ag919_pO_UKrgSjIVaFeSDgQFcn1?e=lCvuJq

Su ayuda es muy apreciada.

Gracias

  • @ExcelPBI , Prueba como

    Total Leaves = 
    CALCULATE( SUMX (
        ADDCOLUMNS (
            SUMMARIZE ( 'Emp Leave', 'Emp Leave'[emp_code], 'Emp Leave'[date_start], 'Emp Leave'[date_end] ),
            "diff",
                COUNTROWS (
                    FILTER (
                        Datedim,
                        Datedim[Date] >=  ( 'Emp Leave'[date_start] )
                            && Datedim[Date] <=  ( 'Emp Leave'[date_end] ) && datedim[working days]=1
                    )
                )
        ),
        [diff]
    ), CROSSFILTER('Emp Leave'[date_start],datedim[Date],None))

2 Replies

  • @ExcelPBI , Prueba como

    Total Leaves = 
    CALCULATE( SUMX (
        ADDCOLUMNS (
            SUMMARIZE ( 'Emp Leave', 'Emp Leave'[emp_code], 'Emp Leave'[date_start], 'Emp Leave'[date_end] ),
            "diff",
                COUNTROWS (
                    FILTER (
                        Datedim,
                        Datedim[Date] >=  ( 'Emp Leave'[date_start] )
                            && Datedim[Date] <=  ( 'Emp Leave'[date_end] ) && datedim[working days]=1
                    )
                )
        ),
        [diff]
    ), CROSSFILTER('Emp Leave'[date_start],datedim[Date],None))
  • Hola

    Un pequeño ajuste en el modelo, creando una tabla como esta (aunque es mejor crearla en la fuente):

    Emp Leave RelevantDays = -- SELECTCOLUMNS not necessary
    SELECTCOLUMNS (
        GENERATE (
            'Emp Leave',
            DATESBETWEEN( datedim[Date], 'Emp Leave'[date_start], 'Emp Leave'[date_end] )
        ),
        "emp_code", 'Emp Leave'[emp_code],
        "RelevantDates", 'datedim'[Date]
    )

    Puede facilitar el código DAX:

    Solution 2 = 
    CALCULATE (
        COUNTROWS ( 'Emp Leave RelevantDays' ),
        datedim[working days] = 1
    )

    Ver ficha aquí.

    Saludos