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
Gjakova
Post Patron
Post Patron

¿Cómo se cuenta la licencia por enfermedad de los empleados una vez al año?

Hola, tengo la siguiente pregunta...

Tengo que calcular el porcentaje de ausentismo por año con la siguiente situación:

  • En 2017, 5 personas trabajarán en la empresa. Nadie reportó enfermos de enero a abril, por lo que el ausentismo cero es del 100%,.
  • En mayo, la Persona A reporta enfermedad, por lo que el ausentismo cero ha caído al 80%.
  • En junio, nadie reportó enfermo, por lo que el ausentismo cero seguía siendo del 80%.
  • En julio, la persona C reporta enfermedad, por lo que el ausentismo cero ha caído ahora al 60%.
  • En agosto, septiembre y octubre nadie reporta enfermo, por lo que el ausentismo cero sigue siendo del 60%.
  • La Persona A reporta enfermedad en noviembre, pero debido a que la persona A ya ha reportado enfermedad una vez en mayo, el porcentaje se mantiene en el 60% y por lo tanto NO llega al 40%.
  • En diciembre, nadie se reportó enfermo tampoco.

Como resultado, el porcentaje de ausentismo es del 100% en enero de 2017 y del 60% en diciembre de 2017.

¿Alguien sabe cómo hacerlo en Power BI?

1 ACCEPTED SOLUTION
Gjakova
Post Patron
Post Patron

Gracias a todos por las respuestas, pero me las arreglé para resolver mi problema de esta manera:

Empleados ausentes ?
CALCULATE ( DISTINCTCOUNT ( Sickleave[EmployeeID] ),
DATESYTD ( Calendario[Fecha] ),
USERELATIONSHIP ( Sickleave[Fecha], Calendario[Fecha] )
)

Total de empleados anuales ?
CALCULATE ( DISTINCTCOUNT ( Workrelations[EmployeeID] ),
FILTRO ( ALL ( Calendario ), Calendario[Año] - MAX ( Calendario[Año] ) )
)

Porcentaje Mensual ?
DIVIDE ( Total de empleados anuales - Empleados ausentes, Total de empleados anuales )

View solution in original post

5 REPLIES 5
Gjakova
Post Patron
Post Patron

Gracias a todos por las respuestas, pero me las arreglé para resolver mi problema de esta manera:

Empleados ausentes ?
CALCULATE ( DISTINCTCOUNT ( Sickleave[EmployeeID] ),
DATESYTD ( Calendario[Fecha] ),
USERELATIONSHIP ( Sickleave[Fecha], Calendario[Fecha] )
)

Total de empleados anuales ?
CALCULATE ( DISTINCTCOUNT ( Workrelations[EmployeeID] ),
FILTRO ( ALL ( Calendario ), Calendario[Año] - MAX ( Calendario[Año] ) )
)

Porcentaje Mensual ?
DIVIDE ( Total de empleados anuales - Empleados ausentes, Total de empleados anuales )

v-yuaj-msft
Community Support
Community Support

No @Gjakova ,

En función de su descripción, puede realizar algunos pasos de la siguiente manera.

  1. Crear una tabla de calendario

calendario : CALENDAR("1/1/2017","12/31/2020")

2. Crear una relación entre dos tablas (startdate:date-1:1)

v-yuaj-msft_0-1608684499378.png

3. Cree algunas columnas.

EMployeeID ? IF('calendar'[Date]-RELATED(Table1[StartDate]),RELATED(Table1[EmployeeID]))



Valor: CALCULATE(DISTINCTCOUNTNOBLANK('calendar'[EMployeeID]),'calendar'[Fecha]<-EARLIER('calendar'[Fecha]))



Columna ?

var x1o

CALCULATE(

LASTNONBLANK('calendar'[Fecha],1),

FILTRO(

ALL('calendario'),

'calendario'[Fecha]<-EARLIER('calendar'[Fecha])&&

NOT(ISBLANK('calendar'[Value]))))

var x2o

CALCULATE(

SUM('calendar'[Valor]),

FILTER(ALL('calendar'),'calendar'[Fecha]-x1))

devolución

DIVIDE(x2,5)

4. Cree un objeto visual de tabla.

v-yuaj-msft_1-1608684499385.png

Resultado:

v-yuaj-msft_0-1608684604895.png

Espero que eso sea lo que estabas buscando.

Saludos

Yuna

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

amitchandak
Super User
Super User

@Gjakova ,¿Puede compartir datos de ejemplo y salida de ejemplo en formato de tabla? O una muestra de pbix después de eliminar datos confidenciales.

Usted puede probar una medida como


medida :
divide(calculate(distinctcount(Table[employee]), filter(allselected(Table), Table[date]<-table[date])), calculate(distinctcount(Table[employee]), all(employee)))

mahoneypat
Employee
Employee

Si proporciona datos de ejemplo, se puede sugerir una expresión específica, pero básicamente puede hacerlo filtrando una tabla virtual de empleados y contar los que no tenían filas de días enfermos. Suponiendo que tenga una tabla Date, aquí hay un ejemplo,

Pct No Ausente ( Pct Not Absent)
VAR vMaxDate ?
MAX ( Fecha[Fecha] )
VAR vEmployees ?
VALORES ( Fecha[Empleados] )
VAR vEmployeeCount ?
COUNTROWS ( vEmployees )
VAR vEmployeesNotAbsent ?
COUNTROWS (
FILTRO (
vEmployees,
ISBLANK (
CALCULAR (
COUNTROWS ( Datos ),
ALL ( Fecha[Fecha] ),
Fecha[Fecha] <-vMaxDate
)
)
)
)
devolución
DIVIDE (
vEmployeesNotAbsent,
vEmployeeCount
)

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


¡Gracias por tu sugerencia! Voy a echar un vistazo, no puedo acceder a los datos todavía, pero se ve así:pbi.PNG

La fecha de inicio y la fecha final son (supongo) no tan importantes, sólo con la fecha de inicio voy a comprobar en qué año se reportó enfermo (por lo que la persona D no debe ser contado para 2017). La Persona A ha reportado enfermedades varias veces en 2017, pero sólo la primera notificación por enfermedad de la persona A cuenta (por lo tanto, 01/02/2017) y la persona A debe ser excluida del resto del año.

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.