** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Secuenciar lista y eliminar no secuenciados
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoSecuenciar lista y eliminar no secuenciados

 Responder Responder
Autor
Mensaje
Dany Solis Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 23/Octubre/2010
Localización: Cd. Juarez Méx
Estado: Sin conexión
Puntos: 912
Enlace directo a este mensaje Tema: Secuenciar lista y eliminar no secuenciados
    Enviado: 02/Febrero/2021 a las 17:35
Que tal a todos tengo una situacion con los siguientes datos:


Lo que estoy buscando es depurar esa tabla eliminando el registro 10 siempre y cuando su numero siguiente debajo de el no sea un 11 y el valor producido del registro 11 insertarlo un registro arriba de el (10) .

Primeramente estoy intentando identificar aquellos registros que tienen un consecutivo despues del 10 pero le estoy asignando un valor "2", pero el anterior valor no encuentro como asignarle un valor para posterior eliminar aquellos que no tienen un consecutivo.

Estoy usando esta formula:

=IF(B3<>B4+1,"1",2)

Al final quiero obtener una tabla como la siguiente:


Alguna sugerencia, espero con las imagenes quede un poco mas clara la explicación.

Saludos

DS

Donde hay educación, no hay distinction de clases. (Confusio)

Dany Solis
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14720
Respuesta Respuesta
Enlace directo a este mensaje Enviado: 02/Febrero/2021 a las 22:42
Yo utilizaría una función VBA para limpiar las filas. En esencia se trata de recorrer la columna que contiene los valores 10/11. Solo importa los valores 10
- Si la siguiente línea es un 10, eliminar la línea
- Si la siguiente línea es un 11, copiar el valor de la celda de la tercera columna de la fila "11" a la fila "10"

Asumiendo que los datos estan en la hoja 1 y que las columnas "importantes" son la primera y la tercera, el código sería algo así:

Function Clear10()
    Dim f   As Integer
    Sheets("Hoja1").Select
    f = 1
    Do Until Cells(f, 1) = ""
        If Cells(f, 1) = 10 Then
            If Cells(f + 1, 1) = 11 Then
                Cells(f, 3) = Cells(f + 1, 3)
                f = f + 1
            Else
                Rows(f).Delete Shift:=xlUp
            End If
        Else
            f = f + 1
        End If
    Loop
    
End Function

(Escrito al vuelo)

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
Dany Solis Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 23/Octubre/2010
Localización: Cd. Juarez Méx
Estado: Sin conexión
Puntos: 912
Enlace directo a este mensaje Enviado: 03/Febrero/2021 a las 01:30
Muchas Gracias Xavi, lo he probado y hace exactamente lo que necesito.

Pueden cerrar el hilo.

Muchas gracias!!!!!

DS
Donde hay educación, no hay distinction de clases. (Confusio)

Dany Solis
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable