Hace unos dias inicie mi ocupacion como becario de informatica en la facultad de humanidades y ciencias de la educacion de la UJAEN.
Y como no, no han tardado en surgir los problemas.
Supongamos que tenemos dos tablas, y queremos hacer una tabla que tenga datos de estas dos tablas, segun un criterio, y es que solo pueden aparecer ciertas filas, mas exactamente aquellas donde coincida cierto campo, en este ejemplo, el codigo de la asignatura.
Si queremos realizar el join o producto cartesiano tal y como lo hariamos en una base de datos, parece ser que si no estamos trabajando con una bbdd sino con Excel, la cosa se complica un poco.
Para "multiplicar tablas" en excel, primero vamos a hacer una cosa, cada tabla la vamos a guardar en hojas separadas, en nuestro caso, una tabla la guardamos en Hoja1, y la otra en Hoja2
Ahora, nos situamos en la hoja donde queramos que aparezca el producto cartesiano de nuestras dos tablas, nos vamos a la ficha DATOS.
Veremos que hay varias opciones, Access, Web, ... a nosotros nos interesa Microsoft Query.
Bien, ahora tenemos que seleccionar desde que archivo tomar las tablas, en nuestro caso, elegiremos nuestro propio documento Excel:
Una vez seleccionado el archivo, tendremos que decir que tablas o que campos queremos usar en nuestra consulta. Si pinchamos en Hoja1 y le damos a la flecha, se añadiran todos los campos de la primera tabla, si solo queremos un campo, abrimos el desplegable, y pasamos los campos que queramos.
Pinchamos en siguiente, en mi caso me sale un error, pero acepto y tal, puesto que en mi caso, la consulta SQL la voy a definir yo mismo.
Como observareis, aun no hemos establecido el criterio, asi que tendremos una cantidad exagerada de registros (1981 en este ejemplo):
Bien, para definir los criterios yo personalmente no voy a usar el asistente, y es que es una caca.
Yo lo que voy a hacer es modificar la sentencia SQL que necesito, y como no es muy complicada, mejor.
Para editar nuestra propia sentencia SQL que queremos usar tendremos que pinchar en el boton SQL:
Aceptamos y .... Voila!! el numero de filas ahora es de 26. Esto es por que son las unicas en las que el codigo de la asignatura coincide en ambos campos (nuestro criterio).
Ahora queda volcar estos datos a la hoja excel, para eso vamos a:
Archivo -> "Devolver datos a microsoft Excel"
Y solo queda seleccionar la celda donde queramos que se coloque nuestra nueva tabla, para que al final todo quede asi:
Y asi es como se hace el puñetero producto cartesiano de tablas en Excel.
Solo queda decir que tambien se puede hacer de tablas que estan en Access y llevar la tabla resultado a Excel.
Si tenemos las tablas en nuestro Excel, tambien podriamos haber guardado la consulta SQL en un archivo, para poder usarla todas las veces que queramos sin hacer todas estos pasos cada vez.
Un Saludo!!! :D
Y como no, no han tardado en surgir los problemas.
Supongamos que tenemos dos tablas, y queremos hacer una tabla que tenga datos de estas dos tablas, segun un criterio, y es que solo pueden aparecer ciertas filas, mas exactamente aquellas donde coincida cierto campo, en este ejemplo, el codigo de la asignatura.
Si queremos realizar el join o producto cartesiano tal y como lo hariamos en una base de datos, parece ser que si no estamos trabajando con una bbdd sino con Excel, la cosa se complica un poco.
Para "multiplicar tablas" en excel, primero vamos a hacer una cosa, cada tabla la vamos a guardar en hojas separadas, en nuestro caso, una tabla la guardamos en Hoja1, y la otra en Hoja2
Ahora, nos situamos en la hoja donde queramos que aparezca el producto cartesiano de nuestras dos tablas, nos vamos a la ficha DATOS.
Veremos que hay varias opciones, Access, Web, ... a nosotros nos interesa Microsoft Query.
Bien, ahora tenemos que seleccionar desde que archivo tomar las tablas, en nuestro caso, elegiremos nuestro propio documento Excel:
Una vez seleccionado el archivo, tendremos que decir que tablas o que campos queremos usar en nuestra consulta. Si pinchamos en Hoja1 y le damos a la flecha, se añadiran todos los campos de la primera tabla, si solo queremos un campo, abrimos el desplegable, y pasamos los campos que queramos.
Pinchamos en siguiente, en mi caso me sale un error, pero acepto y tal, puesto que en mi caso, la consulta SQL la voy a definir yo mismo.
Como observareis, aun no hemos establecido el criterio, asi que tendremos una cantidad exagerada de registros (1981 en este ejemplo):
Bien, para definir los criterios yo personalmente no voy a usar el asistente, y es que es una caca.
Yo lo que voy a hacer es modificar la sentencia SQL que necesito, y como no es muy complicada, mejor.
Para editar nuestra propia sentencia SQL que queremos usar tendremos que pinchar en el boton SQL:
Aceptamos y .... Voila!! el numero de filas ahora es de 26. Esto es por que son las unicas en las que el codigo de la asignatura coincide en ambos campos (nuestro criterio).
Ahora queda volcar estos datos a la hoja excel, para eso vamos a:
Archivo -> "Devolver datos a microsoft Excel"
Y solo queda seleccionar la celda donde queramos que se coloque nuestra nueva tabla, para que al final todo quede asi:
Y asi es como se hace el puñetero producto cartesiano de tablas en Excel.
Solo queda decir que tambien se puede hacer de tablas que estan en Access y llevar la tabla resultado a Excel.
Si tenemos las tablas en nuestro Excel, tambien podriamos haber guardado la consulta SQL en un archivo, para poder usarla todas las veces que queramos sin hacer todas estos pasos cada vez.
Un Saludo!!! :D
En 2017 te agradezco por esto :)
ResponderEliminarDesde el 2018 me llena de orgullo y satisfación haber ayudado!! :)
Eliminar2019 y sigue siendo útil.
ResponderEliminarBuenas!
ResponderEliminar2020 y has sido el único que me ha podido ayudar... :o)
Muchas gracias!
Un saludo.
Holaaaaa estaba buscando info para poder combinar 1200 números con 500 palabras y encontré esto, una luz al final del camino. Mañana intento seguir los pasos mencionados. Voy con esperanza.
ResponderEliminarjajajaj esto no para, me sirvió un montón en 2021!! Gracias!
ResponderEliminarMuchas gracias a ti!!
Eliminar11 años tiene el post y es el más visitado con diferencia!!!
2022 y me ha sacado de apuros. Gracias!!
ResponderEliminar