Está en la página 1de 12

I.

INFORMACIÓN GENERAL

Tipo : Evaluación de desempeño


Capítulo : Transformación de datos con Power Query M.
Duración : 0.30 hc / 0.40 ha

II. OBJETIVO

Identificar y aplicar funciones básicas del lenguaje M para anular la dinamización de


columnas.

III. REQUISITOS

Los siguientes elementos de software son necesarios para la realización del laboratorio:

• Power BI Desktop.
• Conexión a internet.

IV. EJECUCIÓN DEL LABORATORIO

Evaluación: Anulación de datos avanzado con M

En este escenario se cuenta con un conjunto de columnas de un Excel correspondiente a un


periodo de tiempo, comentarios y algún estado relacionado al análisis de los empleados de
una empresa.

Entonces, se requiere anular la dinamización de los datos para que la fecha, el comentario y
el estado sean columnas y así disponer de una tabla tabular. ¿Cómo se hace?

IES Cibertec S.A.C 1


1. Carga datos.

a. Abre Power BI Desktop.

b. Carga fuentes. En la pestaña Inicio, haz clic en Obtener datos y selecciona la opción
Excel.

c. En la ventana de selección de fuentes, selecciona el archivo Anulación de


Dinamización.xlsx. Selecciona la hoja Escenario. Haz clic en Transformar Datos.

IES Cibertec S.A.C 2


d. Visualiza el resultado de la consulta Escenario en la cual el editor de Power Query
ha generado varios pasos sobre la información obtenida, asignando un tipo de
datos a algunas columnas.

2. Promueve las cabeceras.

a. En la cinta de opciones pestaña Transformar, haz clic en la opción Usar la primera


fila como encabezados. Automáticamente el editor Power Query incluirá un nuevo
paso para asignar tipo de datos a algunas columnas.

IES Cibertec S.A.C 3


b. Finalmente, quedará de la siguiente manera:

3. Transforma los datos para anular la dinamización de las columnas.

a. En este escenario se requiere contar con las columnas: Nombre completo, Fecha,
Comentario y Estado. Pero se visualiza que en la misma columna de fecha está el
estado, se debe averiguar qué opciones se dispone para lograr el objetivo.

b. Selecciona la columna Nombre Completo y haz clic derecho sobre la columna, elige
la opción Anular la Dinamización de las otras columnas.

IES Cibertec S.A.C 4


c. Visualiza el resultado. Se tiene solo parte del objetivo requerido, pues en realidad
se necesitan dos columnas Atributo, una que almacene la fecha y la otra el
comentario. Pero la transformación de Anulación de la dinamización de otras
columnas no logra ese efecto; pues siempre se crea una sola columna atributo y
una sola columna valor.

4. Transforma los datos para obtener un patrón.

a. Flexibiliza creando un patrón a los datos almacenados en la columna Atributo.


Imagina que el patrón es fecha y comentario; aunque se sepa que en algunos casos
el empleado siempre ha asistido y no ha presentado ninguna falta (sin comentario).
El patrón consistirá en validar la celda siguiente, si este es comentario entonces
tomar la columna Valor y en caso contrario colocar Null (para las fechas que no
tengan comentario).

b. Existen varios caminos para solucionar este problema, pero se presenta el menos
complejo.

IES Cibertec S.A.C 5


5. Agrega columna con índice.

a. Se requiere una columna auxiliar que permita identificar cada fila de la consulta.
Esta nueva columna ayuda a recorrer fila por fila y evalúa con ayuda de lenguaje M.

b. En la cinta de opciones Agregar columnas selecciona Columna de Índice y escoge


Desde 1.

c. De esta forma se incluirá una nueva columna llamada Índice que almacena un
correlativo de números que inician desde 1 hasta N. Este índice logra ayudar con
el desarrollo del patrón de búsqueda del registro siguiente para obtener el valor
del comentario en una columna personalizada.

6. Agrega columna personalizada.

