2012-04-17 2 views
5

시트 1의 열 a와 시트 2의 열 a를 비교 한 다음 시트 2의 b 열에서 b 열의 해당 값을 시트 2 (열 값이 일치하는 곳)에 복사하려고합니다. 나는 이것을 수행하는 방법에 대해 읽으려고했지만 매크로를 만들려는 노력이 필요한지 또는 VLOOKUP 또는 MATCH 일 가능성이있는 간단한 방법이 있는지 확실하지 않습니다. 나는이 기능들이 어떻게 작동하는지에 익숙하지 않다. 이 차이가 있는지첫 번째 두 열이 일치하면 Excel의 두 열을 다른 시트에서 비교하고 해당 열의 값을 복사하는 방법은 무엇입니까?

또한, 시트의 b를 열에서 값이 반복된다 2.

시트 (1)

12AT8001 1 
12AT8002 2 
12AT8003 3 
12AT8004 4 
12AT8005 5 
12AT8006 6 

시트 (2)

12AT8001 
12AT8001 
12AT8001 
12AT8001 
12AT8001 
12AT8002 
12AT8002 
12AT8002 
12AT8002 
12AT8002 
12AT8003 
12AT8003 
12AT8003 
12AT8003 
12AT8003 

답변

5

Vlookup이 경우 좋은 기준값 (열 A, 시트 1)은 오름차순입니다. 또 다른 옵션은

이것은 당신이 시트에 열 B를 넣어 것이 무엇인가에 상관없이 순서 (만큼 열 A의 값으로, 시트 (1)는 고유) 사용할 수 있습니다 지수와 일치한다 2

=INDEX(Sheet1!A$1:B$6,MATCH(A1,Sheet1!A$1:A$6),2) 

Sheet1!A$1:B$6Sheet1!A$1:A$6을 명명 된 범위로 설정하면 좀 더 사용자 친화적입니다.

+0

나는 데이터의 부분 집합에 그 공식을 사용하는 경우 (I 질문에 예제로 사용하는 것이)가했다. 그러나, 전체 데이터 세트 (sheet1의 경우 600 행, sheet2의 경우 2994 행)에서 시도해 보았을 때 # N/A 오류가 발생했습니다. 나는 = INDEX (Sheet1! A $ 1 : B $ 600, MATCH (A1, Sheet1! A $ 1 : A $ 600), 2)라는 수식을 업데이트했습니다. – kmcamara

+0

그런 다음 sheet1에 전체 600 행을 시도했지만 예제에서 사용한 sheet2의 동일한 테스트 하위 집합으로 유지했습니다. 동일한 = INDEX (Sheet1! A $ 1 : B $ 600, MATCH (A1, Sheet1! A $ 1 : A $ 600), 2) 수식을 사용하여 모든 행에 276의 겉보기 임의 숫자를 반환했습니다. – kmcamara

+0

아마 그 sheet2에 대한 데이터의 전체 세트에있는 ID가 sheet1과 같은 순서로 있지 않기 때문에 (예와 같이) 작동하지 않을 수 있습니까? 그 모든 이드들은 풀 세트에서 섞여 있습니다. . . 그래서 나는 그들을 손으로 맞추는 것보다 더 빠른 것을 필요로한다. sheet1의 A 열에있는 모든 값은 그 과정에서 고유합니다. 전체 세트에서 작동하지 않는 이유에 대한 아이디어 또는 시도해 볼만한 다른 아이디어가 있습니까? – kmcamara

0

진리표를 만들고 SUMPRODUCT를 사용하여 값을 가져옵니다. 이것을 Sheet2의 B1 셀에 복사하고 필요한만큼 아래로 복사하십시오.
=SUMPRODUCT(--($A1 = Sheet1!$A:$A), Sheet1!$B:$B)
진리표를 생성하는 부분은 다음과 같습니다.
--($A1 = Sheet1!$A:$A)
그러면 0과 1의 배열이 반환됩니다. 값이 일치하면 1, 그렇지 않으면 0입니다. 그런 다음 쉼표를 사용하면 기본적으로 "재밌는"행렬 곱셈을 수행하고 결과를 반환합니다. 귀하의 질문에 오해가있을 수 있습니다, 거기에 값이 중복 Sheet1의?

