Hace algunos días enfrenté este problema: cargar una tabla a partir de un listado de nombres de campo y valores. Todos los campos y sus valores estaban listados hacia abajo (de manera «vertical»), solo dejando un espacio en blanco entre lo que correspondería a cada registro. Algo así como la siguiente figura:
A partir de esta información, se quiere reconstruir la tabla «original» para que quede como se observa a continuación:
Bueno, manos a la obra. Pueden descargar el archivo original desde aquí: Codigos. Acto seguido, abramos Power BI Desktop y cargamos los datos desde dicho Excel con la opción siguiente:
Luego de seleccionar el archivo y darle «Abrir», aparece la ventana siguiente:
Indudablemente, seleccionamos «Editar» (no sin antes haber seleccionado la hoja «Codigos» en el panel de la izquierda). Hecho esto, aparece la pantalla del Editor de Consultas («Query Editor») como a continuación:
Ahora viene la magia de Power Query. Como primer paso, vamos a eliminar las líneas en blanco con la opción «Remove Blank Rows» que se muestra a continuación como penúltima opción del menú desplegable:
Luego tenemos que agregar una columna que determine qué filas pertenecen a qué registro. Para eso notamos que cada vez que aparece la palabra «Codigo» en la columna de la izquierda, se inicia un nuevo registro. Para indicar ello, creamos una columna condicional que refleje ese cambio. Esto sucede en dos pasos: primero seleccionamos «Columna Condicional («Conditional Column») en el menú «Agregar Columna» («Add Column»)…
… luego llenar las opciones según la pantalla siguiente. Ojo que debajo de «Salida» («Output»), hay que seleccionar la opción «Seleccionar una columna» («Select a column») para que se pueda escoger «Column2» como valor del ultimo recuadro. Acto seguido, dar «OK».
La tabla nos queda así:
En la nueva columna creada (la de más a la derecha), se debe rellenar los números para que no existan nulos («null»), repitiendo el número de más arriba hasta que cambie el valor. Esta funcionalidad se llama «Rellenar hacia abajo» («Fill down») y la encontramos haciendo clic derecho sobre esta columna, tal como se muestra a continuación:
La tabla nos queda como a continuación (¡ya estamos cerca del final!)
Ahora tenemos que seleccionar la columna que contiene los nombres de los campos («Column1») y en el menú «Transformar» («Transform») seleccionar la opción de «Pivot Column» (me parece que se llama «Dinamización de columnas» en castellano)
Aparece una pantalla con opciones. Seleccionemos las que se muestran a continuación y le damos OK.
Voilà! Tenemos esta tabla ahora:
Solo queda eliminar la columna de la izquierda (clic derecho sobre el nombre de la columna y seleccionar «Remover») y tenemos lo que deseamos.
¿Qué les pareció? Espero sus comentarios.
Hola. Todo lo que uno puede hacer en el Query Editor es impresionante, sin conocer mucho el lenguaje M, solo utilizando las opciones ya definidas como Columna condicional o relleno hacia abajo, son muy buenas opciones. Saludos
Me gustaMe gusta
Efectivamente. La interfase ya es poderosa de por sí. Claro, M puede hacer mucho más
Me gustaMe gusta