Ir al contenido principal

Creando un Dasboard en Power BI para control de capacitaciones

 Dasboard Principal

El objetivo principal de este dashboard es garantizar que las organizaciones cumplan con esta normativa, proporcionando un seguimiento preciso y visual de las capacitaciones recibidas por los empleados. Este tipo de dashboard permite a las empresas tener una visión clara del estado actual de sus programas de capacitación, facilitando la toma de decisiones basada en datos.

Algunos de los aspectos que este dashboard podría incluir son:

  1. Número total de capacitaciones realizadas: Indicando cuántas capacitaciones se han realizado en el período evaluado.

  2. Distribución de capacitaciones por trabajador: Identificar cuántos trabajadores han cumplido con el mínimo de 4 capacitaciones, cuántos tienen 3, 2, 1 o ninguna.

  3. Porcentaje de avance: Medir el porcentaje de cumplimiento del programa de capacitaciones respecto a la meta anual de 4 capacitaciones.

  4. Capacitaciones programadas versus asistidas: Ayuda a identificar las capacitaciones que han sido programadas y cuántos trabajadores realmente asistieron, versus aquellos que no lo hicieron.

  5. Seguimiento de trabajadores sin cumplir la meta: Un filtro o alerta que muestre qué trabajadores no han alcanzado las 4 capacitaciones, para poder actuar de manera proactiva.

El material presentado en este contexto busca ser una herramienta de apoyo fundamental para las empresas que deben cumplir con las normativas de seguridad y salud en el trabajo. La visualización y el análisis de datos proporcionados por Power BI ayudarán a asegurar que las organizaciones mantengan una cultura de cumplimiento y tomen decisiones basadas en información actualizada y relevante.

Fuente de datos

Tabla de Trabajadores

Tabla de Capacitaciones


Transformando Datos en Power Query

Definiendo Parametro.

Extraendo tabla de trabajadores.

Extraendo tabla de Capacitaciones.

Modelo semántico

Creando Medidas DAX.

  • Nro de capacitaciones = DISTINCTCOUNT(DetalleCapacitacion[CapacitacionID])
  • nro. de trabajadores = DISTINCTCOUNT(Trabajador[TrabajadorCodigo])
  • Cantidad de capacitaciones asistidas = CALCULATE(COUNT(DetalleCapacitacion[CapacitacionID]),FILTER(DetalleCapacitacion,DetalleCapacitacion[Asistio]="Si"))
  • Cantidad de capacitaciones Programadas = CALCULATE(COUNT(DetalleCapacitacion[CapacitacionID]))
  • Cantidad de capacitaciones no asistidas = [Cantidad de capacitaciones Programadas]-[Cantidad de capacitaciones asistidas]
  • % de asistencia = DIVIDE([Cantidad de capacitaciones asistidas],[Cantidad de capacitaciones Programadas])
  • Trabajadores con ≥ 4 Capacitaciones =
    CALCULATE(
        COUNTROWS(
            FILTER(
                ADDCOLUMNS(
                    SUMMARIZE(
                        'DetalleCapacitacion',
                        Trabajador[TrabajadorCodigo]
                    ),
                    "TotalCapacitaciones", CALCULATE(DISTINCTCOUNT('DetalleCapacitacion'[CapacitacionID]))
                ),
                [TotalCapacitaciones] >= 4 && not ISBLANK(Trabajador[TrabajadorCodigo])
            )
        )
    )
  • Trabajadores con 3 Capacitaciones =
    CALCULATE(
        COUNTROWS(
            FILTER(
                ADDCOLUMNS(
                    SUMMARIZE(
                        'DetalleCapacitacion',
                        Trabajador[TrabajadorCodigo]
                    ),
                    "TotalCapacitaciones", CALCULATE(DISTINCTCOUNT('DetalleCapacitacion'[CapacitacionID]))
                ),
                [TotalCapacitaciones] = 3 && not ISBLANK(Trabajador[TrabajadorCodigo])
            )
        )
    )
  • Trabajadores con 2 Capacitaciones =
    CALCULATE(
        COUNTROWS(
            FILTER(
                ADDCOLUMNS(
                    SUMMARIZE(
                        'DetalleCapacitacion',
                        Trabajador[TrabajadorCodigo]
                    ),
                    "TotalCapacitaciones", CALCULATE(DISTINCTCOUNT('DetalleCapacitacion'[CapacitacionID]))
                ),
                [TotalCapacitaciones] = 2 && not ISBLANK(Trabajador[TrabajadorCodigo])
            )
        )
    )
  • Trabajadores con 1 Capacitacion =
    CALCULATE(
        COUNTROWS(
            FILTER(
                ADDCOLUMNS(
                    SUMMARIZE(
                        'DetalleCapacitacion',
                        Trabajador[TrabajadorCodigo]
                    ),
                    "TotalCapacitaciones", CALCULATE(DISTINCTCOUNT('DetalleCapacitacion'[CapacitacionID]))
                ),
                [TotalCapacitaciones] = 1 && not ISBLANK(Trabajador[TrabajadorCodigo])
            )
        )
    )
  • Trabajadores con 0 Capacitaciones = [Trabajadores que no tienen 4 capacitaciones]-[Trabajadores con 3 Capacitaciones]-[Trabajadores con 2 Capacitaciones]-[Trabajadores con 1 Capacitacion]
  • Trabajadores que no tienen 4 capacitaciones = [nro. de trabajadores]-[Trabajadores con ≥ 4 Capacitaciones]
  • Nro Trabajadores asistieron al menos a una capacitación = CALCULATE(DISTINCTCOUNT(DetalleCapacitacion[TrabajadorCodigo]),FILTER(DetalleCapacitacion,DetalleCapacitacion[Asistio]="Si"))
  • % avance de capactitaciones = DIVIDE([Trabajadores con ≥ 4 Capacitaciones],[nro. de trabajadores])

