¿Cómo elimino filas en excel en un periodo de tiempo que sea cada minuto durante todo un meses?

Tengo la siguiente tabla en excel ocupo dejar solo un valor por minuto y los demás valores sean ocultados y/o eliminados, este es un pequeño fragmento de la hoja de excel que tengo para ejemplificar la tabla es muy grande y no quiero eliminar de manera manual como lo podría realizar?

PHV 2:01:06 p.m. 4.204041 1 41209584097

PHV 2:01:16 p.m. 4.204041 1 41209584213
PHV 2:01:27 p.m. 4.203924 1 41209584340
PHV 2:01:37 p.m. 4.204508 1 41209584456
PHV 2:01:47 p.m. 4.204859 1 41209584572
PHV 2:01:57 p.m. 4.205326 1 41209584688
PHV 2:02:07 p.m. 4.204742 1 41209584803
PHV 2:02:17 p.m. 4.205326 1 41209584919
PHV 2:02:27 p.m. 4.205209 1 41209585035
PHV 2:02:37 p.m. 4.205209 1 41209585150
PHV 2:02:48 p.m. 4.205442 1 41209585278
PHV 2:0 2:58 p.m. 4.205442 1 41209585394
PHV 2:03:08 p.m. 4.205559 1 41209585509
PHV 2:03:18 p.m. 4.205442 1 41209585625
PHV 2:03:28 p.m. 4.205559 1 41209585741

1 respuesta

Respuesta
1

Te envio la formula de una solucion, pero la columna de los tiempos debe de estar en formato hora. Suponiendo que lo datos empiezan en A2, agregas dos columnas en F2 la formula seria =REDONDEAR.MENOS(B2*1440;0)/1440 y en G2 =SI(F2=F1;G1+1;1).

La columna G te numera las repeticiones y te las ordena, asi que solo tendrias que seleccionar por ejemplo los 1, el resto son valores repetidos en el mismo minuto.

Hola disculpa no entendí lo realice pero se mueven los datos y eso no debe de ser

Te adjunto el archivo

http://sdrv.ms/117kMy2

No vi la necesidad de hace una macro, solo es filtrar.

Para excel las horas son números, asi que se pueden hacer con ellas cualquier tipo de operación, incluido el redondear, se divide entre 1440 para pasar de horas a minutos: 24X60=1440.

La única condición es que las horas estén en orden ascendente, y no te preocupes por que haga referencia a celdas superiores, lo hace para ordenar.

Si tienes alguna duda preguntame, de no ser asi finaliza la pregunta. Bye!

Te adjunto el archivo

http://sdrv.ms/117kMy2

No vi la necesidad de hacer una macro, solo es filtrar.

Para excel las horas son números, asi que se pueden hacer con ellas cualquier tipo de operación, incluido el redondear, se divide entre 1440 para pasar de horas a minutos: 24X60=1440.

La única condición es que las horas estén en orden ascendente, y no te preocupes por que se hace referencia a celdas superiores, lse hace para ordenar.

Si tienes alguna duda preguntame, de no ser asi finaliza la pregunta. Bye!

Disculpa el tardar. Ya realize lo que me comentaste, arriba. Te comento, que al colocar la condición de SI en la columna correspondiente me coloca un valor de las 12:00:00 am. No se si realice algo mal. En el ejemplo que me mandaste como puedo dejar una fila con el tiempo de las 02:01:00, otra fila con las 02:02:00 y asi sucesivamente. Ya que se ocultaron o eliminaron que se recorran las filas que se quedaran y de esta manera no habría campos vacíos.

¿Necesitas qué el valor de la columna B se reemplace por el valor redondeado al minuto?, o necesitas la hora sin modificar.

Si se puede quedar la misma hora estaría muy bien en caso de que no se pueda no hay problema.

Te envío esta macro

Sub RedondeoFechas()
Dim Rango As Range
Dim Ws As Worksheet
Set Rango = ActiveSheet.Range("A1").CurrentRegion
Filas = Rango.Rows.Count
For f = 2 To Filas
If IsNumeric(Rango.Cells(f, 2)) Then
Rango.Cells(f, 2) = Round(Rango.Cells(f, 2) * 1440, 0) / 1440
Else
MsgBox "La celda" & "(" & f & ",2)" & " no contiene una hora valida, revisé el formato", vbCritical
Exit Sub
End If
Next
Rango.RemoveDuplicates Columns:=2, Header:=xlYes
End Sub

Pruebala y me cuentas

Te envío el libro para que pruebes

http://sdrv.ms/12or6SP

