viernes, agosto 05, 2016

De matriz a columna con Power Query

En el año 2008 publiqué una nota sobre como pasarlos datos de una matriz de varias columnas a una sola columna. La tarea la realizábamos con fórmulas que combinaban las funciones DESREF(), TRUNCAR(), RESIDUO() y COLUMNAS() entre otras. Como se puede intuir, bastante complicado. Agreguemos a esto los problemas de rendimiento que se presentan cuando tratamos de aplicarlas a matrices de cierto tamaño (recordemos que DESREF es volátil).

Un lector me consultaba sobre una macro para convertir una matriz de 24 columnas por 600 filas a una sola columna. La idea de usar una macro era obvia; aplicar fórmulas con DESREF a 14400 celdas de una hoja es una muy mala idea en términos de rendimiento.

Una macro puede dar una buena solución y una búsqueda en la Internet les permitirá encontrar varios códigos para hacerlo. Sin embargo, desde la aparición del Power Query (Excel 2010 en adelante), podemos hacerlo con facilidad y eficiencia sin necesidad de echar mano a las macros.


Suficiente cháchara; vamos a mostrar cómo hacerlo. Supongamos una matriz de 24 columnas por 600 filas que contiene valores numéricos y no tiene encabezamientos


El primer paso es cargar la matriz en la ventana del power query usando la opción “From Table”

asegurándonos de quitar la marca de la opción "My table has headers" (mi tabla tiene encabezados)


Una vez en la ventana del Power Query, agregamos una columna de índices (en el próximo paso se entenderá el objetivo)

Excel crea una columna de números consecutivos a partir del 1. La nueva columna será la última a la derecha (para la presentación en la nota he movido la columna a la izquierda, pero esta acción no es indispensable). Con esta columna seleccionada, usamos la opción "Unpivot other columns" en "Transform"


El reusltado es el siguiente


Ahora removemos las columnas "Index" y "Attribute" 


y cargamos la columna restante a una hoja del cuaderno (Close and Load)


¡Misión cumplida

Este video muestra el proceso, que se realiza en menos de un minuto!






2 comentarios:

  1. Buen día maestro, que bueno volver a saber de usted y gracias por estos nuevos ejercicios en nuestra nueva etapa de aprendizaje (Power BI), por cierto, muy buena recomendación con el libro de nuestros amigos Colombianos. Buen ejercicio. Saludos.

    ResponderBorrar
  2. Me sirvió bastante. Muchas Gracias! No conocia este paquete de herramientas que ahora está integrado en Office 2016.

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.