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

#6 AnSanVal
23/04/2010 - 18:39 | Informe spam
Hola Alberto.

"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"



Ese mismo problema lo tendrás con las fórmulas, a las cuales deberás indicar
en que rango se encuentran los datos en cada ocasión.


Para hacerlo con funciones:
Puedes emplear (entre otras): =SI(ESERROR(COINCIDIR(A2;lista2));"no
repetido";"repetido")

Donde "no repetido" representa los "no encontrados".

Por ejemplo, para los no coincidentes o no encontrados, suponiendo la
primera lista en A2:B1000 y la segunda en Hoja2!J2:K1000:

(Para el Código): =SI(ESERROR(COINCIDIR(A2;Hoja2!J2:J1000));A2;"")
(Para la Descripción): =SI(ESERROR(COINCIDIR(A2;Hoja2!J2:J1000));B2;"")

Nota: Las fórmulas que te ofrezco están pensadas par ir en la hoja de la
lista 1, si quieres el resultado en otra hoja, deberás cambiar A2 y B2, por
Hoja1!A2 y Hoja1!B2.


Saludos: Antonio.
**********************************
"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
#7 Alberto S.H.
24/04/2010 - 17:37 | Informe spam
Hola Xabier,

Los datos con los que trabajamos son confidenciales, pero voy intentar
retotarlos. Te paso un ejemplo, en este caso la estructura de los dos
ficheros a comparar es identica, se trata de ver los clientes a los que se
les vende un determinado artículo y compararlos con un listado de clientes a
los que se les vende otro artículo, un listado de ejemplo sería, el que sigue
y había que buscar coincidencias o exclusiones segun el IDCliente, y en la
tabla resultado mostrar al menos los Idclientes.

UGC IDCliente clave Vendedor
Envases
LINARES Awerwer95328 12312862 ERTA MORALES,RTSE 1
LINARES AN0rerte3836 45341394 RTEEEZ SANCHEZ,RTEE M. 3
LINARES Aterterterte 32453600 EWRTWERO MEGINA,YRRIO 2
LINARES AN02ertetre6 34345344 ERTWEZ SANCHEZ,TRYE M. 4
LINARES AN0erte35ert 34523452 WERTWS PEREZ,RTYRTYRADA 4
LINARES AN0erterte62 24523452 RTWERTREZ GEA,RTYREL 4


"Xavier Budet Graco" wrote:

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
#8 AnSanVal
24/04/2010 - 22:15 | Informe spam
Hola Alberto.
Te puse una solución similar a la siguiente pero al parecer NO ENTRÓ. :-(
Te la repito pero con los datos de tu ejemplo:

Suponiendo la lista 1 en Hoja4 rango A1:E7 y la lista 2 en Hoja5 rango
A1:E7.




En otra hoja:

[A1] "COINCIDENTES"

[A2] =SI(ESERROR(COINCIDIR(Hoja4!$B2;Hoja5!$B$2:$B$7;0)) ;

"";BUSCARV(Hoja4!$B2;Hoja4!$B$2:$E$7;1;0)) <<<todo en A2


[B2] =SI(ESERROR(COINCIDIR(Hoja4!$B2;Hoja5!$B$2:$B$7;0));

"";BUSCARV(Hoja4!$B2;Hoja4!$B$2:$E$7;2;0)) <<<todo en B2


[C2] =SI(ESERROR(COINCIDIR(Hoja4!$B2;Hoja5!$B$2:$B$7;0));

"";BUSCARV(Hoja4!$B2;Hoja4!$B$2:$E$7;3;0)) <<<todo en C2


Copia /Pega A2:C2 hasta A7:C7


[A10] "NO COINCIDENTES"

[A11] =SI(ESERROR(COINCIDIR(Hoja4!$B2;Hoja5!$B$2:$B$7;0));

BUSCARV(Hoja4!$B2;Hoja4!$B$2:$E$7;1;0);"") <<<todo en A11


[B11] =SI(ESERROR(COINCIDIR(Hoja4!$B3;Hoja5!$B$2:$B$7;0));

BUSCARV(Hoja4!$B3;Hoja4!$B$2:$E$7;1;0);"") <<<todo en B11


[C11] =SI(ESERROR(COINCIDIR(Hoja4!$B3;Hoja5!$B$2:$B$7;0));

BUSCARV(Hoja4!$B3;Hoja4!$B$2:$E$7;1;0);"") <<<todo en C11


Copia /Pega A11:C11 hasta A16:C16

Saludos: Antonio.
***********************************
"Alberto S.H." escribió en el mensaje
news:
Hola Xabier,

Los datos con los que trabajamos son confidenciales, pero voy intentar
retotarlos. Te paso un ejemplo, en este caso la estructura de los dos
ficheros a comparar es identica, se trata de ver los clientes a los que se
les vende un determinado artículo y compararlos con un listado de clientes
a
los que se les vende otro artículo, un listado de ejemplo sería, el que
sigue
y había que buscar coincidencias o exclusiones segun el IDCliente, y en la
tabla resultado mostrar al menos los Idclientes.

UGC IDCliente clave Vendedor
Envases
LINARES Awerwer95328 12312862 ERTA MORALES,RTSE 1
LINARES AN0rerte3836 45341394 RTEEEZ SANCHEZ,RTEE M. 3
LINARES Aterterterte 32453600 EWRTWERO MEGINA,YRRIO 2
LINARES AN02ertetre6 34345344 ERTWEZ SANCHEZ,TRYE M. 4
LINARES AN0erte35ert 34523452 WERTWS PEREZ,RTYRTYRADA 4
LINARES AN0erterte62 24523452 RTWERTREZ GEA,RTYREL 4
Respuesta Responder a este mensaje
#9 Xavier Budet
25/04/2010 - 16:24 | Informe spam
Hola Alberto, disculpa pero este es el tercer mensaje que te envío, los otros
dos...

























Hola Alberto, no creo que la aportación que te doy sirva, porque tengo
muchos puntos oscuros, pero quizá sea el inicio de la solución, mia o de otro
compañero.

He recreado dos ficheros con las condiciones que deduzco:
Un archivo tiene el nombre de "venta.xls" y están los datos que aportas, en
el otro que llamo como "listado.xls" tiene 2 hojas. En la 1 están los datos
que aportas con cambios al azar para que no coincidan, sólo algunos datos. En
la hoja 2 de "listado.xls" está el listado de los clientes (su ID).

Por lo pronto la columna "A" no la utilizo porque es idéntica (UGC=LINARES)
y la descarto. En la "B" está el cliente y en la "C" el artículo, las otras 2
columnas las "aparco" de momento.

En la fila 1 de las tres hojas están los Títulos, o sea que es en la fila 2
que empiezan los datos, finalizando según tu ejemplo en la fila 7.

En la hoja 2 del fichero "listado.xls" obtengo los resultados:
En columna "A" UGC sin cambios, en columna "B" están los IDcliente que son
los que sirven para buscar, en "C" resultado de la busqueda si es
coincidente, en "D" y "E" reservados por si interesan resultados de
"Vendedor" y "Envases", la columna "F" de separación y en la "G" los
resultados si no hay coincidencia.

El resultado en "C" (también en "G") será la "clave del artículo" si en las
dos listas el IDcliente coincide con la misma clave, (en "G" nos da la "clave
del artículo" de la hoja 1 del fichero "listado.xls" si NO hay coincidencia)

La fórmula que utilizo en la fila 2 de la columna "C" (hoja 2) es
=SI(ESERROR(COINCIDIR(Hoja1!$B2&Hoja1!$C2;[venta.xls]Hoja1!$B$2:$B$7&[venta.xls]Hoja1!$C$2:$C$7;0));"";Hoja1!C2)

ATENCIÓN porque es matricial, o sea de las que se finalizan con
"Control+Shift+Enter" y aparecen una llave de apertura y una de cierre.

En "G" fila 2 está otra fórmula también matricial
=SI(ESERROR(COINCIDIR(Hoja1!$B2&Hoja1!$C2;[venta.xls]Hoja1!$B$2:$B$7&[venta.xls]Hoja1!$C$2:$C$7;0));Hoja1!C2;"")

En ambos casos copiando hacia abajo en las columnas respectivas se obtienen
todos los resultados mientras haya IDcliente.

Utilizo el ";" como separador, comprueba que sea el tuyo.
<<<<<<<<<<<<<<<<<<<<
Xavier Budet

Quitar MAC para contestar. Gracias.


"Alberto S.H." wrote:

Hola Xabier,

Los datos con los que trabajamos son confidenciales, pero voy intentar
retotarlos. Te paso un ejemplo, en este caso la estructura de los dos
ficheros a comparar es identica, se trata de ver los clientes a los que se
les vende un determinado artículo y compararlos con un listado de clientes a
los que se les vende otro artículo, un listado de ejemplo sería, el que sigue
y había que buscar coincidencias o exclusiones segun el IDCliente, y en la
tabla resultado mostrar al menos los Idclientes.

UGC IDCliente clave Vendedor
Envases
LINARES Awerwer95328 12312862 ERTA MORALES,RTSE 1
LINARES AN0rerte3836 45341394 RTEEEZ SANCHEZ,RTEE M. 3
LINARES Aterterterte 32453600 EWRTWERO MEGINA,YRRIO 2
LINARES AN02ertetre6 34345344 ERTWEZ SANCHEZ,TRYE M. 4
LINARES AN0erte35ert 34523452 WERTWS PEREZ,RTYRTYRADA 4
LINARES AN0erterte62 24523452 RTWERTREZ GEA,RTYREL 4


"Xavier Budet Graco" wrote:

> 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
#10 Alberto S.H.
29/04/2010 - 23:16 | Informe spam
Decirte que lo que me explicas cumple perfectamente mis necesidades.
Perdona la tardanza en contestar, pero he estado fuera.

"AnSanVal" wrote:

Hola Alberto.
Te puse una solución similar a la siguiente pero al parecer NO ENTRÓ. :-(
Te la repito pero con los datos de tu ejemplo:

Suponiendo la lista 1 en Hoja4 rango A1:E7 y la lista 2 en Hoja5 rango
A1:E7.




En otra hoja:

[A1] "COINCIDENTES"

[A2] =SI(ESERROR(COINCIDIR(Hoja4!$B2;Hoja5!$B$2:$B$7;0)) ;

"";BUSCARV(Hoja4!$B2;Hoja4!$B$2:$E$7;1;0)) <<<todo en A2


[B2] =SI(ESERROR(COINCIDIR(Hoja4!$B2;Hoja5!$B$2:$B$7;0));

"";BUSCARV(Hoja4!$B2;Hoja4!$B$2:$E$7;2;0)) <<<todo en B2


[C2] =SI(ESERROR(COINCIDIR(Hoja4!$B2;Hoja5!$B$2:$B$7;0));

"";BUSCARV(Hoja4!$B2;Hoja4!$B$2:$E$7;3;0)) <<<todo en C2


Copia /Pega A2:C2 hasta A7:C7


[A10] "NO COINCIDENTES"

[A11] =SI(ESERROR(COINCIDIR(Hoja4!$B2;Hoja5!$B$2:$B$7;0));

BUSCARV(Hoja4!$B2;Hoja4!$B$2:$E$7;1;0);"") <<<todo en A11


[B11] =SI(ESERROR(COINCIDIR(Hoja4!$B3;Hoja5!$B$2:$B$7;0));

BUSCARV(Hoja4!$B3;Hoja4!$B$2:$E$7;1;0);"") <<<todo en B11


[C11] =SI(ESERROR(COINCIDIR(Hoja4!$B3;Hoja5!$B$2:$B$7;0));

BUSCARV(Hoja4!$B3;Hoja4!$B$2:$E$7;1;0);"") <<<todo en C11


Copia /Pega A11:C11 hasta A16:C16

Saludos: Antonio.
***********************************
"Alberto S.H." escribió en el mensaje
news:
> Hola Xabier,
>
> Los datos con los que trabajamos son confidenciales, pero voy intentar
> retotarlos. Te paso un ejemplo, en este caso la estructura de los dos
> ficheros a comparar es identica, se trata de ver los clientes a los que se
> les vende un determinado artículo y compararlos con un listado de clientes
> a
> los que se les vende otro artículo, un listado de ejemplo sería, el que
> sigue
> y había que buscar coincidencias o exclusiones segun el IDCliente, y en la
> tabla resultado mostrar al menos los Idclientes.
>
> UGC IDCliente clave Vendedor
> Envases
> LINARES Awerwer95328 12312862 ERTA MORALES,RTSE 1
> LINARES AN0rerte3836 45341394 RTEEEZ SANCHEZ,RTEE M. 3
> LINARES Aterterterte 32453600 EWRTWERO MEGINA,YRRIO 2
> LINARES AN02ertetre6 34345344 ERTWEZ SANCHEZ,TRYE M. 4
> LINARES AN0erte35ert 34523452 WERTWS PEREZ,RTYRTYRADA 4
> LINARES AN0erterte62 24523452 RTWERTREZ GEA,RTYREL 4


.

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