cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Jerarquía padre/hijo con duplicados en el ID de empleado

Hola a todos,

Este es mi primer post en la comunidad y estoy súper emocionado.

Tengo una tabla de datos de la siguiente manera

Employee_IDManager_ID
1
21
32
43
54
65
76
87
98
109
91
102


Hay casos en los que algunos empleados tienen más de 1 gerente de informes. Por ejemplo, el empleado 9 informa a dos gerentes 1 y 8. Del mismo modo, el Empleado 10 tiene informes a los gerentes 9 y 2.

Esta es mi salida cuando no hay duplicados en los ID de empleado

phaneendra_0-1653027961123.png

Pero, debido a las identificaciones de empleados duplicadas, este es el error que enfrento.

phaneendra_1-1653028071194.png

Por favor, ayúdame a resolver este error con el conjunto de datos de muestra de datos que he mostrado anteriormente.

¡Realmente aprecia tu apoyo!

Gracias de antemano!!

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Hola

Debería poder agregar una primera columna de este tipo:

Employee_UMID =
var employeeID = Empleados[Employee_ID]
var managerID = Empleados[Manager_ID]
var sameEmployeeID = SUMMARIZE(FILTER(Employees,Employees[Employee_ID]=employeeID),Employees[Employee_ID],Employees[Manager_ID])
var rk = RANKX(sameEmployeeID,[Manager_ID],managerID,ASC,Dense)
return employeeID & if(rk>1, "_" & rk,"")
Como está devolviendo un texto, debe cambiar Manager_ID como columna de texto (o aplicar un número que esté seguro de que no se duplicará en su lugar),
entonces debería poder aplicar su ruta:
Columna =
var p = PATH(Empleados[Employee_UMID],Empleados[Manager_ID])
var m = SEARCH("_",p,1,LEN(p)+1)
var r = IZQUIERDA(p,m-1)
volver r
JYA_0-1653386422341.png

View solution in original post

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

Hola

Debería poder agregar una primera columna de este tipo:

Employee_UMID =
var employeeID = Empleados[Employee_ID]
var managerID = Empleados[Manager_ID]
var sameEmployeeID = SUMMARIZE(FILTER(Employees,Employees[Employee_ID]=employeeID),Employees[Employee_ID],Employees[Manager_ID])
var rk = RANKX(sameEmployeeID,[Manager_ID],managerID,ASC,Dense)
return employeeID & if(rk>1, "_" & rk,"")
Como está devolviendo un texto, debe cambiar Manager_ID como columna de texto (o aplicar un número que esté seguro de que no se duplicará en su lugar),
entonces debería poder aplicar su ruta:
Columna =
var p = PATH(Empleados[Employee_UMID],Empleados[Manager_ID])
var m = SEARCH("_",p,1,LEN(p)+1)
var r = IZQUIERDA(p,m-1)
volver r
JYA_0-1653386422341.png

Hi JYA,

¡¡¡Muchas gracias!!!

funciona a las mil maravillas.

Muy apreciado!!!!!

Syndicate_Admin
Administrator
Administrator

@phaneendra ,

Ya sea que el consejo dado por @CNENFRNL haya resuelto su confusión, si el problema se ha resuelto, puede marcar la respuesta para la respuesta estándar para ayudar a los otros miembros a encontrarla más rápidamente. De no ser así, sírvase señalarlo.


Esperamos sus comentarios.


Saludos
Henrio

Syndicate_Admin
Administrator
Administrator

Desde la perspectiva técnica o empresarial, es extraño que un empleado esté situado en un nivel diferente de la misma jerarquía organizacional.

Hola

¡Gracias por tomarse el tiempo para investigar!

Permítanme explicar el escenario. Un empleado estaba reportando al gerente-A, Más tarde en ese mes por algunas razones el empleado comienza a reportar al Gerente-B. El sistema está tardando en actualizarse, por lo que a veces obtenemos registros duplicados. En tales casos, me enfrento a este problema en DAX.

¡Espero que esto traiga más luz!

En cuanto a mí, el tipo de caso de "dimensión que cambia lentamente" de tt.

Como dije, asigne diferente al empleado y agregue diferentes registros en la tabla de dimensiones del empleado en consecuencia.

CNENFRNL_0-1653040200048.png

Hay ciertas constancias intrínsecas. Su caso está inherentemente restringido. Consulte el documento oficial,

Función PATH (DAX) - DAX | Documentos de Microsoft

  • Si ID_columnName tiene duplicados y parent_columnName es el mismo para esos duplicados, PATH() devuelve el valor de parent_columnName común; sin embargo, si parent_columnName valor es diferente para esos duplicados, PATH() devuelve un error. En otras palabras, si tiene dos listados para el mismo ID de empleado y tienen el mismo ID de gerente, la función PATH devuelve el ID de ese gerente. Sin embargo, si hay dos id de empleado idénticos que tienen identificadores de administrador diferentes, la función PATH devuelve un error.

Hola

Gracias por sus aportaciones. Sí, tienes razón. Pero, nuestro sistema no nos permite alterar la identificación del empleado.

Sin embargo, pude encontrar una solución usando M-Query que resolvió el problema. Estoy intentando replicar lo mismo en DAX sin usar la función PATH. Dado que, la función PATH no acepta duplicados en Employee_ID.

Gracias por su tiempo!!

Helpful resources

Announcements
Power Platform Conf 2022 768x460.jpg

Join us for Microsoft Power Platform Conference

The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.

Power BI Dev Camp Session 23 768x460.jpg

Check it Out!

Mark your calendars and join us on Thursday, June 30 at 11a PDT for a great session with Ted Pattison!

Top Solution Authors