У меня есть таблица 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)
Например:
Как вы видите, значения возвращаются впространство, разделенноестрока, как и входные данные.