Extraer valores en cierto rango numérico

Extraer valores en cierto rango numérico

Tengo una hoja de cálculo de Excel con una columna "AP" donde cada celda contiene valores como este

5358  161043   22344   8444   103145  69221044 

"5358 161043 22344 8444 103145 69221044 " son todas una celda, AP2 en este caso. Sé que es un desastre, pero lo heredé de otra persona y estoy tratando de limpiarlo.

Necesito alguna forma de extraer esos valores en el rango numérico entre 6623 y 12756. Me vendría bien un comando de búsqueda y reemplazo que elimine todos los valores fuera de este rango o una función que copie los valores en cuestión en otra columna.

Respuesta1

Inventé algunos datos ficticios y los puse en la columna A de mi hoja. En la columna B, utilicé la siguiente fórmula:

=IF(AND(A1>=$L$35,A1<=$L$36),"Yes","No")

Este es un filtro simple que devuelve "Sí" para los valores en su rango objetivo (los dejé en las celdas L35 y L36).

ingrese la descripción de la imagen aquí

A continuación, seleccione esas dos columnas y active el filtro.

ingrese la descripción de la imagen aquí

Ahora, en la pestaña Inicio, vaya a la cinta Edición y elija "Buscar y seleccionar". Elija la opción que dice "Ir a oferta especial..."

Seleccione la opción llamada Solo celdas visibles y presione OK.

Presione Copiar o use CTRL-C. Esto debería seleccionar solo las filas con los datos que desea.

Ahora, si pega en una hoja en blanco, pegará solo los datos correspondientes al rango de fechas deseado. Nota: En mi ejemplo, no dejé la fila 1 en blanco para los encabezados, por lo que cuando apliqué mi filtro, terminé con un "No" sobrante. Puedes eliminar el rezagado o simplemente dejar una fila en blanco en la parte superior al principio para que eso no suceda.

Respuesta2

Primero ingrese la siguiente función definida por el usuario en un módulo estándar:

Public Function GrabData(r As Range) As String
    Dim cel As Range, v As String, a, d As Double

    GrabData = ""

    For Each cel In r
        v = cel.Text
        arr = Split(v, " ")
            For Each a In arr
                If IsNumeric(a) Then
                    d = CDbl(a)
                    If d > 6622 And d < 12757 Then GrabData = GrabData & " " & a
                End If
            Next a
        Next cel
End Function

Entonces si tienes datos enAP1a través deAP3, elige otra celda e ingresa:

=GrabData(AP1:AP3)

Por ejemplo:

ingrese la descripción de la imagen aquí

Como puede ver, los valores se devuelven en unespacio separadocadena, al igual que las entradas.

información relacionada