+0

해결책을 따르고 있지 않습니다. (단, Sheet1의 A 열에 중복이 없습니다.) – kmcamara

+0

그냥 복사하여 Sheet2의 B1 셀에 넣은 첫 번째 수식을 붙여 넣은 다음 필요한만큼 채 웁니다. 워크 시트가 게시물에서 언급 한 방식으로 설정되었다고 가정하면 올바른 값을 제공해야합니다. 기본적으로 1 * 시트 1의 열 A가 S의 열 A의 값과 일치 할 때마다 시트 1의 열 B 히트 2. – deusxmach1na

-1

시도 :

sheet 2 a1 =vlookup(sheet2a1,sheet1$a$1:$b$6,2) 

한 다음, 아래로 드래그합니다.

제대로 작동합니다.

3

kmcamara가 발견 한 바로는 이것이 VLOOKUP이 해결하려고하는 문제의 한 종류이며, vlookup을 사용하면 틀림없이 작업을 완료하는 가장 간단한 방법이라고 할 수 있습니다.

lookup_value, 검색 할 table_range 및 반환 값에 대한 column_index의 세 가지 매개 변수 외에도 VLOOKUP은 Excel 설명서에서 "range_lookup"을 호출하는 선택적 네 번째 인수를 사용합니다.

이 인수가 TRUE (또는 1)로 설정되거나 생략 된 경우에는 테이블 범위를 범위의 첫 번째 열에있는 값의 오름차순으로 정렬해야합니다. "올바른"값인 것으로 이해해야합니다. 이 기본 동작에서 함수는 정확한 일치를 기반으로 한 값을 반환합니다. 일치하는 값이 없으면 근사값을 반환합니다.

일치하는 것이 대략적인 경우 함수에서 반환하는 값은 lookup_value보다 작은 다음으로 큰 값을 기준으로합니다.예를 들어, "12AT8002"가 더 적은 테이블 범위의 조회 열에서 가장 큰 값이기 때문에 시트 1의 테이블에서 "12AT8003"이 누락 된 경우 시트 2의 해당 값에 대한 조회 수식은 '2'를 반환합니다. "12AT8003"보다.

그러나 네 번째 인수가 FALSE (또는 0)로 설정된 경우 VLOOKUP은 조회 테이블을 반환합니다 (VLOOKUP의 기본 동작은 세금 테이블의 요율을 조회하는 것이 목표 인 경우 완벽합니다). 정확히 일치하는 경우에만 값을, # N/A가없는 경우에는 오류 값을 반환합니다. 비 일치를 정상적으로 잡으려면 IFERROR 함수에 정확한 VLOOKUP을 래핑하는 것이 일반적인 관례입니다. IFERROR가 도입되기 전에는 VLOOKUP 공식을 사용하여 일치가 있었는지 한 번 확인하고 한 번 실제 일치 값을 반환하는 IF 함수로 일치 항목을 확인하지 않았습니다. , deusxmach1na 제안의 솔루션은 그 VLOOKUP하는 대안의 강력한의 변형 인 마스터하기 위해 처음에 힘들어하지만

가 조회 열의 왼쪽 에 열 또는 목록에 대한 값을 반환하는 데 사용할 수 있습니다 경우를 처리하기 위해 확장 하나 이상의 기준에 대한 정확한 일치가 필요한 경우 또는 여러 기준간에 OR 조건과 AND 조건을 통합하도록 수정 된 경우.

반복 kcamara의 선택 솔루션이 문제에 대한 VLOOKUP 공식은 다음과 같습니다

=VLOOKUP(A1,Sheet1!A$1:B$600,2,FALSE) 
관련 문제