crear una lista combinada de dos listas de diferentes hojas

09/10/2006 - 21:54 por Luciano | Informe spam
Hola a todos,

Tengo dos listas diferentes que contienen los mismos numeros de parte y en
algunos casos las listas contienen numero de parte que no se encuentran en la
otra lista, necesito crear alguna formula - o algo - que me cree una nueva
lista de tal forma que no se repitan los mismos numeros pero que incluyan los
numeros que no existan en la otra lista.

Como puedo hacerlo?

Preguntas similare

Leer las respuestas

#1 David
09/10/2006 - 23:04 | Informe spam
Supongamos que tu primer listado se encuentra en la hoja Lista1, y el segundo
listado, el cual contiene los nuevos registros que quieres agregar a Lista1,
se encuentra en la hoja Lista2. También supongamos que en ambos listados el
número de parte se encuentra en la columna A.

Sin código:
Te sugeriría que al final del segundo listado, agregaras una nueva columna,
y a partir de la fila 2, pegaras la siguiente fórmula :
=SI(ESERROR(BUSCARV(Lista2!A2,Lista1!$A:$A,1,0)),0,1)
Esta fórmula te dará como resultado 0 si el número de parte de este registro
no se encuentra en Lista1, y 1 en caso contrario. Luego podrás aplicar un
filtro según la nueva columna buscando los ceros, y lo copias y pegas al
final de Lista1.

Con código:
Podrías hacer un procedimiento que hiciera algo parecido al método manual:
1. Insertar la fórmula anterior en una columna (supondré que es la columna E)
Ojo: esto es más rápido con funciones que haciéndolo en el mismo código...
2. Dependiendo del resultado, copiar el registro al final de la hoja Lista1.
3. Eliminar la columna en la que insertó la fórmula.

Sería algo como esto:

Sub CopiarNuevos()
Dim N1, N2, C As Integer, Seguir As Boolean

'Se calcula el número de filas de Lista1 en N1:
N1 = Application.WorksheetFunction.CountA(Range("Lista1!A:A")) + 1

'La búsqueda en Lista2 principiará de la fila 2:
N2 = 2
Seguir = True
Do
'Verificar si llegó al final de Lista2:
If Len(Sheets("Lista2").Cells(N2, 1)) > 0 Then
'Se asigna la fórmula a la celda:
Sheets("Lista2").Cells(N2, 5).Formula =
"=IF(ISERROR(VLOOKUP(Lista2!A" & N2 & ",Lista1!$A:$A,1,0)),0,1)"
'Se verifica si existe el número de parte:
If Sheets("Lista2").Cells(N2, 5).Value = 0 Then
'Se copian las primeras 4 columnas:
For C = 1 To 4
Sheets("Lista1").Cells(N1, C).Value =
Sheets("Lista2").Cells(N2, C).Value
Next C
'Se prepara la siguiente fila de Lista1:
N1 = N1 + 1
End If
Else
Seguir = False
End If
'Se borra la fórmula:
Sheets("Lista2").Cells(N2, 5).Formula = ""
'Se avanza a la siguiente fila de Lista2:
N2 = N2 + 1
Loop While Seguir
End Sub


Estúdialo (prepara un libro con las hojas que te menciono y pon datos en las
primeras 4 columnas de las hojas Lista1 y Lista2), y adáptalo a tu caso.



"Luciano" escribió:

Hola a todos,

Tengo dos listas diferentes que contienen los mismos numeros de parte y en
algunos casos las listas contienen numero de parte que no se encuentran en la
otra lista, necesito crear alguna formula - o algo - que me cree una nueva
lista de tal forma que no se repitan los mismos numeros pero que incluyan los
numeros que no existan en la otra lista.

Como puedo hacerlo?
Respuesta Responder a este mensaje
#2 Luciano
10/10/2006 - 15:26 | Informe spam
David, muchas gracias por la ayuda, pero, me acabo de dar cuenta que estoy
muy "verde" en esto de la programacion, ya lo tengo, pero no se como hecharlo
a volar, tal vez me puedas ayudar un poco mas...

