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

Jerarquía de PATH

Hola a todos

Tengo en powerBI 2 tablas:

- Lista de datos de empleados que contiene toda la información sobre los empleados

- Lista de datos del gerente, que contiene el nombre y el código de recursos humanos de los empleados que son gerentes

y no están interconectados/conectados.

He creado en PowerBi en la tabla Lista de datos de empleados la jerarquía de la empresa utilizando el DAX:

Hierachy path = PATH('Employe Data List'[HRcode],'Employe Data List'[Manager HRcode])

lo que me generó una ruta de jerigüedad de columna con datos como:

1
1|2
1|4
1|4|11
1|5|10
1|6|9
1|5
1|6
1|3
1|2|7
1|8

Me gustaría poder seleccionar el nombre del gerente en una segmentación de datos (los datos provendrían de la tabla Lista de datos del administrador) y poder ver a todos los empleados por debajo de esta jerarquía de administrador (directa o indirecta).

Ejemplo:
1. Al seleccionar Marca, que es el CEO que tiene HRcode como 1, la tabla reflejaría el nombre de todos los empleados, marca incluida.

2. seleccionando ISabel que es un Gerente que HRCode 2 , la paca mostraría todos los informes directos e indirectos de Isabel.

He tratado de construir una medida para lograrlo y hasta ahora lo he logrado parcialmente.

Lo he intentado primero con esta medida:

_Filter hierarchy = 
IFERROR(  
    SEARCH( SELECTEDVALUE('Manager Data List'[HRcode]),
            SELECTEDVALUE('Employe Data List'[Hierachy path])),-1 
        )

Y agregué esta medida en el panel Filtro y seleccioné no es -1.

Entonces, cuando solo tengo 1 gerente seleccionado, me devuelve la lista de todos los empleados (directos e indirectos) en el gerente seleccionado, sin embargo, si selecciono 2 gerentes, no funciona, trae a todos los empleados.

Así que yo también me he cansado de esta medida:

zzzMeasure = 
PATHCONTAINS( SELECTEDVALUE('Employe Data List'[Hierachy path]) , SELECTEDVALUE('Manager Data List'[HRcode]))

Con esta medida no pude agregarlo como filtro, no abre la opción de seleccionar VERDADERO, para mostrar solo los casos verdaderos, por lo que lo he agregado en la tabla y me trae el verdadero o falso pero para todos los empleados, y si selecciono más de 1 gerente trae falso.

Entonces, lo que quiero hacer es seleccionar 1 o más gerentes y poder ver a todos los empleados (directos o independientes) debajo de la jerarquía, incluidos los gerentes en la lista de empleados, ejemplo:

Seleccionando el Gerente A que tiene 2 reportes directos y los reportes directos SubManA1 tiene 3 reportes y SubManA2 tiene 4 reportes, y ManagerB, que tiene 3 reportes directos, y SubManB1 no tiene servicios, SubMAnB2, tiene 1 reporte y BusManB3 tiene 5 reportes. Por lo tanto, mi tabla debería mostrar:
GerenteA,

SubManA1,

SubManA1_report1,

SubManA1_report2,

SubManA1_report3 ,

SUBManA2,

SubManA2_report1,

SubManA2_report2,

SubManA2_report3

SubManA2_report4

GerenteB,

SUBManB1,

SUBManB2,

SUBManB2_reports1

SUBManB3,

SUBManB3_reports1

SUBManB3_reports2

SUBManB3_reports3

SUBManB3_reports4

SUBManB3_reports5

y cuando extraigo esta tabla a un Excel, reflejaría la tabla generada en el objeto visual PBI.

¿Alguna ayuda por favor?

1 ACCEPTED SOLUTION

Hola Ibendlin,

Esta solución no era factible para el requerimiento de mi cliente.

Después de dormir en él, he decidido cambiar el modelo de datos, por lo que he creado:

1. Tabla 1: Datos del empleado que contiene la información del empleado

2. Tabla 2: Datos del gerente que tienen la información de los gerentes

3. Tabla 3: Tabla de referencia, que contiene todo el código de RRHH para los empleados, el código de RRHH para el gerente y he creado columnas adicionales en Powequery agregando el gerente del gerente hasta el último nivel de gestión en este caso como 12 columnas ya que tenemos 11 niveles de jerarquía (contando con el empleado).

Con la tabla 3 en Power Query, he pivotado las columnas en líneas y filtrado los casos en blanco de jerarquía.

