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

Medida para encontrar a los empleados activos en función del crédito salarial

Tengo la siguiente tabla relacionada con el salario de los empleados.

Identificación del empleado

Salario acreditado

Fecha de salario

También tengo una tabla de dimensiones Date desde la que doy segmentaciones de datos de año y mes en el informe. Ahora necesito encontrar el recuento de id de empleados activos con un fomula si han recibido salario en los últimos 3 meses o no ?

Si han recibido el salario durante los últimos tres meses, entonces están activos de otra manera inactivos.

Cómo crear esta medida. Por favor, ayuda.

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

No @Ramees_123 ,

Por favor, siga estos pasos:

1. Agregue una columna YearMonth a la tabla Calendario que se usará para la segmentación de datos:

=YEAR([Date])*100+MONTH([Date])

2.calcular el recuento de registros cuando en los últimos 3 meses en función del YearMonth seleccionado en la segmentación de datos:

Flag =
VAR _maxDate =
    MAX ( 'Calendar'[YearMonth] )
VAR _minDate =
    EOMONTH ( _maxDate, -3 )
RETURN
    CALCULATE (
        COUNTROWS ( 'Table' ),
        FILTER (
            ALL ( 'Table' ),
            'Table'[Employee ID] = MAX ( 'Table'[Employee ID] )
                && YEAR ( [Salary Date] ) * 100
                    + MONTH ( [Salary Date] ) > _minDate
                && YEAR ( [Salary Date] ) * 100
                    + MONTH ( [Salary Date] ) <= _maxDate
        )
    )+0

3.Then count Flag>=3:

Count of active employees = CALCULATE(DISTINCTCOUNT('Table'[Employee ID]),FILTER('Table',[Flag]>=3))+0

La salida final se muestra a continuación:

count output.PNG

Saludos
Eyelyn Qin
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

No @Ramees_123 ,

Por favor, siga estos pasos:

1. Agregue una columna YearMonth a la tabla Calendario que se usará para la segmentación de datos:

=YEAR([Date])*100+MONTH([Date])

2.calcular el recuento de registros cuando en los últimos 3 meses en función del YearMonth seleccionado en la segmentación de datos:

Flag =
VAR _maxDate =
    MAX ( 'Calendar'[YearMonth] )
VAR _minDate =
    EOMONTH ( _maxDate, -3 )
RETURN
    CALCULATE (
        COUNTROWS ( 'Table' ),
        FILTER (
            ALL ( 'Table' ),
            'Table'[Employee ID] = MAX ( 'Table'[Employee ID] )
                && YEAR ( [Salary Date] ) * 100
                    + MONTH ( [Salary Date] ) > _minDate
                && YEAR ( [Salary Date] ) * 100
                    + MONTH ( [Salary Date] ) <= _maxDate
        )
    )+0

3.Then count Flag>=3:

Count of active employees = CALCULATE(DISTINCTCOUNT('Table'[Employee ID]),FILTER('Table',[Flag]>=3))+0

La salida final se muestra a continuación:

count output.PNG

Saludos
Eyelyn Qin
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Syndicate_Admin
Administrator
Administrator

@Ramees_123 , con ayuda de la tabla de fechas

Rolling 3 = CALCULATE(distinctcount(Table[Employee ID]),DATESINPERIOD('Date'[Date ],MAX('Date'[Date ]),-3,MONTH))

o

Rolling 3 = CALCULATE(distinctcount(Table[Employee ID]),DATESINPERIOD('Date'[Date ],eomonth(MAX('Date'[Date ]),0),-3,MONTH))

o

Rolling 3 = CALCULATE(distinctcount(Table[Employee ID]),DATESINPERIOD('Date'[Date ],today(),-3,MONTH))

@amitchandak Hola Amit, no tengo ninguna relación entre la tabla de fechas y esta tabla de salarios debido a algunas razones.

¿Funcionará su DAX si no hay relaciones?

@Ramees_123 , no necesita una fecha continua que podría no funcionar si utiliza tbale

gustar

Rolling 3 = CALCULATE(distinctcount(Table[Employee ID]),DATESINPERIOD('Table'[Date ],MAX('Table'[Date ]),-3,MONTH))

Probar sin TI y fecha

Rolling 3 = CALCULATE(distinctcount(Table[Employee ID]),filter(all(Table[Date]), Table[Date] <= max(Table[Date]) && Table[Date] >= eomonth(max(Table[Date]),-3)))

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.