Pedido de libros. Pasar contenido de un pedido que figura en varios registros a un solo registro
publicado
Hola a todos.
Tengo una tabla de unos 3000 registros de un pedido de libros de un colegio. Esta tabla la he obtenido con Power Query relacionando tres tablas de pedidos, alumnos y libros.
Se genera una fila por cada detalle del pedido
Si un usuario ha pedido 5 libros se obtienen 5 filas.
En las 5 filas se repiten la clase del alumno (clase) el número de usuario (usuario), la matrícula del alumno (mat), sun dni (dni), la persona que realiza el pedido (inscriptor), la fecha (fecha), un campo que indica que se acepta la reserva (reserva) y el nombre del alumno (nombre).
Los datos diferentes de cada fila son el libro (libro) y el precio (precio) de cada detalle.
Si alguien ha pedido 5 libros se obtienen 5 filas en las que cambian los campos libro y precio.
La estructura de cada fila es esta.
CLASE - USUARIO - MAT - DNI - INSCRIPTOR - FECHA - RESERVA - NOMBRE - LIBRO - PRECIO
La tabla es perfecta porque me permite obtener todos los datos necesarios con una tabla combinada. Puedo hacer resúmenes por clase y ver que ha comprado cada alumno y ha cuanto asciende la factura de cada uno. También me permite pasarla a Access y generar reportes sin problemas, como facturas.
El caso es que me han pedido que la tabla la presente de otra forma. Desean un solo registro por cada usuario y que cada libro y precio sean columnas diferentes. La estructura sería así:
El número de columnas de LIBRO Y PRECIO vendrá en función del pedido que contenga más libros.
No tengo problemas en generar algo así utilizando VBA, un bucle recorrería la tabla colocando cada libro en las columnas correspondientes poniendo un contador a cero cuando cambiase el número de matrícula. Sin embargo, me gustaría aprender a hacerlo con Excel o Power Query, probablemente con la opción de dinamización, que desconozco por completo.
Os adjunto un fichero de ejemplo del que he modificado los nombres y los dni. En el fichero se pude ver también la tabla dinámica que menciono. El fichero solo incluye 72 registros de 3 clases, el original tiene 3000 registros con más de 20 clases. Indicaros que el campo "Clase" no es numérico y puede contener letras.
Hola a todos.
Tengo una tabla de unos 3000 registros de un pedido de libros de un colegio. Esta tabla la he obtenido con Power Query relacionando tres tablas de pedidos, alumnos y libros.
La estructura de cada fila es esta.
CLASE - USUARIO - MAT - DNI - INSCRIPTOR - FECHA - RESERVA - NOMBRE - LIBRO - PRECIO
La tabla es perfecta porque me permite obtener todos los datos necesarios con una tabla combinada. Puedo hacer resúmenes por clase y ver que ha comprado cada alumno y ha cuanto asciende la factura de cada uno. También me permite pasarla a Access y generar reportes sin problemas, como facturas.
El caso es que me han pedido que la tabla la presente de otra forma. Desean un solo registro por cada usuario y que cada libro y precio sean columnas diferentes. La estructura sería así:
CLASE - USUARIO - MAT - DNI - INSCRIPTOR - FECHA - RESERVA - NOMBRE - LIBRO1 - PRECIO1- LIBRO2 - PRECIO2 - LIBRO3 - PRECIO3 - LIBRO4 - PRECIO4 - LIBRO5 - PRECIO5 - LIBRO6 - PRECIO6 - LIBRO7 - PRECIO7 - LIBRO8 - PRECIO8 - LIBRO9 - PRECIO9
El número de columnas de LIBRO Y PRECIO vendrá en función del pedido que contenga más libros.
No tengo problemas en generar algo así utilizando VBA, un bucle recorrería la tabla colocando cada libro en las columnas correspondientes poniendo un contador a cero cuando cambiase el número de matrícula. Sin embargo, me gustaría aprender a hacerlo con Excel o Power Query, probablemente con la opción de dinamización, que desconozco por completo.
Os adjunto un fichero de ejemplo del que he modificado los nombres y los dni. En el fichero se pude ver también la tabla dinámica que menciono. El fichero solo incluye 72 registros de 3 clases, el original tiene 3000 registros con más de 20 clases. Indicaros que el campo "Clase" no es numérico y puede contener letras.
Gracias a todos.
Jorge Peñalver.
libros_ejemplos.xlsx