de antemano muchas gracias.

"David" escribió:

Supongamos que tu primer listado se encuentra en la hoja Lista1, y el segundo
listado, el cual contiene los nuevos registros que quieres agregar a Lista1,
se encuentra en la hoja Lista2. También supongamos que en ambos listados el
número de parte se encuentra en la columna A.

Sin código:
Te sugeriría que al final del segundo listado, agregaras una nueva columna,
y a partir de la fila 2, pegaras la siguiente fórmula :
=SI(ESERROR(BUSCARV(Lista2!A2,Lista1!$A:$A,1,0)),0,1)
Esta fórmula te dará como resultado 0 si el número de parte de este registro
no se encuentra en Lista1, y 1 en caso contrario. Luego podrás aplicar un
filtro según la nueva columna buscando los ceros, y lo copias y pegas al
final de Lista1.

Con código:
Podrías hacer un procedimiento que hiciera algo parecido al método manual:
1. Insertar la fórmula anterior en una columna (supondré que es la columna E)
Ojo: esto es más rápido con funciones que haciéndolo en el mismo código...
2. Dependiendo del resultado, copiar el registro al final de la hoja Lista1.
3. Eliminar la columna en la que insertó la fórmula.

Sería algo como esto:

Sub CopiarNuevos()
Dim N1, N2, C As Integer, Seguir As Boolean

'Se calcula el número de filas de Lista1 en N1:
N1 = Application.WorksheetFunction.CountA(Range("Lista1!A:A")) + 1

'La búsqueda en Lista2 principiará de la fila 2:
N2 = 2
Seguir = True
Do
'Verificar si llegó al final de Lista2:
If Len(Sheets("Lista2").Cells(N2, 1)) > 0 Then
'Se asigna la fórmula a la celda:
Sheets("Lista2").Cells(N2, 5).Formula =
"=IF(ISERROR(VLOOKUP(Lista2!A" & N2 & ",Lista1!$A:$A,1,0)),0,1)"
'Se verifica si existe el número de parte:
If Sheets("Lista2").Cells(N2, 5).Value = 0 Then
'Se copian las primeras 4 columnas:
For C = 1 To 4
Sheets("Lista1").Cells(N1, C).Value =
Sheets("Lista2").Cells(N2, C).Value
Next C
'Se prepara la siguiente fila de Lista1:
N1 = N1 + 1
End If
Else
Seguir = False
End If
'Se borra la fórmula:
Sheets("Lista2").Cells(N2, 5).Formula = ""
'Se avanza a la siguiente fila de Lista2:
N2 = N2 + 1
Loop While Seguir
End Sub


Estúdialo (prepara un libro con las hojas que te menciono y pon datos en las
primeras 4 columnas de las hojas Lista1 y Lista2), y adáptalo a tu caso.



"Luciano" escribió:

> Hola a todos,
>
> Tengo dos listas diferentes que contienen los mismos numeros de parte y en
> algunos casos las listas contienen numero de parte que no se encuentran en la
> otra lista, necesito crear alguna formula - o algo - que me cree una nueva
> lista de tal forma que no se repitan los mismos numeros pero que incluyan los
> numeros que no existan en la otra lista.
>
> Como puedo hacerlo?
Respuesta Responder a este mensaje
#3 David
10/10/2006 - 19:23 | Informe spam
No es bueno suponer, y yo supuse que conocías algo de VBA. Esto será
necesario para la solución con código, pero no para la primera. El
inconveniente es que yo hice una sugerencia "suponiendo" una organización
para tus datos. Para que te funcione, habría que adaptarla a la forma en que
tú los tienes. Así que o vemos tus datos, o aprendes VBA (esto último es lo
más aconsejable, pero creo que el tiempo está en contra).

