특정 수치 범위의 값 추출

특정 수치 범위의 값 추출

모든 셀에 다음과 같은 값이 포함된 "AP" 열이 있는 Excel 스프레드시트가 있습니다.

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에 해당 값을 추가했습니다).

여기에 이미지 설명을 입력하세요

다음으로 해당 두 열을 선택하고 필터를 켭니다.

여기에 이미지 설명을 입력하세요

이제 홈 탭에서 편집 리본으로 이동하여 "찾기 및 선택"을 선택하세요. "특별 항목으로 이동..."이라는 옵션을 선택하세요.

Visible Cells Only라는 옵션을 선택하고 확인을 누릅니다.

복사를 누르거나 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

그런 다음 데이터가 있으면AP1~을 통해AP3, 다른 셀을 선택하고 다음을 입력합니다.

=GrabData(AP1:AP3)

예를 들어:

여기에 이미지 설명을 입력하세요

보시다시피 값은공간 분리입력과 마찬가지로 문자열입니다.

관련 정보