Recuerda asegurarte del formato de la hora

Si es la solución a tu problema, no se te olvide dar por finalizada la pregunta. Hasta la proxima

Disculpa unas dudas mas: A que te refieres con ello de asegurarme con el formato de la hora. Al correr la macro me manda un mensaje que no contiene una hora valida imagino a eso te refieres. Verifique la macro que tu utilizaste en el ejemplo que me mandas y si realiza con esos pocos datos lo que ocupo, pero a mi no me sale algo estoy haciendo mal.

Si, lo supuse, por eso coloque el mensaje de error. Lo mas probable es que la celda no contiene una hora, si no una cadena de texto. Si quieres enviame una copia y yo valido la forma de cambiar este formato

[email protected]

Recibí tu correo, tengo una duda, las celdas contienen horas de varios días, si por ejemplo dos días tienen la misma hora, ¿debe dejar solo una?

Asi es solo se debe quedar un solo dato, de hecho me gustaría que se eliminen

Ok, ya realice los ajustes, aunque acabe anotar que tus datos sufren un error a partir de la fila 95468, no están separados, asi que atento con eso.

La macro queda asi

'By Viktor [email protected]
Sub RedondeoFechas()
Dim Rango As Range
Dim Ws As Worksheet
Set Rango = ActiveSheet.Range("A1").CurrentRegion
Application.StatusBar = False
Filas = Rango.Rows.Count
c = 2 'columna donde se encuentran las horas
For f = 2 To Filas 'Fila en que empieza a realizar la conversion
Application.StatusBar = "Proceso ejecutandose: " & Round(((f / Filas) * 100), 0) & "%"
If IsDate(Rango.Cells(f, c)) Then
Hora = CDbl(CDate(Format(Rango.Cells(f, c), "h:mm:ss")))
Rango.Cells(f, c) = Round(Hora * 1440, 0) / 1440
Else
MsgBox "La celda" & "(" & f & c & ") no contiene una fecha-hora valida, revisé el formato, La macro no se finalizo con exito", vbCritical
Exit Sub
End If
Next
Rango.RemoveDuplicates Columns:=c, Header:=xlYes
MsgBox "Proceso finalizado exitosamente", vbInformation
End Sub

Link al libro de ejemplo: http://sdrv.ms/ZbXCYD

Debes de dejar el formato tal cual lo tienes en la plantilla base del tipo "27/10/2012 7:46"

Dado que son bastantes filas, en el status bar, parte inferior de la hoja, te mostrara el porcentaje actual de ejecución del proceso.

Cualquier duda que tengas, me preguntas. No se te olvide dar por finalizada la pregunta

Una duda que se me genero que sucedería si copio y pego las mismas columnas

solo que agrego 2 mas, las cuales dependen de la fila B, como puedes observar esta contiene fecha y hora lo que haría seria copiar dos columnas mas iguales a la columna B

solo selecciono el estilo de fecha para una y el estilo de hora para la otra, se puede con la macro que me enviaste, es duda y curiosidad?

SI, no hay problema, la macro evalúa la columna 2 a partir de la fila 2, asi que puedes agregarle mas columnas, desde que respetes la B, que es la que necesitamos con ese formato

Aunque igual, después de correr la macro, le puedes cambiar el formato a hora a esa columna

Hola nuevamente ya verifique el que me mandaste al correo y realiza todo tal como debe de ser, solo me queda una duda para realizarlo con la macro que colocaste lineas arriba, la ejecuto y me sigue mandando el error de: La celda (22) no contiene una fecha-hora valida, revise el formato, La macro no se finalizo con éxito a que se debe esto o como lo puedo eliminar se que la manera mas fácil es utilizar la que me enviaste pero para mi seria bueno retro-alimentarme y saber el porque de estoy como se resuelve. Disculpa las molestias ocasionadas.

Enviame el archivo de nuevo y yo valido.

ya te lo envíe

No, no llego nada

[email protected]

Al parecer me equivoque perdón te lo envíe al correo que me comentaste

De nuevo me funcióna bien, aunque le modifique el código para que te ponga al final el formato de hora.

Lo único es que tienes que revisar la fuente, como te había comentado la información a partir de la fila 95469 del cvs, no tiene el mismo formato. Asi que solo funcióna si pegas la información con el formato valido que es hasta la fila 95468

http://sdrv.ms/11iZtIk

Gracias por la paciencia y la explicación de cada uno de los puntos solicitados, ya entendí el porque me marcaba el error por las filas finales las cuales no tienen el mismo formato. Gracias nuevamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas