Microsoft Fabric Community Conference 2025, March 31 - April 2, Las Vegas, Nevada. Use code FABINSIDER for a $400 discount.
Register nowGet inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.
En Power BI Desktop estoy deseando tener una tabla "Matriz de entrenamiento" con el estado de certificación Puede ejecutar / No se puede ejecutar, como se muestra a continuación:
Nombre de usuario | Operación | Estado de la certificación |
User_A | [01] Limpieza | |
User_A | [02] Pintura | |
User_A | [03] Mudanza | |
User_A | [04] Cierre | |
User_B | [01] Limpieza | |
User_B | [02] Pintura | |
User_B | [03] Mudanza | |
User_B | [04] Cierre | |
User_C | [01] Limpieza | |
User_C | [02] Pintura | |
User_C | [03] Mudanza | |
User_C | [04] Cierre |
Que tengo otras 2 tablas con información relacionada: Una tabla con las certificaciones requeridas para cada operación (OperationCertRequirement) y una tabla con registros de certificación (UserCertification)
OperationCertRequirement
identificación | Operación | Certificate_Needed |
1 | [01] Limpieza | Limpiar con X |
2 | [01] Limpieza | Limpiar con Y |
3 | [01] Limpieza | Cómo inspeccionar |
4 | [02] Pintura | Pintar con pintura |
5 | [02] Pintura | Pintar con tinta |
6 | [03] Mudanza | Moverse verticalmente |
7 | [03] Mudanza | Moverse horizontalmente |
8 | [04] Cierre | Cómo cerrar |
UserCertification
id_cert | Certificado | Usuario | Estado |
1 | Limpiar con X | User_A | Activo |
2 | Limpiar con Y | User_A | Activo |
3 | Cómo inspeccionar | User_A | Activo |
4 | Moverse verticalmente | User_A | Activo |
5 | Cómo cerrar | User_A | Activo |
6 | Limpiar con Y | User_A | Caducado |
7 | Pintar con pintura | User_B | Activo |
8 | Pintar con tinta | User_B | Activo |
9 | Moverse verticalmente | User_B | Activo |
10 | Pintar con pintura | User_B | Activo |
11 | Cómo cerrar | User_C | Activo |
12 | Limpiar con X | User_C | Caducado |
13 | Limpiar con Y | User_C | Caducado |
14 | Cómo inspeccionar | User_C | Caducado |
Para llenar la columna vacía, necesito ver si el operador tiene los certificados necesarios activos para la operación relacionada.
Debido a que algunas operaciones pueden requerir más de una certificación, estoy luchando por encontrar una solución para llenar el estado de certificación, que debería ser el siguiente:
Nombre de usuario | Operación | Estado de la certificación |
User_A | [01] Limpieza | Puede ejecutar |
User_A | [02] Pintura | No se puede ejecutar |
User_A | [03] Mudanza | No se puede ejecutar |
User_A | [04] Cierre | Puede ejecutar |
User_B | [01] Limpieza | No se puede ejecutar |
User_B | [02] Pintura | Puede ejecutar |
User_B | [03] Mudanza | No se puede ejecutar |
User_B | [04] Cierre | No se puede ejecutar |
User_C | [01] Limpieza | No se puede ejecutar |
User_C | [02] Pintura | No se puede ejecutar |
User_C | [03] Mudanza | No se puede ejecutar |
User_C | [04] Cierre | Puede ejecutar |
¡Muchas gracias de antemano por cualquier ayuda!
Hola Alexander,
¡Encontré un error en el nombre de un campo y, por lo tanto, su 1ª solución funcionó perfectamente!
Muchas gracias de nuevo.
Puedo suponer que si usa ALL (OperationCertRequirement) y ALL (UserCertification) en lugar de solo OperationCertRequirement y UserCertification en las líneas 4 y 5, puede funcionar correctamente incluso con las relaciones, pero es solo una suposición.
También puede proporcionarme un archivo simulado con el modelo como el que usa en el entorno de producción para que pueda ajustar esta solución para su modelo.
Saludos
Alexander
En ella barritown,
Muchas gracias por su repetición, esa es una forma inteligente de hacerlo.
Sin embargo, no está funcionando completamente ya que tengo relaciones activas. ¿Hay alguna forma de desactivarlos para esta columna calculada? Si no se puede usar el filtro cruzado, ¿dónde debería colocarse?
Gracias
Suponiendo que las tres tablas no estén relacionadas, podría proponer una columna calculada:
Y en texto plano:
Certification Status =
VAR _curtUser = [UserName]
VAR _curOperation = [Operation]
VAR _tbl1 = SELECTCOLUMNS ( FILTER ( OperationCertRequirement, [Operation] = _curOperation ), "Value1", [Certificate_Needed] )
VAR _tbl2 = SELECTCOLUMNS ( FILTER ( UserCertification, [User] = _curtUser && [Status] = "Active" ), "Value2", [Certificate] )
VAR _res = ADDCOLUMNS ( _tbl1, "Flag", INT ( NOT [Value1] IN _tbl2 ) )
RETURN IF ( SUMX ( _res, [Flag] ) > 0, "Cannot Execute", "Can Execute" )
Saludos
Alexander
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code FABINSIDER for a $400 discount!
Check out the February 2025 Power BI update to learn about new features.