Es una cuestión complicada y necesito ayuda

05/03/2008 - 23:18 por fali | Informe spam
Hola a todos¡
Los datos de los que dispongo para cada celda y por fila son como los
siguientes:

A1: PR12345ANGEL(NON) PEREZ,A LUY,G

B1:XS76543LOPEZ(LOP) LEA,G

C1: PR12345ANGEL(NON) PEREZ,A LUY,G

Necesito quitar los registros que estén duplicados (y las celdas en blanco
si es posible) por filas, en este caso coinciden la A1 y la C1 y sólo quiero
contarla una vez. Tengo muchísimas filas (más de 3000) y alrededor de 200
columnas.
Gracias de antemano por vuestra ayuda
 

Leer las respuestas

#1 Ivan
06/03/2008 - 00:39 | Informe spam
hola,

Necesito quitar los registros que estén duplicados (y las celdas en blanco
si es posible) por filas, en este caso coinciden la A1 y la C1 y sólo quiero
contarla una vez. Tengo muchísimas filas (más de 3000) y alrededor de 200
columnas.



aunque no estoy seguro de lo que puede tardar (en mis pruebas, con
aprox. 160 columnas y 2500 filas, tarda menos de un minuto con entre 5
y 20 datos unicos como los tuyos por fila), pues dependera bastante de
tus datos reales y del numero de repeticiones, pero no creo que te
tarde mas de unos minutos,

prueba esta macro con la hoja con la lista como activa (te creara una
nueva hoja con los unicos por fila)

pegalo en un modulo 'normal' . Por si no sabes como => en el editor de
VBA [Alt+F11] => menu 'Insertar' => 'Modulo' a secas, NO de clase, =>
en la ventana que se te abre pega este codigo =>

Sub FilasUnicas()
Dim f As Long, c As Integer, hj As String
hj = ActiveSheet.Name
Application.ScreenUpdating = False
Worksheets.Add
With Worksheets(hj)
For f = 1 To .Cells(65536, 1).End(xlUp).Row
.Cells(f, 1).Copy Cells(f, 1)
For c = 1 To .Cells(f, 256).End(xlToLeft).Column
If Application.CountIf(Rows(f), .Cells(f, c).Value) = 0 Then _
.Cells(f, c).Copy Cells(f, 256).End(xlToLeft).Offset(, 1)
Next
Next
End With
Columns.AutoFit
End Sub

vuelve a Excel y ejecuta la macro con la hoja como activa. Puedes
ejecutarlo dese el cuadro macros( => menu Herramientas => Macro => Ver
macros, o directamente => Alt+F8 => seleccionas la macro y ejecutas)

mira a ver si te vale. Como te digo puede tardar un poco, pero ten
paciencia, no creo que tarde mas de 2 o 3 minutos, y dependiendo de
tus datos quizas mucho menos.

de todas formas puede que haya formas mas rapidas pero con lo que
expones creo que todas demorrarian un poco

un saludo
Ivan

Preguntas similares