Así que en Power BI he usado el código HR como clave principal para conectar la Tabla 1: empleado con la Referencia de la Tabla 3 y como clave foránea del código HR del Administrador para conectar la Tabla 3 con los datos del Administrador de la Tabla 2.

Entonces, con las imágenes, agregué el nombre de los gerentes en la cortadora dando la opción de buscar y una tabla con información de los empleados, y cuando selecciono el nombre del gerente en la segmentación, muestra a todos los empleados (directos e indirectos) bajo la responsabilidad de los administradores.

View solution in original post

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Por lo general, solo tiene una mesa, con todos los empleados y su gerente. ¿Qué te hizo usar dos mesas?

En la Tabla de Empleados tengo los datos de los gerentes como si no, con esta información pude hacer la Ruta.

He creado una segunda tabla con el gerente solo para tratar de lograr lo que estaba haciendo, pero si hay una manera de tenerla solo con la tabla de empleados que contiene los datos de los gerentes, también estaría muy feliz.

Porque cuando traté de usar los datos del administrador en la segmentación, solo me estaba dando los informes directos, y quiero directos e indirectos.

Proporcione datos de muestra que cubran su problema o pregunta por completo, en un formato utilizable (no como una captura de pantalla).

No incluya información confidencial ni nada que no esté relacionado con el problema o la pregunta.

Si no está seguro de cómo cargar datos, consulte https://community.fabric.microsoft.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-...

Muestre el resultado esperado en función de los datos de muestra que proporcionó.

¿Quieres respuestas más rápidas? https://community.fabric.microsoft.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447...

Hola

A continuación se muestra una muestra de PBI de los datos.

Está formado por 2 tablas:

1. Lista de datos de empleados: que tiene nombres y datos de todos los empleados

2. Lista de administradores: Que tiene el nombre de solo los administradores que se usarán en la segmentación.

Quiero poder seleccionar el nombre del gerente en la cortadora y en una tabla visula presentar hame e información de todos los empleados bajo el gerente seleccionado.

He creado una medida llamada jerarquía _filter, que me permitió lograr que solo cuando se selecciona 1 gerente, si se selecciona 2 o el gerente funciona como expcted, trae a todos los empleados y quiero presentar solo a los empleados que están por debajo de los gerentes seleccionados.

Here it works well when i select one managerHere it works well when i select one managerAquí funciona bien cuando selecciono un administrador

error when select 2 or more managerserror when select 2 or more managersError al seleccionar 2 o más administradores

Creo que sucede porque la función Seelctevalue trae solo un resultado de selección. Así que me pregunto si hay una manera de lograrlo: independientemente del número de gerentes seleccionados para mostrar a todos los empleados (informes directos e indirectos) por debajo de los gerentes seleccionados.

Hatps://1drv.ms/u/s!arillapdmapcooked_wo4hcbg1ivj6?e=nakt7k

Este es un enfoque alternativo que no necesita la tabla Manager.

lbendlin_0-1713875011979.png

Hay otras segmentaciones de jerarquía que suprimen los espacios en blanco en jerarquías irregulares.

Hola Ibendlin,

Esta solución no era factible para el requerimiento de mi cliente.

Después de dormir en él, he decidido cambiar el modelo de datos, por lo que he creado:

1. Tabla 1: Datos del empleado que contiene la información del empleado

2. Tabla 2: Datos del gerente que tienen la información de los gerentes

3. Tabla 3: Tabla de referencia, que contiene todo el código de RRHH para los empleados, el código de RRHH para el gerente y he creado columnas adicionales en Powequery agregando el gerente del gerente hasta el último nivel de gestión en este caso como 12 columnas ya que tenemos 11 niveles de jerarquía (contando con el empleado).

Con la tabla 3 en Power Query, he pivotado las columnas en líneas y filtrado los casos en blanco de jerarquía.

Así que en Power BI he usado el código HR como clave principal para conectar la Tabla 1: empleado con la Referencia de la Tabla 3 y como clave foránea del código HR del Administrador para conectar la Tabla 3 con los datos del Administrador de la Tabla 2.

Entonces, con las imágenes, agregué el nombre de los gerentes en la cortadora dando la opción de buscar y una tabla con información de los empleados, y cuando selecciono el nombre del gerente en la segmentación, muestra a todos los empleados (directos e indirectos) bajo la responsabilidad de los administradores.

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.