Traducir el blog
Tutorial 3 Power Query - Carrera de Barras
En la segunda parte de este tutorial vimos cómo transformar datos dinamizados en normalizados con Power Query:
Ahora veremos cómo transformar los datos acumulados en datos diarios gracias a un buen truco con Power Query para poder calcular diferencias de un dato con el previo.
Truco para transformar datos acumulados en diarios
Ismael Romero es el autor del blog ExcelFORO, de obligada lectura para quienes queremos aprender a sacarle el máximo provecho a Excel. En el siguiente artículo publicó el truco que me ha ayudado a resolver la transformación de datos acumulados en datos diarios:
En este artículo se explica cómo calcular diferencias de un dato con el previo, bien en valor absoluto o bien la variación porcentual, aunque el valor porcentual no hace falta para transformar la carrera de barras.
Cómo transformar la carrera en datos diarios
Al extraer los datos originales de la Web se obtienen datos acumulados para la carrera de barras de los 10 países con más fallecimientos oficiales por Covid-19. Para correr la carrera con datos diarios hay que transformar los datos acumulados por país, calculando la diferencia con el dato acumulado anterior, para lo que he empleado el truco de Ismael Romero.
Para transformar los fallecimientos acumulados cada día en cada país en fallecimientos diarios por país, los pasos aplicados son:
- Índice agregado: Se agrega columna de índice desde 0
- Índice agregado1: Se agrega columna de índice desde 1
- Consultas combinadas: Combina índices y crea tablas indexadas
- Se expandió Índice agregado1: Se expande el valor de la tabla indexada
- Filas ordenadas: Se ordena por el índice desde 0
- Personalizada agregada: Diferencia entre el valor y el valor anterior
- Columna condicional agregada: Cuando las filas son de distinto país, si la diferencia <0 entonces 0
- Columnas quitadas: Quita todas las columnas auxiliares
- Tipo cambiado: Cambia el tipo de valor a número
- Errores reemplazados: Reemplaza error por 0 en la fila 1
En esta imagen se pueden ver los 10 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:
¡Anda que no hay que dar pasos para restar el valor de una fila del valor de la fila anterior!
¡Con fórmulas en Excel bastaría el paso 6!
La principal ventaja de hacer la transformación con Power Query es que sólo se hace la transformación cuando se cargan más datos de la Web, como mucho una vez al día. Con datos de 2 años harían falta actualizar los datos de 730 días para más de 200 países, por lo que se recalcularían unas 146.000 filas cada día que cambiara la animación de la carrera de barras, lo que ralentizaría tremendamente la carrera.
Con Power Query, la carga de datos acumulados y datos diarios se hace solamente cuando se consulta la Web, por lo que la tabla cargada es estática y es el origen de datos de las tablas dinámicas, que veremos en un próximo tutorial dentro de unos días. Como no hace falta refrescar las tablas dinámicas si no se consultan nuevos datos de la Web, podemos considerar que las tablas dinámicas son "estáticas" para nuestra carrera. Por lo tanto únicamente hay que preparar los datos a visualizar durante la carrera, consiguiendo que la carrera sea los más animada posible.
¡Vaya paradoja! ¡Usar tablas dinámicas como tablas estáticas!
Pasos aplicados para transformar la carrera
En el artículo anterior se explicó cómo obtener una tabla normalizada con datos acumulados en la columna: Value
En este artículo se explica cómo obtener datos diarios en la columna: Increment, aplicando 10 nuevos pasos, como se puede ver en esta imagen:
Para continuar donde lo dejamos en el artículo anterior, se abre el Editor de Power Query desde el menú de Excel: Datos > Obtener datos > Iniciar Editor de Power Query
Los pasos aplicados para transformar la tabla con datos acumulados en una tabla con datos diarios, con 4 columnas: país, fecha, valor acumulado y valor diario de fallecimientos, son explicados a continuación:
1. Índice agregado: Se agrega columna de índice desde 0
Como en la imagen, se selecciona desde el menú: Agregar columna > Columna de índice > Desde 0
Con lo que se crea la fórmula M:
#"Índice agregado" = Table.AddIndexColumn(#"Columnas con nombre cambiado", "Índice", 0, 1, Int64.Type),
2. Índice agregado1: Se agrega columna de índice desde 1
Como en la imagen, se selecciona desde el menú: Agregar columna > Columna de índice > Desde 1
Con lo que se crea la fórmula M:
#"Índice agregado1" = Table.AddIndexColumn(#"Índice agregado", "Índice.1", 1, 1, Int64.Type),
3. Consultas combinadas: Combina índices y crea tablas indexadas
Como en la imagen, se selecciona desde el menú: Inicio > Combinar consultas
Con lo que se crea la fórmula M:
#"Consultas combinadas" = Table.NestedJoin(#"Índice agregado1", {"Índice"}, #"Índice agregado1", {"Índice.1"}, "Índice agregado1", JoinKind.LeftOuter),
En la siguiente imagen se selecciona la misma consulta en la segunda tabla. En la primera tabla se selecciona la columna Índice En la segunda tabla se selecciona la columna Índice.1 Se presiona la tecla: Aceptar
4. Se expandió Índice agregado1: Se expande el valor de la tabla indexada
Como en la imagen, en la columna Índice agregado1 se selecciona el icono de la derecha (con 2 flechas, una para cada lado) y se selecciona solamente la columna: Value
Con lo que se obtiene el valor de la fila anterior y se crea la fórmula M:
#"Se expandió Índice agregado1" = Table.ExpandTableColumn(#"Consultas combinadas", "Índice agregado1", {"Value"}, {"Índice agregado1.Value"}),
5. Filas ordenadas: Se ordena por el índice desde 0
El paso anterior ha desordenado las filas, por lo que este paso las volverá a ordenar. Como en la imagen, en la columna Índice se selecciona el icono de orden ascendente.
Con lo que se crea la fórmula M:
#"Filas ordenadas" = Table.Sort(#"Se expandió Índice agregado1",{{"Índice", Order.Ascending}}),
6. Personalizada agregada: Diferencia entre el valor y el valor anterior
Ahora ya tenemos el valor acumulado de una fila y el valor acumulado de la fila anterior, por lo que se puede calcular la diferencia que será el valor diario.
Se selecciona desde el menú: Agregar columna > Columna personalizada
En la siguiente pantalla se escribe la fórmula para calcular la diferencia:
= [Value]-[Índice agregado1.Value]
con el nuevo nombre de columna: Difference
Con lo se crea la fórmula M:
#"Personalizada agregada" = Table.AddColumn(#"Filas ordenadas", "Difference", each [Value]-[Índice agregado1.Value]),
7. Columna condicional agregada: Cuando las filas son de distinto país, si la diferencia <0 entonces 0
La diferencia de cada fila también resta valores de países distintos. Este paso crea una columna condicional para que, cuando en cada fila la diferencia es negativa por ser de países distintos, sea de valor cero, de lo contrario mantiene la diferencia calculada en el paso anterior.
Se selecciona desde el menú: Agregar columna > Columna condicional
En la siguiente pantalla se selecciona la columna Difference, con operador es menor que, con valor 0, entonces 0. De lo contrario: Difference
Con lo se crea la fórmula M:
#"Columna condicional agregada" = Table.AddColumn(#"Personalizada agregada", "Increment", each if [Difference] < 0 then 0 else [Difference]),
8. Columnas quitadas: Quita todas las columnas auxiliares
Las columnas auxiliares que se han ido creando en los pasos anteriores ya no hacen falta, por lo que se pueden quitar.
Se seleccionan las columnas: Índice, Índice.1, Índice agregado1.Value, Difference
Se hace clic con el botón derecho del ratón sobre una de esas columnas, para mostrar el menú contextual, y se hace clic en: Quitar columnas
Con lo se crea la fórmula M:
#"Columnas quitadas" = Table.RemoveColumns(#"Columna condicional agregada",{"Índice", "Índice.1", "Índice agregado1.Value", "Difference"}),
9. Tipo cambiado: Cambia el tipo de valor a número
Este paso cambia el tipo de la columna Increment para que sea del tipo entero. Se hace clic con el botón derecho del ratón sobre esa columna, para mostrar el menú contextual, se selecciona Cambiar tipo y se hace clic en: Número entero
Con lo se crea la fórmula M:
#"Tipo cambiado" = Table.TransformColumnTypes(#"Columnas quitadas",{{"Increment", Int64.Type}}),
10. Errores reemplazados: Reemplaza error por 0 en la fila 1
En la columna Increment hay un error en la primera fila debido a que no existe el valor anterior para calcular la diferencia, por lo que hay que reemplazar ese error.
Se selecciona la columna Increment y se selecciona desde el menú: Transformar > Reemplazar los valores > Reemplazar errores
En la ventana para reemplazar errores se escribe el valor 0.
Con lo se crea la fórmula M:
#"Errores reemplazados" = Table.ReplaceErrorValues(#"Tipo cambiado", {{"Increment", 0}})
Con este último paso se han conseguido obtener los valores diarios en la columna Increment, a partir de los valores acumulados de la columna Value, como se pretendía. Ahora ya tenemos una tabla con los países y los valores diarios y acumulados cada día de fallecimientos oficiales debidos al Covid-19.
¡Ya están listos los datos para comenzar a visualizar la carrera de muertos por el Coronavirus!
Vídeos de la carrera con Power Query
En los siguientes vídeos se explica cómo generar la tabla de datos acumulados y diarios con Power Query partiendo de la consulta a la Web:
En el próximo artículo explicaré cómo convertir esta tabla en un gráfico con la carrera de barras en Excel.
Mi lista de blogs
-
Jugando al Rabino en Excel - Parte 7 - 🔝*To translate this blog post to your language, select it in the top left Google box. * Parte 7 de un juego del Rabino Esta es la séptima parte de ...Hace 23 horas
-
CREAR APP PARA LEER CÓDIGOS QR Y GUARDAR FECHA DE ESCANEO - Hola a todos! Hace casi un mes publicaba cómo podíamos hacer una App que fuese capaz de leer los códigos de barras: CREAR APP PARA … La entrada CREAR AP...Hace 2 días
-
Calendario 2025 Excel: Imprime, Personaliza y Organiza tu Año - Calendario 2025 Excel ya puedes descargar la plantilla para imprimir gratis. En formato hoja de cálculo Excel. Escribe a hola@excelcontabilidadytic.com y...Hace 2 días
-
Sumas de potencias consecutivas - Existen fórmulas para sumar las primeras potencias de números naturales. Son populares las de la suma de potencias con los primeros exponentes. En esta c...Hace 6 días
-
FREE Calendar & Planner Excel Template for 2025 - Here is a fabulous New Year gift to you. A free 2025 Calendar Excel Template with built-in Activity planner. This is a fully dynamic and 100% customizabl...Hace 1 semana
-
Secretos de Excel que ni los Expertos Dominan – PARTE 1 - Hace poco, en un Live con mi amigo Gerson Pineda, caímos en la cuenta de algo interesante: hay detalles en […] The post Secretos de Excel que ni los Expe...Hace 1 semana
-
Scipy update and Linalgfuncs speed check - I have updated the Scipy code to remove repeated loading of the Numpy code, and to fix a number of other warnings from the pyxll log file. I have also upda...Hace 1 semana
-
Debra’s Excel News–December 2024 - Fix a column header problem, QAT tips, and more, in this month’s Excel news. Visit my Excel website for more tips, tutorials and videos, and check the inde...Hace 2 semanas
-
5 Ways To Show All Notes in Microsoft Excel - Are you wondering how to show all notes in Excel? To unlock all the secrets of Microsoft Excel worksheet notes, keep reading! Managing notes in Excel can f...Hace 5 semanas
-
Color, Conditions, and Copilot: How to save time using conditional formatting with Copilot in Excel - Hi everyone, this is part 11 in a series of posts to show you some of the things that are possible to do with Copilot in Excel. *What is conditional f...Hace 1 mes
-
4 ejemplos de utilización de validación de datos con fórmulas - Ya sabes que la herramienta de Validación de datos es de gran utilidad para controlar y restringir la introducción de datos y así, asegurarte de…Hace 3 meses
-
Trucos de Excel: Referencias Relativas, Absolutas y Mixtas Explicadas ✨ [VIDEO] - ¡Hola a todos! Hoy hablaremos sobre un tema muy importante para quienes usan Excel: los tipos de referencia. Las referencias son fundamentales al momento d...Hace 3 meses
-
How To Predict Bearing Life With Excel - When you work in mechanical engineering, understanding the reliability and performance of bearings under various conditions is crucial. Bearings are the co...Hace 3 meses
-
-
Minutos de juego y puntos. El Espanyol, sus finales de partido y mis enfados - Pienso que el Espanyol este 2024 se está dejando muchos puntos al final de los partidos. Cuando el ... Leer más » The post Minutos de juego y puntos. El ...Hace 8 meses
-
TikTok’s search evolution - 2 in 5 Americans use TikTok as a search engine. Nearly 1 in 10 Gen Zers are more likely to rely on TikTok than Google as a search engine. More than half of...Hace 9 meses
-
MASTERCLASS Gratis – Gráfica de Gestión Proyectos en #EXCEL. - Aprende a crear un Gráfico de CURVA S, ideal para GESTIÓN DE PROYECTOS, porque te permite identificar como esta tu proyecto tanto en COSTOS como en TIEMP...Hace 10 meses
-
Demos cursos de Excel 2007, 2010, 2013, 2016, 365 - Puedes consultar las demostraciones de los siguientes capítulos de los cursos Excel. Demo cursos ExcelHace 11 meses
-
Unblocking and Enabling Macros - When Windows detects that a file has come from a computer other than the one you're using, it marks the file as coming from the web, and blocks the file....Hace 1 año
-
Office Scripts: Trabajando con Tablas - [image: Office Scripts: Trabajando con Tablas] Me he dado cuenta que últimamente solo escribo de lenguaje M (es mi pequeño vicio)... pero hay que liberar l...Hace 1 año
-
Hello world! - [image: Hello world!] Welcome to WordPress. This is your first post. Edit or delete it, then start writing!Hace 2 años
-
La importancia de saber mecanografía en 2022 - [image: Resultado de imagen de mecanografía viñeta escribiendo a máquina] Según la RAE, la mecanografía es el arte de escribir a máquina. Hace unos cuantos...Hace 2 años
-
London Excel Meetup Workbooks - The workbooks used in my presentation on “Analytical and Interactive Dashboards in Excel” at the London Excel Meetup, September 3, 2020Hace 4 años
-
Cálculo de jornada que termina al día siguiente (Power Query) y despedida - [image: Cálculo de jornada que termina al día siguiente (Power Query) y despedida] Este blog se ha ocupado de cálculos de tiempo con bastante intensidad, c...Hace 4 años
-
Agenda Perpetua Excel Calendario Perpetuo - Saludos a los ingenieros y a todos los que forman parte de nuestra comunidad de planillas Excel para ingeniería civil, ya se vienen las fiestas navideñas y...Hace 5 años
-
International Keyboard Shortcut Day 2019 - The first Wednesday of every November is International Keyboard Shortcut Day. This Wednesday, people from all over the world will become far less efficient...Hace 5 años
-
Welcome, Prashanth! - Last March, I shared that we were starting to look for a new CEO for Stack Overflow. We were looking for that rare combination of someone who… Read more "W...Hace 5 años
-
Visualize parts and whole - combine clustered column and stacked column charts - *Inga: Disa what?* *Igor: -ppeared.* by The FrankensTeam ------------------------------ Really it was 3 years ago we posted our last article? *Freddy: Th...Hace 5 años
-
Salvador Sostres, analfabeto profesional - Los nuevos tiempos traen nuevas profesiones. Internet, además, ha revolucionado el mundo del periodismo y la palabra escrita. Adaptarse o morir, ese es el ...Hace 6 años
-
Planificación de compras - Realizar una lista con los productos que necesitamos y que formarán parte de nuestra cesta de la compra nos ayuda a *encontrar la combinación de bienes p...Hace 12 años
-
-
-
-
-
-
-
-
-
No Response to "Tutorial 3 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.