2014-03-03 5 views
2

큰 (50k +) 스프레드 시트를 쿼리 할 ID 목록 (약 140 개)이 있습니다. 이것은 '해당 항목이 목록에 존재합니까?' 큰 스프레드 시트에 저장된 세부 정보를보고 싶습니다. 가장 간단한 방법은 ID의 필터와 키를 손으로 사용하는 것입니다. 그러나 ID 목록은 상당히 크며 이는 한 번에 140 개의 ID를 입력하는 매우 힘든 과정입니다. 고급 필터 또는 매크로를 사용하여 원하는 항목을 필터링하는 데 도움이되는 방법이 있습니까?다른 목록의 내용으로 목록을 필터링하는 방법은 무엇입니까?

참고 : VBA를 사용하고 싶지 않으므로 시간이 많이 걸립니다. 필자는 이후 피벗 테이블이 최상의 솔루션이라는 것을 알게되었습니다. 더 쉽게이 작업을 수행 할 수있는 수식이나 매크로가 있는지 궁금합니다.

+0

당신은 ID 숫자의 목록입니까? – user2140261

+0

내 ID는 영숫자입니다. –

+0

그 경우에는 내 대답의 첫 번째 코드 (3 줄) 만 있으면됩니다. – user2140261

답변

1

사실 그래, 당신은 그렇게 고급 필터를 사용할 수 있습니다

enter image description here

을 예제 F1에서 : F6는 (귀하의 경우 140 개 값을 포함하는 범위)에 사용할 수있는 값을 포함합니다. 기준 범위는 A8입니다 : C9과 C9에 그냥 공식을 쓰기 :

=COUNTIF($F$1:$F$6;A13)>0 

A13는 데이터 범위의 첫 번째 ID가 포함 된 셀입니다.

당신은 고급 필터이 작성해야 :

enter image description here

망가은 C9 공식을 잊어 버려.

+0

이것에 대해 자세히 설명해 주시겠습니까? 당신의 대답을 처리하기 위해 고급 필터를 얻으려면 어떻게해야합니까? –

+0

방금 ​​내 대답을 편집 ... – CRondao

+0

나는 ... 내가 뭘 찾고 있었는지는 알지 못했지만, 나는 그것의 a, b, c, d, e, f의 Vals도 표시하고 싶다. 하지만 제 경우에는 약 20 칼럼의 열이 있습니다! –

2

당신은 당신이 다음 사용할 수있는 열을 추가 VBA를 사용하지하고자하는 경우 :

Sub Filter() 
Dim Criteria As Variant 
Criteria = Worksheets("Sheet1").Range("A1:A140") 

Worksheets("Sheet2").Range("$A$1:$B$10").AutoFilter Field:=1, Criteria1:=Criteria, Operator:=xlFilterValues 
End Sub 

주 :이 경우 아이디의이 단지 숫자가 아닌 경우 위에만 작동합니다 당신이 사용할 수있는 다음과 같은 :

모두 위의 코드에서
Sub Filter2() 
Dim tempCriteria As Variant 
Dim i As Long 
Dim Criteria() As String 

tempCriteria = Worksheets("Sheet1").Range("A1:A140") 

ReDim Criteria(1 To UBound(tempCriteria)) 

For i = 1 To UBound(tempCriteria) 
    Criteria(i) = CStr(tempCriteria(i, 1)) 
Next 

Worksheets("Sheet2").Range("$A$1:$B$10").AutoFilter Field:=1, Criteria1:=Criteria, Operator:=xlFilterValues 
End Sub 

개봉 된 쿼리가 범위에 140 개 번호의 보유 범위에 Worksheets("Sheet1").Range("A1:A140")을 변경하고 Worksheets("Sheet2").Range("$A$1:$B$10") in.

관련 문제