Cómo hacer un join entre dos tablas en DAX

Idealmente, podemos hacer modificaciones a las tablas que cargamos a Power BI por medio del editor de Querys. Dentro de estas modificaciones esta el hecho de combinarlas de acuerdo a nuestras necesidades. En algunas ocasiones específicas, hacer modificaciones de este tipo desde el editor no es posible, razón por la cual, podemos recurrir al lenguaje DAX.
Para esto podemos utilizar la función "NATURALINNERJOIN", la cual realiza una combinación interna entre una tabla y otra por medio de un campo en común (llave).

Ejemplo

Deseamos calcular la calificación final de un alumno, producto del resultado de las cinco actividades de cada periodo y la evaluación final. Para esto buscamos generar una tabla con el detalle de las notas de cada periodo para posteriormente calcular su nota final con los siguientes parámetros.

  • Cada actividad pesa un 14% de la nota final del periodo.
  • La evaluación final pesa un 30% de la nota final de periodo.
  • La calificación final sera la ponderación del promedio de las actividades de los dos periodos.

Nuestros insumos son los resultados de las actividades del alumno por cada periodo:

Nuestro objetivo es generar una tabla con las actividades y los resultados de los dos periodos para calcular el detalle de la nota final.
Para llevar esto a cabo, creamos una nueva tabla y utilizamos la siguiente sentencia:

1. Crear nueva tabla

2. Sentencia INNERJOIN

Esta sentencia básicamente llama cada una de las columnas que se desean utilizar por medio de la función "Selectcolumns" de cada periodo para finalmente retornar la unión de las dos tablas correspondientes por medio de la función DAX "NATURALINNERJOIN".

Con este resultado, ya es posible calcular el detalle de las calificaciones finales obteniendo en una nueva columna la calificación promedio de los dos periodos y luego calcular la calificación promedio ponderada teniendo en cuenta las restricciones enunciadas al principio del ejemplo.

3. Generar nueva columna de calificación promedio

Se refleja el promedio de las notas de los dos periodos a analizar.

4. Calcular Calificación Final

Se calcula el resultado de la calificación de cada Actividad y Evaluación a partir de la columna de "Calificación Promedio" obtenida previamente teniendo en cuentas las respectivas ponderaciones.

Se ha llegado al resultado deseado, el cual era conocer el detalle de la calificación final de cada actividad y evaluación de los dos periodos por medio de un InnerJoin. El resultado de la nota final del estudiante sería la suma de las calificaciones ponderadas de cada una de las actividades:

5. Calificación Final

Gracias a lo hecho anteriormente y para finalizar el ejercicio, creamos una medida que será la suma de la columna "Calificación_Ponderada" de la tabla anterior, con lo que tendremos la calificación final obtenida por el estudiante.

Saludos !!

comments powered by Disqus