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.
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.
Solved! Go to Solution.
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:
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.
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:
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.
@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)))
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 |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |