Extraia valores em determinado intervalo numérico

Extraia valores em determinado intervalo numérico

Tenho uma planilha Excel com uma coluna “AP” onde cada célula contém valores como este

5358  161043   22344   8444   103145  69221044 

"5358 161043 22344 8444 103145 69221044" são todos uma célula, AP2 neste caso. Eu sei que está uma bagunça, mas herdei de outra pessoa e estou tentando limpar.

Preciso de alguma maneira de extrair esses valores no intervalo numérico entre 6623 e 12756. Eu poderia usar um comando de pesquisa e substituição que exclua todos os valores fora desse intervalo ou uma função que copie os valores em questão para outra coluna.

Responder1

Criei alguns dados fictícios e coloquei-os na coluna A da minha planilha. Na coluna B, usei a seguinte fórmula:

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

Este é um filtro simples que retorna "Sim" para valores no seu intervalo de destino (coloquei-os nas células L35 e L36).

insira a descrição da imagem aqui

Em seguida, selecione essas duas colunas e ative o Filtro.

insira a descrição da imagem aqui

Agora, na guia Home, vá para a faixa de edição e escolha "Localizar e selecionar". Escolha a opção que diz "Ir para especial..."

Selecione a opção chamada Somente células visíveis e pressione OK.

Pressione Copiar ou use CTRL-C. Isso deve selecionar apenas as linhas com os dados desejados.

Agora, se você colar em uma planilha em branco, colará apenas os dados correspondentes ao intervalo de datas desejado. Observação: no meu exemplo, não deixei a linha 1 em branco para cabeçalhos, então, quando apliquei meu filtro, acabei com um “Não” sobrando. Você pode excluir o retardatário ou simplesmente deixar uma linha em branco no início, para que isso não aconteça.

Responder2

Primeiro insira a seguinte função definida pelo usuário em um módulo padrão:

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

Então, se você tiver dados emAP1atravésAP3, escolha outra célula e digite:

=GrabData(AP1:AP3)

Por exemplo:

insira a descrição da imagem aqui

Como você pode ver, os valores são retornados em umespaço separadostring, assim como as entradas.

informação relacionada