Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
En mi empresa, tengo una lista de "tickets" a la que los empleados envían tickets. La expectativa es de un mínimo de 1 boleto por mes por empleado (excepto para el Presidente). También tengo una lista de relaciones empleado-gerente (esencialmente, un organigrama) en el siguiente formato.
Lista de entradas:
ID,Date,Employee,Manager
A01,1/1/2023,A,K
A02,1/2/2023,B,K
A03,1/2/2023,F,M
A04,1/3/2023,B,K
A05,1/6/2023,F,M
A06,1/6/2023,F,M
A07,1/7/2023,L,X
A08,1/7/2023,M,Y
A09,1/8/2023,A,K
A10,1/9/2023,M,Y
A11,1/9/2023,X,Z
A12,1/10/2023,A,K
A13,1/14/2023,A,K
A14,1/16/2023,B,K
A15,1/19/2023,C,L
A16,1/22/2023,D,M
A17,1/23/2023,D,M
A18,1/24/2023,F,M
A19,1/26/2023,A,K
A20,1/26/2023,M,Y
A21,1/29/2023,X,Z
A22,1/30/2023,X,Z
A23,2/4/2023,C,L
A24,2/5/2023,B,K
A25,2/11/2023,B,K
A26,2/12/2023,A,K
A27,2/19/2023,M,Y
A28,2/19/2023,X,Z
A29,2/22/2023,Y,Z
A30,2/25/2023,X,Z
A31,2/27/2023,D,M
A32,2/27/2023,C,L
A33,3/2/2023,C,L
A34,3/2/2023,D,M
A35,3/6/2023,F,M
A36,3/14/2023,M,Y
A37,3/14/2023,D,M
A38,3/17/2023,A,K
A39,3/21/2023,C,L
A40,3/21/2023,D,M
A41,3/23/2023,X,Z
A42,3/23/2023,D,M
A43,3/28/2023,Y,Z
Organigrama:
Employee,Manager
A,K
B,K
C,L
D,M
E,M
F,M
K,X
L,X
M,Y
X,Z
Y,Z
Tenga en cuenta que la razón de dos tablas es que, aunque se espera, algunos empleados pueden no enviar tickets todos los meses (por ejemplo, los empleados E y K no han enviado ninguno durante todo el período). Así que para tener datos completos tengo este segundo Organigrama. Los dos están vinculados por la columna 'Empleado'.
Ahora, mi requisito es crear dos gráficos.
Esto es lo que he hecho hasta ahora.
Medida para calcular tickets por empleados:
Tickets = DISTINCTCOUNT(TicketList[ID])
Esto funciona bien, pero lo puse en una tabla (Empleado y Gerente que viene de Organigrama), no muestra valores (ceros) para los empleados que nunca han enviado un ticket. En este caso, K y E). ¿Cómo hago para que esos empleados se presenten?
Medida para verificar si un empleado cumple:
Is Compliant =
IF(TicketList[Tickets] >= 1,
TRUE(),
FALSE()
)
Esto funciona bien, y ahora puedo mostrar el cumplimiento de Verdadero / Falso en una matriz.
Pero, ahora me encuentro con problemas al calcular el porcentaje de cumplimiento para un gerente.
En el organigrama, tengo las siguientes dos medidas para calcularlo:
#Employees = DISTINCTCOUNT('Org Chart'[Employee])
Compliance % = DIVIDE(CALCULATE(DISTINCTCOUNT(TicketList[Employee]), FILTER(TicketList, [Is Compliant] = TRUE())), 'Org Chart'[#Employees])
Pero, esto obviamente calcula el % considerando solo a los subordinados inmediatos:
¿Cómo altero la medida para calcular la consideración de todos los empleados que les reportan? Por ejemplo, para X el número debe ser 80% para enero (K no conforme, L, A, B, C cumple).
Además, ¿cómo puedo hacer que aparezca 0 en lugar de espacios en blanco?
@v-yueyunzh-msft esto funcionó perfectamente, gracias!
Sin embargo, no entiendo muy bien la compleja medida, ¿podría explicarla?
Hi, @Sachintha
Para su primera necesidad, Mostrar valores (ceros) para los empleados que nunca han enviado un ticket. Solo necesita seleccionar esto:
Para su segunda necesidad, estos son los pasos que puede consultar .
Necesitamos crear una columna calculada como esta:
Year_month = YEAR([Date])*100+MONTH([Date])
Entonces podemos crear una medida como esta:
Measure =
var _cur_year_month =CALCULATE( MAX('TicketList'[Year_month]), ALL('test2'[Manager]))
var _em1= VALUES('test2'[Employee])
var _em2 = CALCULATETABLE( VALUES(test2[Employee]) , 'test2'[Manager] in _em1,ALLSELECTED('test2'))
var _em3 = UNION(_em1,_em2)
var _total = COUNTROWS(_em3)
var _test =ADDCOLUMNS( CROSSJOIN( ALLSELECTED('test2'[Employee]) , ALLSELECTED('TicketList'[Year_month])) ,"flag" , CALCULATE(DISTINCTCOUNT('TicketList'[ID]),TREATAS({[Employee]},TicketList[Employee]),TREATAS({[Year_month]},'TicketList'[Year_month]) ,ALL('test2'[Manager]) ))
var _t2 = FILTER(_test, [flag] <> BLANK() && [Year_month]=_cur_year_month && [Employee] in _em3)
return
COUNTROWS( _t2) / COUNTROWS(_em3)
Entonces podemos poner esta medida en el visual y podemos satisfacer su necesidad:
Gracias por su tiempo y uso compartido, y gracias por su apoyo y comprensión de PowerBI.
Saludos
Dijo Zhang
Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.