vsk7775
Hola a todos
Estoy tratando de encontrar el líder de informes directos y el informe indirecto al líder para el siguiente conjunto de datos. Probé diferentes expresiones DAX pero no obtuve el resultado correcto.
ID de empleado | ID de líder | Título del empleado |
1 | CEO | |
2 | 1 | Vicepresidente |
3 | 2 | Vicepresidente |
4 | 2 | Gerente1 |
5 | 3 | Gerente2 |
6 | 3 | Gerente3 |
7 | 4 | ingeniero de seguridad |
8 | 5 | Desarrollador |
9 | 4 | Analista |
10 | 6 | Desarrollador II |
11 | 5 | Desarrollador II |
12 | 8 | Gerente4 |
Cuando busqué el recuento directo de empleados para leaderID 2 usando la expresión DAX a continuación, me dio el resultado como 5, pero en realidad en el conjunto de datos, si vemos que solo hay dos personas que reportan directamente a employeeID 2, son ( employeeid 3 y 4)
También para el conteo de empleados indirectos para leaderID 2 obtengo el conteo como 12 pero en realidad solo tenemos 7 empleados indirectos
Aquí están mis consultas que utilicé para crear medidas.
Direct Count:=
VAR level1 =
INTERSECT ( ALL ( [Employee ID] ), VALUES ( [Leader ID] ))
RETURN
CALCULATE ( COUNT ( 'Employee ID] ), ( level1))
Indirect Count:=
VAR level1 =
INTERSECT ( ALL ( [Leader ID] ), VALUES ( [Employee ID] ))
VAR level2 =
INTERSECT (
ALL ([Leader ID]),
CALCULATETABLE ( VALUES ( [Employee ID]), level1)
)
VAR level3 =
INTERSECT (
ALL ([Leader ID]),
CALCULATETABLE ( VALUES ( [Employee ID]), level2)
)
VAR level4 =
INTERSECT (
ALL ([Leader ID]),
CALCULATETABLE ( VALUES ( [Employee ID]), level3)
)
VAR level5 =
INTERSECT (
ALL ([Leader ID]),
CALCULATETABLE ( VALUES ( [Employee ID]), level4)
)
VAR level6 =
INTERSECT (
ALL ([Leader ID]),
CALCULATETABLE ( VALUES ( [Employee ID]), level5)
)
VAR level7 =
INTERSECT (
ALL ([Leader ID]),
CALCULATETABLE ( VALUES ( [Employee ID]), level6)
)
VAR level8 =
INTERSECT (
ALL ([Leader ID]),
CALCULATETABLE ( VALUES ( [Employee ID]), level7)
)
VAR level9 =
INTERSECT (
ALL ([Leader ID]),
CALCULATETABLE ( VALUES ( [Employee ID]), level8)
)
VAR level10 =
INTERSECT (
ALL ([Leader ID]),
CALCULATETABLE ( VALUES ( [Employee ID]), level9)
)
VAR level11 =
INTERSECT (
ALL ([Leader ID]),
CALCULATETABLE ( VALUES ( [Employee ID]), level10)
)
VAR level12 =
INTERSECT (
ALL ([Leader ID]),
CALCULATETABLE ( VALUES ( [Employee ID]), level11)
)
RETURN
CALCULATE ( DISTINCTCOUNT ( [Employee ID] ), UNION ( level1, level2, level3, level4, level5, level6, level7, level8, level9, level10, level11, level12 ) )
camargos88
Hola @vsk7775,
Verifique este archivo: Descargar PBIX
Sin embargo, obtuve el employee_id 12 como indirecto para el líder 2, ¿es correcto?
ricardo
vsk7775
En respuesta a camargos88
Hola @camargos88
Gracias por investigarlo. No puedo abrir el archivo. ¿Le importaría compartir la medida tanto directa como indirecta para que lo verifique por mi parte?
camargos88
En respuesta a vsk7775
Hola @vsk7775,
Cree estas 2 columnas calculadas:
vsk7775
En respuesta a camargos88
Hola @camargos88
Agradezco su rápida respuesta. No estoy seguro de por qué no funciona para mi conjunto de datos actual. Muchas gracias por investigarlo.
camargos88
En respuesta a vsk7775
@vsk7775 ,
Intente descargar el archivo nuevamente: Descargar PBIX
ricardo
Anónimo
NO lo estás haciendo bien. Por favor, comience con estos:
https://www.sqlbi.com/tv/jerarquías-en-dax/
https://www.daxpatterns.com/parent-child-hierarchies/
https://simplebiinsights.com/parent-child-hierarchies-in-dax/
No hagas lo que haces arriba. No te dispares en el pie.
Mejor
D
vsk7775
En respuesta a Anónimo
hola @anonimo
Gracias por el enlace. Ya creé la jerarquía de mi organigrama de una manera similar y tengo un recuento de medidas simple (ID de empleado), pero ahora lo que estaba buscando era cómo obtener los recuentos de miembros directos e indirectos del equipo.
Anónimo
En respuesta a vsk7775
Bueno, recuerde siempre que puede girar una tabla y almacenar dos versiones en su modelo, una con la estructura en columnas, otra con la estructura en filas, y calcular sus medidas en la que sea más adecuada para la tarea en cuestión.
Mejor
D
Alba
Hola @vsk7775
Para el número de informes directos, puede crear el número en una columna calculada en su tabla:
Direct Reports =
0 + CALCULATE(COUNT(Table1[EmployeeTitle]); Table1[LeaderID] = EARLIER(Table1[EmployeeID ]);ALL(Table1))
Para la cantidad de informes indirectos, no entiendo muy bien por qué el resultado esperado es 7 para el ID de empleado 2. ¿Puede explicar quién se consideraría exactamente un informe indirecto?
Por favor marque la pregunta resuelta cuando termine y considere dar felicitaciones si las publicaciones son útiles.
Salud
vsk7775
En respuesta a Alba
Hola @AlB
Los informes directos de EmployeeID 2 son EmployeeID 3 y 4.
EmployeeID 2 Informes indirectos son EmployeeID 5,6,7,8,9,10,11
Porque
EmployeeID 5,6 Reportar directamente a 3
EmployeeID 7,9 reporta directamente a 4
EmployeeID 8,11 Reporta directamente a 5
EmplyeeID 10 reporta directamente a 6
Estoy tratando de crear medidas, no campos/columnas calculados porque al usar estas medidas, si profundizo en Excel o Power Bi, debería ver sus detalles.