Te aconsejo entonces, irte mejor por el primer método y hacerlo manualmente.
Ahora bien, si me escribes y me tienes un poco de paciencia, podría ver cómo
está estructurada tu información y ver si se llega a alguna solución. Mi
dirección está en mi perfil del foro.

Saludos.



"Luciano" escribió:

David, muchas gracias por la ayuda, pero, me acabo de dar cuenta que estoy
muy "verde" en esto de la programacion, ya lo tengo, pero no se como hecharlo
a volar, tal vez me puedas ayudar un poco mas...

de antemano muchas gracias.

"David" escribió:

> Supongamos que tu primer listado se encuentra en la hoja Lista1, y el segundo
> listado, el cual contiene los nuevos registros que quieres agregar a Lista1,
> se encuentra en la hoja Lista2. También supongamos que en ambos listados el
> número de parte se encuentra en la columna A.
>
> Sin código:
> Te sugeriría que al final del segundo listado, agregaras una nueva columna,
> y a partir de la fila 2, pegaras la siguiente fórmula :
> =SI(ESERROR(BUSCARV(Lista2!A2,Lista1!$A:$A,1,0)),0,1)
> Esta fórmula te dará como resultado 0 si el número de parte de este registro
> no se encuentra en Lista1, y 1 en caso contrario. Luego podrás aplicar un
> filtro según la nueva columna buscando los ceros, y lo copias y pegas al
> final de Lista1.
>
> Con código:
> Podrías hacer un procedimiento que hiciera algo parecido al método manual:
> 1. Insertar la fórmula anterior en una columna (supondré que es la columna E)
> Ojo: esto es más rápido con funciones que haciéndolo en el mismo código...
> 2. Dependiendo del resultado, copiar el registro al final de la hoja Lista1.
> 3. Eliminar la columna en la que insertó la fórmula.
>
> Sería algo como esto:
>
> Sub CopiarNuevos()
> Dim N1, N2, C As Integer, Seguir As Boolean
>
> 'Se calcula el número de filas de Lista1 en N1:
> N1 = Application.WorksheetFunction.CountA(Range("Lista1!A:A")) + 1
>
> 'La búsqueda en Lista2 principiará de la fila 2:
> N2 = 2
> Seguir = True
> Do
> 'Verificar si llegó al final de Lista2:
> If Len(Sheets("Lista2").Cells(N2, 1)) > 0 Then
> 'Se asigna la fórmula a la celda:
> Sheets("Lista2").Cells(N2, 5).Formula =
> "=IF(ISERROR(VLOOKUP(Lista2!A" & N2 & ",Lista1!$A:$A,1,0)),0,1)"
> 'Se verifica si existe el número de parte:
> If Sheets("Lista2").Cells(N2, 5).Value = 0 Then
> 'Se copian las primeras 4 columnas:
> For C = 1 To 4
> Sheets("Lista1").Cells(N1, C).Value =
> Sheets("Lista2").Cells(N2, C).Value
> Next C
> 'Se prepara la siguiente fila de Lista1:
> N1 = N1 + 1
> End If
> Else
> Seguir = False
> End If
> 'Se borra la fórmula:
> Sheets("Lista2").Cells(N2, 5).Formula = ""
> 'Se avanza a la siguiente fila de Lista2:
> N2 = N2 + 1
> Loop While Seguir
> End Sub
>
>
> Estúdialo (prepara un libro con las hojas que te menciono y pon datos en las
> primeras 4 columnas de las hojas Lista1 y Lista2), y adáptalo a tu caso.
>
>
>
> "Luciano" escribió:
>
> > Hola a todos,
> >
> > Tengo dos listas diferentes que contienen los mismos numeros de parte y en
> > algunos casos las listas contienen numero de parte que no se encuentran en la
> > otra lista, necesito crear alguna formula - o algo - que me cree una nueva
> > lista de tal forma que no se repitan los mismos numeros pero que incluyan los
> > numeros que no existan en la otra lista.
> >
> > Como puedo hacerlo?
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida