Traducir el blog

Tutorial 2 Power Query - Carrera de Barras

Posted on mayo 19, 2021 by Excel Pedro Wave

En la primera parte de este tutorial vimos cómo extraer datos con Power Query:

Tutorial 1 Power Query - Carrera de Barras

Ahora veremos la parte más interesante de esta excelente herramienta ETL - Extract, Transform and Load.


Cómo transformar los datos de la carrera

La transformación de los datos de la carrera de barras para los 10 países con más fallecimientos oficiales por Covid-19 consta de dos partes:

  1. Transformar la tabla dinamizada con una columna por día en una tabla normalizada con sólo 3 columnas: país, fecha y valor acumulado de fallecimientos. Esta transformación se explica en este artículo.
  2. Transformar la tabla normalizada anterior para calcular el valor diario de fallecimientos a partir del valor acumulado, mediante un truco que contaré más adelante. Esta transformación se explicará en el próximo artículo.


Cómo transformar la tabla dinamizada en normalizada

Con un solo paso se podría transformar la tabla en normalizada: "Anulación de dinamización", aunque realmente hacen falta aplicar unos cuantos pasos más:

  1. Columnas quitadas1:  Latitud y Longitud que no se usarán en la carrera.
  2. Anulación de dinamización: Este es el paso más importante pues normaliza la tabla para que cada Atributo y Valor estén en una fila distinta.
  3. Fechas convertidas: Convierte formatos de fecha americana "m/dd/aa" en fechas.
  4. Columna quitada: Quita columna de Atributo con las fechas americanas.
  5. Tipo cambiado a fecha: Columna como tipo fecha. Columna de valor como número.
  6. Columnas reordenadas:  A la derecha las columnas de fecha y valor.
  7. Filas agrupadas: Se agrupa por país y fecha, sumando los valores.
  8. Columnas con nombre cambiado: La primera columna es el país.

En esta imagen se pueden ver los 8 pasos aplicados:


Los pasos aplicados se guardan automáticamente en Lenguaje M, mientras se van generando con los menús asistidos de Power Query, y se pueden ver con el Editor avanzado de Power Query:


Pasos aplicados para transformar la carrera

La tabla dinamizada de la que partimos tiene cientos de columnas hacia la derecha, con una columna por día, desde el 22 de enero de 2020 hasta el día de la descarga actualizada, como muestra esta imagen después del paso de Encabezados promovidos:


Los pasos aplicados para transformar la tabla dinamizada, con una columna por día, en una tabla normalizada, con sólo 3 columnas: país, fecha y valor acumulado de fallecimientos, son:


1. Columnas quitadas1:  Latitud y Longitud que no se usarán en la carrera.

Los valores de geolocalización no son necesarios para la carrera por lo que, después de promover los encabezados, se seleccionan las columnas Lat y Long. Se hace clic con el botón derecho del ratón en la cabecera y se presiona: Quitar columnas



2. Anulación de dinamización: Este es el paso más importante pues normaliza la tabla para que cada Atributo y Valor estén en una fila distinta.

Los valores acumulados están en cientos de columnas, una columna por día. En este paso se transforman en dos columnas con cientos de filas: una columna para el día y otra columna para el valor acumulado, lo que normaliza la tabla.

Se seleccionan las dos columnas de la izquierda y en el menú Transformar se selecciona: Anulación de dinamización de otras columnas

Con ello se consigue transformar más de 400 columnas en 2 columnas, anulando la dinamización, con lo que se consigue transformar esta tabla dinamizada:

En esta otra tabla normalizada, perfecta como origen de datos de una tabla dinámica. Parece una paradoja que teniendo inicialmente los datos dinamizados haga falta anular la dinamización para luego aplicarles otra dinamización. No es ningún contrasentido pues la dinamización final no es la misma que la dinamización original:


3. Fechas convertidas: Convierte formatos de fecha americana "m/dd/aa" en fechas.

El paso anterior aplicado ha transformado las fechas en una única columna denominada Atributo, con formato texto de fecha americana, o sea los meses antes que los días.

Este nuevo paso transforma la fecha americana, de la columna Atributo, en fecha manejable por Power Query en una nueva columna: Date

Para ello se debe seleccionar en el menú: Agregar columna y luego: Columna personalizada, con lo que aparece esta ventana en la que hay que editar la fórmula = Date.FromText([Atributo],"en-US") y presionar el botón Aceptar:

4. Columna quitada: Quita columna de Atributo con las fechas americanas.

Como ya no hace falta, se selecciona la columna Atributo, se hace clic con el botón derecho del ratón para mostrar el menú contextual, y se hace clic en: Quitar


5. Tipo cambiado a fecha: Columna como tipo fecha y columna de valor como número.

Se selecciona la columna Date, se hace clic con el botón derecho del ratón para mostrar el menú contextual, y se cambia su tipo a Fecha.
Además se selecciona la columna Value, se hace clic con el botón derecho del ratón para mostrar el menú contextual, y se cambia su tipo a Número entero.

  

6. Columnas reordenadas:  A la derecha las columnas de fecha y valor.

Se selecciona la columna de la izquierda y se desplaza como segunda columna. Se selecciona la columna de la derecha y se desplaza como tercera columna.


7- Filas agrupadas: Se agrupa por país y fecha, sumando los valores.

Se seleccionan las columnas de país y de fechas y, en el menú Inicio, se hace clic en: Agrupar por, con la operación Suma de valores, se edita el nuevo nombre de columna como Value, y se presiona el botón: Aceptar, con lo que los datos de estados se sumarizan en cada país.



8. Columnas con nombre cambiado: La primera columna es el país.

A la primera columna se le cambia el nombre: Country.


Con lo que ya tenemos por fin la tabla normalizada con sólo 3 columnas: país, fecha y valor acumulado de fallecimientos.

¡Objetivo cumplido con Power Query!

En la 3ª parte de este tutorial explico cómo transformar la tabla normalizada anterior para calcular el valor diario de fallecimientos a partir del valor acumulado:

Tutorial 3 Power Query - Carrera de Barras

No Response to "Tutorial 2 Power Query - Carrera de Barras"

Leave A Reply

Indícame las erratas que encuentres y qué es lo que te gustaría ver en los próximos artículos.

Mi lista de blogs