Capacitaciones por Trabajador.

Trabajador con Nro de capacitaciones

Capacitaciones por capacitador

Capacitaciones por tema

Matriz Tema Trabajador

Trabajador con menos de 4 capacitaciones
Power BI (Versión: 2.132.1053.0)
normativa vigente (Ley N° 29783 - Ley de Seguridad y Salud en el Trabajo)


Comentarios

Entradas populares de este blog

Trabajando con datos masivos SQL Server, VFP, XML, Stored procedures

 Trabajando con datos masivos SQL Server, VFP, XML, Stored procedures. Introducción En el mundo de la gestión de bases de datos, la eficiencia y la rapidez en la manipulación de datos son cruciales. Una técnica que ha ganado popularidad por su capacidad para manejar grandes volúmenes de datos de manera eficiente es el uso de XML para la inserción y modificación masiva de registros en SQL Server. Esta metodología no solo optimiza el rendimiento, sino que también simplifica el proceso de actualización de múltiples registros, lo que resulta en una mejora significativa en la productividad y la precisión de las operaciones. Las bondades de trabajar con XML para la inserción y modificación masiva de registros Eficiencia en el manejo de datos masivos : Utilizar XML como parámetro permite enviar múltiples registros en una sola transacción. Esto reduce considerablemente el número de llamadas a la base de datos, minimizando el overhead asociado y acelerando el proceso de inserción o actualiz...
Conectando SAP HANA con Power BI: Guía Práctica paso a paso En este artículo te muestro cómo conectar SAP HANA con Power BI utilizando servicios OData. Esta integración permite transformar datos en insights visuales y facilita la toma de decisiones con base en los archivos gestionados dentro del sistema SAP. 1. Creación del OData en SAP Usamos la transacción SEGW para crear un proyecto personalizado (por ejemplo, con prefijo Z ). Dentro del proyecto: Se define el modelo de datos con Entity Types , Entity Sets y la implementación del servicio . 2. Implementación del método GET_ENTITYSET Este método se utiliza para construir la consulta que nos devolverá los datos deseados. En el ejemplo, se trabaja con la tabla SOOD para obtener información de los archivos: SELECT sood~file_ext, sood~objlen, sood~cronam, sood~objdes, sood~crdat, concat( concat( concat( 'FOL38000000000004', sood~objtp ), sood~objyr ), sood~objno ) AS instid_b INTO TABLE @DATA(lt_sood) FROM soo...