Excel: eliminar una fila de cada diez
Aurélie
-
Aurélie -
Aurélie -
Hola,
<...> [Este Space es para conservar el formato HTML original, sin cambios]
Buscamos una solución que permita conservar solo una fila de cada diez (nuestras tablas contienen decenas de miles de filas; una décima sería suficiente).
La tabla consta de 3 columnas: la primera contiene números del 1 al ...; la segunda, datos numéricos; la tercera, horas.
Nos gustaría, por ejemplo, ordenar por la primera columna para conservar solo los múltiplos enteros de 10: 1, 10, 20, 30, etc.
Si alguien puede ayudarme ;-)
Utilizamos Excel 2007
Aurélie
Configuración: Windows XP / Firefox 3.6.6
<...> [Este Space es para conservar el formato HTML original, sin cambios]
Buscamos una solución que permita conservar solo una fila de cada diez (nuestras tablas contienen decenas de miles de filas; una décima sería suficiente).
La tabla consta de 3 columnas: la primera contiene números del 1 al ...; la segunda, datos numéricos; la tercera, horas.
Nos gustaría, por ejemplo, ordenar por la primera columna para conservar solo los múltiplos enteros de 10: 1, 10, 20, 30, etc.
Si alguien puede ayudarme ;-)
Utilizamos Excel 2007
Aurélie
Configuración: Windows XP / Firefox 3.6.6
2 respuestas
-
Bonjour,
¿no habrá una opción de "editar -> eliminar 9 líneas de 10"? jaja
creo que hacerlo todo a mano es la única solución...
avisos a los pro de Excel...
en otras palabras: manejo perfectamente Excel y si no sé hacerlo, ¿tiene que ser necesariamente un profesional?...
Aurélie,
adjunta maqueta de unas 300 filas aprox.
el código VBA está previsto para un gran número de filas
http://www.cijoint.fr/cjlink.php?file=cj201009/cijxEG8CN4.xls
actualmente el resultado está en la hoja2 para conservar una copia del original. si quieres eliminar el original no habrá problema para adaptar el código
dímelo si te conviene
cordialement,
Michel
:-x -
Parece que funciona, pero dime, ¿dónde puedo encontrar el código que has utilizado?
Estoy lejos de ser profesional :-s
;-) ¡Gracias!-
-
-
y aquí la macro; las modificaciones están en negrita
Const premlig As Byte = 2 ' 1° fila de la tabla Const saut As Integer = 50 ' número de filas a conservar Sub garder_1sur10() Dim nbre_lig As Long, derlig As Long, lig As Long, ind_t As Long Dim tab_10 ReDim tab_10(2, 0) 'tabla reuniendo los valores de las 3 columnas 'última fila de la tabla-array múltiple de 10 With Sheets(1) nbre_lig = Int(.Range("A" & .Cells.Rows.Count).End(xlUp).Row / saut) derlig = (nbre_lig * saut) + premlig - 1 '----- ----------------------------rellena la tabla-array 'salida 1 no es múltiplo de "saut" tab_10(0, 0) = .Cells(premlig, 1) tab_10(1, 0) = .Cells(premlig, 2) tab_10(2, 0) = .Cells(premlig, 3) ReDim Preserve tab_10(2, 1) 'línea cuyoA es múltiplo de "saut" ind_t = 1 'índice de la tabla For lig = premlig + saut - 1 To derlig Step saut tab_10(0, ind_t) = .Cells(lig, 1) tab_10(1, ind_t) = .Cells(lig, 2) tab_10(2, ind_t) = .Cells(lig, 3) ind_t = ind_t + 1 ReDim Preserve tab_10(2, ind_t) Next ReDim Preserve tab_10(2, ind_t - 1) End With 'restituye en hoja 2 Application.ScreenUpdating = False With Sheets(2) .Range("A2:C" & .Cells.Rows.Count).ClearContents .Range("A2").Resize(nbre_lig + 1, 3) = Application.Transpose(tab_10) .Range("C2").Resize(nbre_lig + 1, 1).NumberFormat = "h:mm:ss;@" .Activate End With End Sub
lo que importa es que funcione también con 21 o 37, ya que el valor de saut puede ser cualquier entero positivo. -
-