Consolidar.

02/07/2008 - 22:28 por TRTEL | Informe spam
Hola a todos, tengo una base de dato con los siguientes ejemplo 3 clientes
los cuales tienen 5 numeros de telefono pero en ellos hay varios duplicados,
en la realidad no son 3 clientes si no miles lo que quisiera es poder tener
ejemplo, al cliente Juan tiene 5 numeros de referencia pero 2 son duplicados
lo que quisiera encontrar una manera en a cual por medio de algun macro o
formula me deje solo los 4 numeros de contacto con el cliente,
agradeciendoles su ayuda de antemano. Atte NS

A B C D E
1 Cliente Tel 1 Tel 2 Tel 3 Tel 4 Tel 5
2 Juan 123 741 159 123 951
3 Jose 345 852 345 345 357
4 Lucas 789 963 789 789 789

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
03/07/2008 - 04:51 | Informe spam
hola, NS (que ?) !

asumiendo que los datos inician en la fila 2 hasta la ultima fila con datos en la columna A
y que a partir de la columna 2 siempre existe al menos un dato a revisar (hasta x_columnas a la derecha)
prueba con una macro +/- como la siguiente (OJO hay un limite para +/- 2048 rangos seleccionables)

Sub Elimina_duplicados_por_fila()
Dim Col As Byte, Fila As Integer, Duplicados As Range
For Fila = 2 To [a65536].End(xlUp).Row
For Col = 2 To Cells(Fila, 256).End(xlToLeft).Column
If Application.CountIf(Cells(Fila, 2).Resize(, Col - 1), Cells(Fila, Col)) > 1 Then _
Set Duplicados = Union(IIf(Duplicados Is Nothing, Cells(Fila, Col), Duplicados), Cells(Fila, Col))
Next
Next
If Not Duplicados Is Nothing Then Duplicados.Delete xlToLeft: Set Duplicados = Nothing
End Sub

saludos,
hector.

__ OP __
... tengo una base de dato... ejemplo 3 clientes los cuales tienen 5 numeros de telefono pero en ellos hay varios duplicados
... no son 3 clientes si no miles... ejemplo al cliente Juan tiene 5 numeros de referencia pero 2 son duplicados
... encontrar una manera... me deje solo los 4 numeros de contacto con el cliente ...
agradeciendoles su ayuda de antemano. Atte NS
A B C D E
1 Cliente Tel 1 Tel 2 Tel 3 Tel 4 Tel 5
2 Juan 123 741 159 123 951
3 Jose 345 852 345 345 357
4 Lucas 789 963 789 789 789
Respuesta Responder a este mensaje
#2 TRTEL
09/07/2008 - 21:28 | Informe spam
Hector, si entiendo bien quiere decir que por la limitante que se tiene solo
puedo tener en una hoja 2048 filas con datos o mas bien un total de 2048
celdas con datos?

De antemano gracias por tu aclaración.

"Héctor Miguel" wrote:

hola, NS (que ?) !

asumiendo que los datos inician en la fila 2 hasta la ultima fila con datos en la columna A
y que a partir de la columna 2 siempre existe al menos un dato a revisar (hasta x_columnas a la derecha)
prueba con una macro +/- como la siguiente (OJO hay un limite para +/- 2048 rangos seleccionables)

Sub Elimina_duplicados_por_fila()
Dim Col As Byte, Fila As Integer, Duplicados As Range
For Fila = 2 To [a65536].End(xlUp).Row
For Col = 2 To Cells(Fila, 256).End(xlToLeft).Column
If Application.CountIf(Cells(Fila, 2).Resize(, Col - 1), Cells(Fila, Col)) > 1 Then _
Set Duplicados = Union(IIf(Duplicados Is Nothing, Cells(Fila, Col), Duplicados), Cells(Fila, Col))
Next
Next
If Not Duplicados Is Nothing Then Duplicados.Delete xlToLeft: Set Duplicados = Nothing
End Sub

saludos,
hector.

__ OP __
> ... tengo una base de dato... ejemplo 3 clientes los cuales tienen 5 numeros de telefono pero en ellos hay varios duplicados
> ... no son 3 clientes si no miles... ejemplo al cliente Juan tiene 5 numeros de referencia pero 2 son duplicados
> ... encontrar una manera... me deje solo los 4 numeros de contacto con el cliente ...
> agradeciendoles su ayuda de antemano. Atte NS
> A B C D E
> 1 Cliente Tel 1 Tel 2 Tel 3 Tel 4 Tel 5
> 2 Juan 123 741 159 123 951
> 3 Jose 345 852 345 345 357
> 4 Lucas 789 963 789 789 789



Respuesta Responder a este mensaje
#3 Héctor Miguel
09/07/2008 - 21:42 | Informe spam
hola, (...) ?

... si entiendo bien quiere decir que por la limitante que se tiene solo puedo tener en una hoja 2048 filas con datos
o mas bien un total de 2048 celdas con datos?



NOP !!!... lo anterior significa que la funcion Union(<rango1>, <rango2>) en la instruccion:
-> Set Duplicados = Union(IIf(Duplicados Is Nothing, Cells(Fila, Col), Duplicados), Cells(Fila, Col))
solo "resiste" para contener hasta 2048 rangos no-contiguos (como seleccionados)

si tu listado es de "varios miles"... es una consideracion importante por si necesitas repetir la operacion
(digamos) hasta n_veces 2048 "uniones de rangos" -???-

saludos,
hector.

__ OP __
asumiendo que los datos inician en la fila 2 hasta la ultima fila con datos en la columna A
y que a partir de la columna 2 siempre existe al menos un dato a revisar (hasta x_columnas a la derecha)
prueba con una macro +/- como la siguiente (OJO hay un limite para +/- 2048 rangos seleccionables)

Sub Elimina_duplicados_por_fila()
Dim Col As Byte, Fila As Integer, Duplicados As Range
For Fila = 2 To [a65536].End(xlUp).Row
For Col = 2 To Cells(Fila, 256).End(xlToLeft).Column
If Application.CountIf(Cells(Fila, 2).Resize(, Col - 1), Cells(Fila, Col)) > 1 Then _
Set Duplicados = Union(IIf(Duplicados Is Nothing, Cells(Fila, Col), Duplicados), Cells(Fila, Col))
Next
Next
If Not Duplicados Is Nothing Then Duplicados.Delete xlToLeft: Set Duplicados = Nothing
End Sub

__ OP __
> ... tengo una base de dato... ejemplo 3 clientes los cuales tienen 5 numeros de telefono pero en ellos hay varios duplicados
> ... no son 3 clientes si no miles... ejemplo al cliente Juan tiene 5 numeros de referencia pero 2 son duplicados
> ... encontrar una manera... me deje solo los 4 numeros de contacto con el cliente ...
> agradeciendoles su ayuda de antemano. Atte NS
> A B C D E
> 1 Cliente Tel 1 Tel 2 Tel 3 Tel 4 Tel 5
> 2 Juan 123 741 159 123 951
> 3 Jose 345 852 345 345 357
> 4 Lucas 789 963 789 789 789
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida