Извлечение значений в определенном числовом диапазоне

Извлечение значений в определенном числовом диапазоне

У меня есть таблица Excel со столбцом «AP», где каждая ячейка содержит такие значения:

5358  161043   22344   8444   103145  69221044 

"5358 161043 22344 8444 103145 69221044 " — это одна ячейка, в данном случае AP2. Я знаю, что это беспорядок, но я унаследовал это от кого-то другого и пытаюсь это навести.

Мне нужен какой-то способ извлечь эти значения в числовом диапазоне от 6623 до 12756. Я мог бы использовать либо команду поиска и замены, которая удаляет все значения за пределами этого диапазона, либо функцию, которая копирует нужные значения в другой столбец.

решение1

Я создал некоторые фиктивные данные и поместил их в столбец A на моем листе. В столбце B я использовал следующую формулу:

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

Это простой фильтр, который возвращает «Да» для значений в целевом диапазоне (я поместил их в ячейки L35 и L36).

введите описание изображения здесь

Далее выберите эти два столбца и включите Фильтр.

введите описание изображения здесь

Теперь на вкладке «Главная» перейдите на ленту редактирования и выберите «Найти и выделить». Выберите опцию «Перейти к специальному...».

Выберите опцию «Только видимые ячейки» и нажмите «ОК».

Нажмите «Копировать» или используйте CTRL-C. Это должно выбрать только строки с нужными вам данными.

Теперь, если вы вставите пустой лист, вы вставите только данные, соответствующие желаемому диапазону дат. Примечание: в моем примере я не оставил строку 1 пустой для заголовков, поэтому, когда я применил свой фильтр, у меня остался один "Нет". Вы можете либо удалить отставший, либо просто оставить пустую строку сверху в начале, чтобы этого не произошло.

решение2

Сначала введите следующую пользовательскую функцию в стандартный модуль:

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

Тогда, если у вас есть данные вАП1черезАП3, выберите другую ячейку и введите:

=GrabData(AP1:AP3)

Например:

введите описание изображения здесь

Как вы видите, значения возвращаются впространство, разделенноестрока, как и входные данные.

Связанный контент