Obtener articulos coincidentes

22/04/2010 - 17:04 por Alberto S.H. | Informe spam
Hola a todos,

Cada dia tengo que cruzar los informes en excel que me genera un programa
que hay en mi empresa. Resulta que me da un par de ficheros. Cada uno con una
hoja en la que aparecen dos columnas, el codigo y en otra la descripción.
Pues bien, tengo que sacar los registros que estan en ambas. En ocasiones
tambien tengo que sacar los registros que solo están en una de ellas. Hasta
ahora, lo que hago es llevarmelas a acces y desde alli lo hago.
Seguro que vosotros me podeis decir como hacerlo desde excel, aunque tenga
que meter las dos hojas dentro de un mismo libro.
¿como hago para localizar los coincidentes? ¿y los no coincidentes?

Gracias a todos

Preguntas similare

Leer las respuestas

#1 AnSanVal
22/04/2010 - 21:04 | Informe spam
Hola Alberto.

Con un libro llamado "Repet 1.xlsm" y la lista de valores en A2:B2000 de
"Hoja1".
Con un libro llamado "Repet 2.xlsx" y la lista de valores en A2:B1000 de
"Hoja1".

Para registros coincidentes (El código en "Repet 1"):
Sub Repes()
Dim celda As Range, fila&
For Each celda In Range("A2:A2000")
If Application.WorksheetFunction.CountIf(Workbooks("Repet 2.xlsx") _
.Sheets("Hoja1").Range("A2:A1000"), celda) > 0 Then
fila = fila + 1
Sheets("Hoja2").Cells(fila, 1).Value = celda.Value
Sheets("Hoja2").Cells(fila, 2).Value = celda.Offset(, 1).Value
End If
Next celda
End Sub

Para registros no coincidentes:
Cambia en el final del condicional de ... > 0 Then a ... = 0 Then


Saludos: Antonio.
*************************

"Alberto S.H." escribió en el mensaje
news:
Hola a todos,

Cada dia tengo que cruzar los informes en excel que me genera un programa
que hay en mi empresa. Resulta que me da un par de ficheros. Cada uno con
una
hoja en la que aparecen dos columnas, el codigo y en otra la descripción.
Pues bien, tengo que sacar los registros que estan en ambas. En ocasiones
tambien tengo que sacar los registros que solo están en una de ellas.
Hasta
ahora, lo que hago es llevarmelas a acces y desde alli lo hago.
Seguro que vosotros me podeis decir como hacerlo desde excel, aunque tenga
que meter las dos hojas dentro de un mismo libro.
¿como hago para localizar los coincidentes? ¿y los no coincidentes?

Gracias a todos
Respuesta Responder a este mensaje
#2 Alberto S.H.
22/04/2010 - 22:34 | Informe spam
Hola Antonio,

Lo he probado y funciona. Yo lo se hacer, pero tengo unos compañeros en
otras sedes a los que va a ser muy complicado.
¿hay alguna manera de hacerlo utilizando funciones? del tipo buscarv.

Por cierto, utilizamos Excel 2003.

Ya te digo que a mi me vale lo que me has pasado, pero me gustaría ponerselo
un poco más facíl a mis compañeros.

Un cordial saludo

"AnSanVal" wrote:

Hola Alberto.

Con un libro llamado "Repet 1.xlsm" y la lista de valores en A2:B2000 de
"Hoja1".
Con un libro llamado "Repet 2.xlsx" y la lista de valores en A2:B1000 de
"Hoja1".

Para registros coincidentes (El código en "Repet 1"):
Sub Repes()
Dim celda As Range, fila&
For Each celda In Range("A2:A2000")
If Application.WorksheetFunction.CountIf(Workbooks("Repet 2.xlsx") _
.Sheets("Hoja1").Range("A2:A1000"), celda) > 0 Then
fila = fila + 1
Sheets("Hoja2").Cells(fila, 1).Value = celda.Value
Sheets("Hoja2").Cells(fila, 2).Value = celda.Offset(, 1).Value
End If
Next celda
End Sub

Para registros no coincidentes:
Cambia en el final del condicional de ... > 0 Then a ... = 0 Then


Saludos: Antonio.
*************************

"Alberto S.H." escribió en el mensaje
news:
> Hola a todos,
>
> Cada dia tengo que cruzar los informes en excel que me genera un programa
> que hay en mi empresa. Resulta que me da un par de ficheros. Cada uno con
> una
> hoja en la que aparecen dos columnas, el codigo y en otra la descripción.
> Pues bien, tengo que sacar los registros que estan en ambas. En ocasiones
> tambien tengo que sacar los registros que solo están en una de ellas.
> Hasta
> ahora, lo que hago es llevarmelas a acces y desde alli lo hago.
> Seguro que vosotros me podeis decir como hacerlo desde excel, aunque tenga
> que meter las dos hojas dentro de un mismo libro.
> ¿como hago para localizar los coincidentes? ¿y los no coincidentes?
>
> Gracias a todos


.

Respuesta Responder a este mensaje
#3 AnSanVal
23/04/2010 - 00:05 | Informe spam
Hola Alberto.

