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
Anonymous
Not applicable

Consulta del panel de recursos humanos - archivos de origen y tabla

Hola a todos

Soy bastante nuevo en PowerBI, sin embargo doen manos básicas y ahora llegar a trabajar.

Tiene que desarrollar un tablero mensual de recursos humanos con 2 archivos de entrada - 1) Lista de empleados de salida mensual 2) Lista total de empleados de headcount de cierre (más de 1000 empleados activos) para el mes. Se le pidió que lo hiciera con una intervención manual mínima.

Mi preocupación es cómo obtengo los valores de apertura y cierre HC de cada mes desde el archivo HC .

Para la tabla de desgaste- i se enfrentan a ningún problema , tengo mi tabla que se actualiza con sólo colocar el archivo de salida mensual en la carpeta.

Para Headcount (HC) - si reemplazo el archivo HC mensual cada mes, obtendría un archivo HC activo para mi panel. sin embargo, también necesito calcular la tasa de desgaste YTD y la tasa de desgaste anual por los deptos para los que i necesitaría el HC de apertura y cierre de cada mes.

Rumiando sobre esto , tengo gt las siguientes opciones, pero confundido sobre cómo ayudará a mi causa:

1. Mantenga un Excel en una carpeta que elija el HC de cierre y apertura cada mes (a través de fórmulas o scripts en Excel), que se puede importar / actualizar en Power BI. puede calcular la tasa de desgaste a partir de ahí

2. Actualizar una tabla HC en el mes de powerBI evey que actualizará el HC, a continuación, manipular los datos para eliminar los duplicados, añadir una bandera para los empleados releived mediante la conexión a la tabla de desgaste- sin embargo no estoy seguro de cómo esto me dará la apertura y cierre HC de cada mes para ser almacenado , será a prueba de tontos

3.Tiene una tabla HC para cada mes, pero es útil cargar 1000 roes de datos sólo para obtener el archivo HC de apertura y cierre mensual.?

¿Cómo afectará a mi visualización: cada mes es necesario conectarse a una nueva tabla para obtener la visualización nueva?

4. Actualizar el HC de cierre y apertura cada mes que es una tarea manual.

Solicite a los profesionales de Power BI que por favor guíe sobre este...

4 REPLIES 4
amitchandak
Super User
Super User

@TrystwidPowerBI ,

¿Puede compartir datos de ejemplo y salida de ejemplo en formato de tabla?

si esto puede ayudar a

https://community.powerbi.com/t5/Community-Blog/HR-Analytics-Active-Employee-Hire-and-Termination-tr...

BA_Pete
Super User
Super User

Hola @TrystwidPowerBI ,

Necesitaremos algunos ejemplos de sus dos conjuntos de datos para poder comprender completamente sus requisitos. Por favor, comparta en formato de tabla en una respuesta utilizando este botón:

arrakha.PNG

O compartir a través de OneDrive para la empresa y proporcionar enlace.

POR FAVOR, ELIMINAR/REEMPLAZAR CUALQUIER DATO SENSIBLE ANTES DE COMPARTIR.



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




Anonymous
Not applicable

Queridos todos,

Gracias por la respuesta rápida. Pl encontrar la tabla de muestra/datasets

Promedio de HC Abril (Abril Apertura HC + Abril Cierre HC) /2

Promedio de HC Mayo (Abril Cierre HC+Mayo Cierre HC)/2

Promedio de HC Junio (Mayo cierre HC+ Junio cierre HC)/2

YTD para ese mes% total sale de abril hasta ese mes/promedio de número de cabezas de no .de meses

Rolling Annualised% - Total Voluntaria Leaver/Promedio de La Cabeza de no .de meses *12/no de meses

Pl encontrar las tablas / archivos que tengo

1. HC mensual Excel contiene TOTAL cierre HC para cada mes aprox 1000 empleados en total...

Cada archivo de mes varía debido a salidas y uniones para ese mes.

Mes de HCId. de empleadoNombre del EmpUbicaciónDojDesignaciónEdadAdministrador de informesGéneroExperienciaCalificación
Abril de 2020

2. Archivo de salida mensual

Mes de HCID de empleado (número)Nombre del EmpDOJ (dd-MM-aaaa)Ultimo día laborable (dd-MM-aaaa)tipo de salida (voluntaria/involuntaria)Motivo de la salidaUltima calificaciónDesignaciónAdministrador de informes
Abril de 2020

Hola @TrystwidPowerBI ,

Bien, hay un poco para desempacar aquí así que no he hecho todo tu trabajo por ti, pero espero poder proporcionar un buen comienzo para diez.

En primer lugar, esto requiere una tabla de calendario que esté relacionada con la tabla de recuento que crearemos en un minuto. Las relaciones deben tener este aspecto:

tryst1.PNG

Donde calendar[date] > headcount[DOJ] es su relación activa, con dos relaciones inactivas [fecha] > [LWD] (última fecha de trabajo), y [fecha] > [LWDnoNulls], que también crearemos en un minuto.

En cuanto a los datos, mi configuración recomendada es que cree carpetas para sus informes mensuales e importe toda la carpeta de cada uno (recuentos y salidas), y anexelas en tablas grandes de cada uno. He asumido esta configuración en las siguientes transformaciones, por lo que, donde ve mis pasos de origen, asumo que estas son las tablas anexadas.

Mesas:

En Power Query, vaya a Nuevo origen>Consulta en blanco y, a continuación, en Editor avanzado pegue cada uno de mis segmentos de código sobre el código predeterminado, asegurándose de asignar un nombre a las tablas como se ha comentado en la primera línea del código. A continuación, puede seguir los pasos que tomé para completar las transformaciones necesarias.

// Call this table "exit"
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("fdBNC8IwDAbgvyI7C0s/tjZHURAExbt4GDpccVqp28F/b1LrJ+opa9eneZvVKhudgmsHEiRkwwxUqZHqwm0a31a8I3LQuUBr4m9exLPr4Se1UhVUJ84fqSjIoSBn+Dph/zkUiurMN+wIUcvUT8g3N68uD4VSC6rLqgtus+cdnYNlWDI03P071EZF2LdJxXaWFlK/qVl/rJ8pTRlZ3dWBj1Iyw46fTF9Q/nAIyDnHTXDnzp+aqCko4D0ryA/dvoRFww2mPmx9mg7NhCBnEQVneE613/Xn7kENFjq+85COpkHeJ3Vz6ys=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"HC month" = _t, #"Employee ID (number)" = _t, #"Emp name" = _t, DOJ = _t, LWD = _t]),
    chgAllTypes = Table.TransformColumnTypes(Source,{{"HC month", type text}, {"Employee ID (number)", type text}, {"Emp name", type text}, {"DOJ", type date}, {"LWD", type date}})
in
    chgAllTypes
// Call this table "headcount"
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("lZZNa9wwEIb/StlzwPrwh3QsDYQuJARScgk5CNdg060dFOegfx+N4hKPYo3UywrvPp4dj94H+enpdGtsP34TTLDT1YkxLbRff5oZrnjF6opr1Zyer2JStqJFZJcma6h5N/XjcjH7ut0B3TKh/PpgrBn9KmTF2hTb6ab267356z95A1XDT19JJWTj1+tpgXYlq1jji3b6CJUdtHttrB3Cs3UVU74uO6zbtRI6GNbBQreCmINSEib2sA4vY6gsGmgj1bHmUPm8jKEJj/LUGDSrP8bwdoFL34NIo5r79cdop9d18X3Y8F8V03BHe3QH12EcQ9hooWA7Ei1rUfPQx2qn/g98U8PoUoXrTu66rrcHVEeobgB9nOZ+mNctQaGwPKQ72Oubxf5ettlxkYA5Y5J/diF0xWSiC86FlCjxqUFwrhlk+Jc1vYNrue3IR9y+v9jpUmQcJinjYpI2DtO0cZiljMMkaVyE0sZFMGlcxFIOYZR0KEbzDkV3ZMSIaEqMCM2IEdOkGAimxcAoHfdb4wqPF1cUdczljhZXGPM9SR8rriziCMwdKa4w3ojMHieuTIQ9mDlK3H9JgPjs2eDKBEBg9lxwpeHfobkzwRUG//w2D0XJRyAV/Qiks49gOvwIpdKPQDL+mKTzj1lSAIxmDMAwpQAiSQciMi8BvoF6mcJkxhcMU8JgMmNMBJPK7FnaGURSr1EYzNh1+RRRNAHdNpcryMyu6I6UksEznc08rFtq02iY1Y1XJrgAc/3HPr8D", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"HC month" = _t, #"Employee ID" = _t, #"Emp name" = _t, DOJ = _t]),
    remHCmonth = Table.RemoveColumns(Source,{"HC month"}),
    remDupes = Table.Distinct(remHCmonth),
    mergeExit = Table.NestedJoin(remDupes, {"Employee ID"}, exit, {"Employee ID (number)"}, "exit", JoinKind.LeftOuter),
    expandExit = Table.ExpandTableColumn(mergeExit, "exit", {"LWD"}, {"LWD"}),
    addLWDnoNulls = Table.AddColumn(expandExit, "LWDnoNulls", each if [LWD] = null then Date.From(DateTime.LocalNow()) else [LWD]),
    chgAllTypes = Table.TransformColumnTypes(addLWDnoNulls,{{"LWDnoNulls", type date}, {"DOJ", type date}})
in
    chgAllTypes

En resumen, he eliminado duplicados de la tabla de recuento anexado, por lo que ahora solo tenemos una tabla con una fila para cada empleado, luego fusioné la tabla de salida con esto para que tengamos un registro completo para cada empleado en una sola tabla (cuando expanda la combinación, puede seleccionar todas las columnas de la tabla de salida si lo desea).

Bien, esos son los datos hechos. Aplique esto al modelo de datos.

Una vez que tenga la nueva tabla de recuento en el modelo de datos y la relacione con la tabla de calendario anterior, puede empezar a crear medidas con una combinación de información de tiempo y vistas de tiempo no relacionadas. Aquí hay algunas medidas útiles que funcionarán en mis datos de ejemplo para ponerle en marcha, solo asegúrese de usar los campos de fecha de la tabla de calendario relacionada como eje para cualquier objeto visual que tenga estas medidas:

//Current headcount
_noofHeadsCurr = 
CALCULATE(
    DISTINCTCOUNT(headcount[Employee ID]),
    CROSSFILTER('calendar'[date], headcount[DOJ], None),
    headcount[LWD] = BLANK()
) +0

//Headcount at start of period in view
_nooHeadsStartPeriod = 
VAR mindate =
    MIN('calendar'[date])
VAR maxdate =
    MAX('calendar'[date])
RETURN
    CALCULATE(
        DISTINCTCOUNT(headcount[Employee ID]),
        CROSSFILTER('calendar'[date], headcount[DOJ], none),
        KEEPFILTERS(mindate >= headcount[DOJ]),
        KEEPFILTERS(mindate <= headcount[LWDnoNulls])
    )

//Headcount at end of period in view
_nooHeadsEndPeriod = 
VAR mindate =
    MIN('calendar'[date])
VAR maxdate =
    MAX('calendar'[date])
RETURN
    CALCULATE(
        DISTINCTCOUNT(headcount[Employee ID]),
        CROSSFILTER('calendar'[date], headcount[DOJ], None),
        KEEPFILTERS(maxdate >= headcount[DOJ]),
        KEEPFILTERS(maxdate <= headcount[LWDnoNulls])
    )

//Average headcount over period in view
_noofHeadsPeriodAvg = 
VAR mindate =
    MIN('calendar'[date])
VAR maxdate =
    MAX('calendar'[date])
VAR noofHeadsMin =
    CALCULATE(
        DISTINCTCOUNT(headcount[Employee ID]),
        CROSSFILTER('calendar'[date], headcount[DOJ], None),
        KEEPFILTERS(mindate >= headcount[DOJ]),
        KEEPFILTERS(mindate <= headcount[LWDnoNulls])
    )
VAR noofHeadsMax =
    CALCULATE(
        DISTINCTCOUNT(headcount[Employee ID]),
        CROSSFILTER('calendar'[date], headcount[DOJ], None),
        KEEPFILTERS(maxdate >= headcount[DOJ]),
        KEEPFILTERS(maxdate <= headcount[LWDnoNulls])
    )
VAR nooHeadsAvg =
    (noofHeadsMin + noofHeadsMax) / 2
RETURN
    IF(
        ISBLANK(nooHeadsAvg),
        BLANK(),
        nooHeadsAvg
    )

//Number of employees joined during period in view
_noofJoins = 
CALCULATE(
    DISTINCTCOUNT(headcount[Employee ID]),
    USERELATIONSHIP('calendar'[date], headcount[DOJ])
)

//Number of employees exited during period in view
_noofExits = 
    CALCULATE(
        DISTINCTCOUNT(headcount[Employee ID]),
        USERELATIONSHIP('calendar'[date], headcount[LWD]),
        NOT ISBLANK(headcount[LWD])
    )

//Exits as % of average headcount during period in view
_exit% = DIVIDE([_noofExits], [_noofHeadsPeriodAvg], 0)

//Headcount over time
_noofHeadsOverTime = 
VAR cDate = 
    MAX(calendar[date])
VAR heads =
    CALCULATE(
        DISTINCTCOUNT(headcount[Employee ID]),
        CROSSFILTER('calendar'[date], headcount[DOJ], None),
        KEEPFILTERS(cdate >= headcount[DOJ]),
        KEEPFILTERS(cDate <= headcount[LWDnoNulls])
    )
RETURN
    IF(
        ISBLANK(heads), BLANK(), heads)

//Number of exits YTD (assume 1st April year start)
_noofExitsYTD = 
CALCULATE(
    DISTINCTCOUNT(headcount[Employee ID]),
    NOT ISBLANK(headcount[LWD]),
    USERELATIONSHIP('calendar'[date], headcount[LWD]),
    DATESYTD('calendar'[date], "03/31")
)

Estas medidas le ayudarán a empezar a visualizar las tendencias de la posición de los empleados, en lugar de centrarse en meses individuales a la vez, algo como esto:

tryst2.PNG

Esperemos que esto le da una base bastante firme para empezar. Si no quitas nada más de este mega-post, ciertamente te recomiendo que uses la estructura de datos que he sugerido Esto hará que sea mucho más fácil construir tus propias medidas.



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




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.