a. Guarda los valores de cada fila en una tabla. En la cinta de opciones Agregar
columna, selecciona Columna personalizada.

b. En la cinta de opciones Agregar columna selecciona Columna personalizada. En la


formula, escribe el nombre del paso de índice agregado.

= #”Índice agregado”

IES Cibertec S.A.C 6


c. Visualiza el contenido de Table generado por la columna personalizado y se obtiene
información de la tabla completa. El código M creado utiliza la función
Table.AddColumn, en el cual está iterando (each) los valores cargados en el paso
“#índice Agregado”.

7. Actualiza columna personalizada (Modificación 1).

a. El objetivo es leer la fila siguiente de la columna Atributo. Existen varias formas de


implementarlo; la primera es simplemente modificar el paso “Personalizada
agregada” directamente desde la barra de fórmulas. La segunda forma es hacer clic
derecho sobre la consulta Escenario y del menú desplegable selecciona Editor
avanzado y modifica el código directamente desde allí.

Table.AddColumn(#"Índice agregado", "Personalizado", each #"Índice


agregado"[Atributo])

IES Cibertec S.A.C 7


b. Como se puede visualizar la información de la columna Atributos se ha convertido
en una lista.

8. Actualiza columna personalizada (Modificación 2).

a. Ahora se debe recorrer cada fila de la lista para obtener la celda siguiente. En este
escenario se debe considerar que la última fila podría generar error; esto debido
que al llegar al último registro no se encontrará datos en la siguiente celda. Para
controlar este problema, aplica la expresión “?”.

= Table.AddColumn(#"Índice agregado", "Personalizado",


each
#"Índice agregado"[Atributo]{[Índice]}?
)

IES Cibertec S.A.C 8


9. Actualiza columna personalizada (Modificación 3).

a. Edita el código M del paso “Personalizada agregada” e incluye la función Text.Start


que permite seleccionar una letra del registro anterior.

= Table.AddColumn(#"Índice agregado", "Personalizado",


each
Text.Start(#"Índice agregado"[Atributo]{[Índice]} ?,1)
)

10. Actualiza columna personalizada (Modificación 4).

a. Ahora el objetivo es obtener el dato de la columna Valor, pero de la celda siguiente.


Por ejemplo, de la fila 2 con atributo Comentario se debe obtener el valor
Incapacidad en la columna personalizada. Edita el paso “Personalizada agregada” e
incluye una evaluación condicional con if.

= Table.AddColumn(#"Índice agregado", "Personalizado",


each
if Text.Start(#"Índice agregado"[Atributo]{[Índice]} ?,1) = "C" then
#"Índice agregado"[Valor]{[Índice]}? else null
)

IES Cibertec S.A.C 9


11. Filtra datos.

a. Finalmente, se puede filtrar la columna Atributo seleccionando la opción Filtros de


Texto y haz clic en No empieza por para eliminar los registros con la palabra
comentario.

b. Luego, digita la letra “C”. De esta manera, se elimina las filas de comentario que
son innecesarias, pues ahora esos comentarios están registrados en la columna
Personalizado.

IES Cibertec S.A.C 10


c. Se visualizará de la siguiente manera:

12. Transformaciones básicas de las columnas.

a. Elimina la columna Índice.

b. Renombra las siguientes columnas:

Nombre de columna
Nombre Columna original
cambiada
Atributo Fecha
Valor Status
Personalizado Comentario

c. Cambia el tipo de datos de las siguientes columnas:

Nombre Columna Tipo de dato


Fecha Fecha
Status Texto
Personalizado Texto

d. Cambia el nombre de la consulta de Escenario a Análisis de Empleados.

IES Cibertec S.A.C 11


e. Finalmente, la consulta se visualizará de la siguiente manera:

13. Luego, cierra y aplica.

14. Guarda con el nombre de Examen Cap. 03 – Nombre del alumno.

IES Cibertec S.A.C 12

También podría gustarte