Lo he probado y funciona. Yo lo se hacer, pero tengo unos compañeros en
otras sedes a los que va a ser muy complicado.
¿hay alguna manera de hacerlo utilizando funciones? del tipo buscarv.
Ya te digo que a mi me vale lo que me has pasado, pero me gustaría
ponerselo
un poco más facíl a mis compañeros.



¿Más fácil que pulsar un botón?

Si lo hicieras con funciones nativas, que hicieran referencia a los rangos
con p.e. nombres definidos , tendrían que tener estas en p.e. una plantilla,
donde Copiar/Pegar los datos recibidos y los resultados no los obtendrían
agrupados, sino dispersos, a medida que se producen coincidencias con cada
código, luego tendrian que copiar pegar valores, ordenar (para agrupar),
etc. Creo que ese sería un método más complejo.

Puedes tener la macro en una plantilla y llamarla desde un botón, despues de
tener los datos en la hoja. Incluso si pegas una lista en un rango
(columnas) y la otra en otro rango, puedes hacer que escriba el resultado en
un tercer rango, y lo tendrías todo en un sólo libro como apuntabas en tu
consulta original y además en la misma hoja.

Para usar una función (como p.e. BUSCARV) sólo tienes que seguir la sintaxis
de la propia función.

Ya comentarás.

Saludos: Antonio.
Respuesta Responder a este mensaje
#4 Alberto S.H.
23/04/2010 - 08:34 | Informe spam
Hola Antonio,

Yo, para simplificar el mensaje y que me entendieseis reduci el problema a
dos hojas con dos columnas. El problema es que a veces las hojas son como os
comenté, pero otras los datos a comparar no son la dos primeras columnas sino
la 1ª de un libro y la 3ª de otro en fin que la casuistica es variada,
por eso la macro no me vale mucho. Con la función BuscarV se encontrar
coincidencias, pero no se como encontrar los de un listado que no están en
otro.

Un saludo


¿Más fácil que pulsar un botón?

Si lo hicieras con funciones nativas, que hicieran referencia a los rangos
con p.e. nombres definidos , tendrían que tener estas en p.e. una plantilla,
donde Copiar/Pegar los datos recibidos y los resultados no los obtendrían
agrupados, sino dispersos, a medida que se producen coincidencias con cada
código, luego tendrian que copiar pegar valores, ordenar (para agrupar),
etc. Creo que ese sería un método más complejo.

Puedes tener la macro en una plantilla y llamarla desde un botón, despues de
tener los datos en la hoja. Incluso si pegas una lista en un rango
(columnas) y la otra en otro rango, puedes hacer que escriba el resultado en
un tercer rango, y lo tendrías todo en un sólo libro como apuntabas en tu
consulta original y además en la misma hoja.

Para usar una función (como p.e. BUSCARV) sólo tienes que seguir la sintaxis
de la propia función.

Ya comentarás.

Saludos: Antonio.


.

Respuesta Responder a este mensaje
#5 Xavier Budet Graco
23/04/2010 - 13:10 | Informe spam
Hola Alberto, en la primera línea de tu mensaje ya mencionas la dificultad. Cuando se reduce el problema la posibilidad de que te den la solución que te interesa es muy difícil. Por otro lado explicarlo a veces se hace todavía más difícil...

¿Puedes "subir" un archivo de ejemplo a alguna web de las que alojan ficheros?

De ser posible facilitarías mucho el entendimiento del problema.

Saludos,

Xavier

Quitar MAC para contestar. Gracias.


"Alberto S.H." escribió en el mensaje news:

Hola Antonio,

Yo, para simplificar el mensaje y que me entendieseis reduci el problema a
dos hojas con dos columnas. El problema es que a veces las hojas son como os
comenté, pero otras los datos a comparar no son la dos primeras columnas sino
la 1ª de un libro y la 3ª de otro en fin que la casuistica es variada,
por eso la macro no me vale mucho. Con la función BuscarV se encontrar
coincidencias, pero no se como encontrar los de un listado que no están en
otro.

Un saludo


¿Más fácil que pulsar un botón?

Si lo hicieras con funciones nativas, que hicieran referencia a los rangos
con p.e. nombres definidos , tendrían que tener estas en p.e. una plantilla,
donde Copiar/Pegar los datos recibidos y los resultados no los obtendrían
agrupados, sino dispersos, a medida que se producen coincidencias con cada
código, luego tendrian que copiar pegar valores, ordenar (para agrupar),
etc. Creo que ese sería un método más complejo.

Puedes tener la macro en una plantilla y llamarla desde un botón, despues de
tener los datos en la hoja. Incluso si pegas una lista en un rango
(columnas) y la otra en otro rango, puedes hacer que escriba el resultado en
un tercer rango, y lo tendrías todo en un sólo libro como apuntabas en tu
consulta original y además en la misma hoja.

Para usar una función (como p.e. BUSCARV) sólo tienes que seguir la sintaxis
de la propia función.

Ya comentarás.

Saludos: Antonio.


.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida