2014-07-09 1 views
1

은 내가 일치가 있으면 열의 값은 A가 B 열의 값을 일치하는지 확인해야합니다 어떤 데이터 엑셀 VLOOKUP 또는 INDEX 매치

AMOUNT(A) AMOUNT(B)  INVOICE(C) 
55   49   4541 
47   47   1515 
42   47   4478 
86   12   9993 
12   100   1224 
5   44   1452 
      100   4287 
      99   4444 

의 3 열이 말할 수 있습니다, 그것을 C 열의 값을 D 열에서 반환합니다. 이제 VLOOKUP에서는 쉽게 처리 할 수 ​​있지만 700+ 행을 처리하고 있으며 일치하는 금액이 여러 개 있습니다. INDEX (MATCH)는 작동하지만 하나의 값만 반환합니다. 이것은 VB에서만 문제입니까?

+0

이있는 경우, 그래이 VBA 코드가 필요합니다. Index와 Vlookup은 첫 번째 결과 만 반환합니다. –

+0

수식이나 VBA를 선호합니까 ?? 첫 번째 선택이 수식만으로 수행되는 것이라면 실제로 해결되지 않을 것이라고 생각합니다. Excel 배열 수식을 가까이에서 얻을 수 있지만 CONCATENATE가 범위/배열을 사용하지 못하고 구분 기호가 부족하다는 점을 제외하고 VBA가 아닌 방법을 알지 못합니다. 배열 메서드는 연결을 위해 작은 UDF로 작동합니다. 또는 전체에 대해 UDF를 작성할 수 있습니다. –

+0

예 배열 수식은 @MarkBalhoff가 지적한 것과 같이 D 열에서 하나의 셀만 반환하지만 배열 수식은 반환하지 않습니다. – L42

답변

2

이미 올바르게 문제 설명과 논리를 설명대로 VBA에서, 문제는 사소한 것 -

IE 값 47 그렇게 때문에 열 D가 모두 송장 번호 (4478 1515)를 반환 두 번 열 B에 존재 그 자체.

VBA없이 Excel 기능 만 사용하면 흥미로운 문제입니다.

  1. 피벗 테이블 :가에서 피벗 테이블을 확인을 다음과 같이

    단계

    enter image description here

    은 ... 다음과 같습니다 출력을 달성하기 위해 다음 단계를 수행해야합니다 열 필드가 (B)(C)이고 행 필드가 (B)이고 (C)이고 최소값이 AMOUNT(B) 인 값 필드입니다.
  2. 도우미 열 (아래 그림 참조) :는 피벗 테이블의 측면에 열을 확인, 열 (P)
  3. 에서 계속 모든 것을 단순히 동일하다 (Q) 말 ... :를 열 (R)에서 (불행히도 시트 Q의 열 Q에 혼돈이 생겨서 죄송합니다.) 예를 들어, Q20 아래 표처럼 뭔가의 작성됩니다 공식

    =IF(P21=P20,Q21&","&M20,M20)

  4. 에 넣어 :

테이블 :

(P) (Q) 

12 9993 
44 1452 
47 4478,1515 
47 4478 
49 4541 
99 4444 
100 4287,1224 
100 4287 

지금 어려운 작업이 이루어집니다. 이 도우미 테이블의 VLOOKUP 키 - 값 쌍을 사용하여 조회해야합니다. (P)(Q) - 피벗 테이블이 항상 정렬되어 있기 때문에 매우 빠르며 정확하게 LOOKUP이 필요하지 않습니다. - 스크린

피벗 테이블 헬퍼 표 피벗 테이블 아래뿐만 아니라 최종 VLOOKUP 수식 도시되어

enter image description here

최종 수식 :

enter image description here

+1

하시기 바랍니다. 3 행에서'= IF (A3 = B3,0,1)'이라면 4 행 1의'IF '에'= IF (A4 = B4,0,1)'이 아직'47' 이 두 행에 대해 ColumnB에서 필터링하면 해당하는 ColumnC 값 중 하나만 표시됩니까? – pnuts

+0

나는 뭔가를 놓치고 있어야합니다. OP의 질문을 읽은 후 논리적으로 열 A 옆에있는 열을 원하고 그 금액에 대한 모든 송장 목록을 원합니다. 당신은 열 A가 열 B/C와 같은 테이블의 일부이고, B) OP가 현재의 플랫 테이블 형식과 일치하는 금액의 모든 송장을 보는 것이라고 가정합니다. 어떤 가정도 질문에 대한 나의 독서에 맞지 않습니다. 그 번호가 한 번만 열 A에 있으면 귀하의 질문은 "송장 번호를 모두 반환"할 수 있습니까? –

+0

@ MarkBalhoff, 위의 방법은 VBA 기반 매크로/수식없이 작동합니다. 보세요. – hnk

1

그래서 Countif를 사용하여보고 있습니다. 는 D 열 유형에서 열 A. 에 따라 DUPS, 내 경험으로 =IF(COUNTIF($A$2:$A$9,B2)>0,C2,"")

enter image description here

+0

이 작업은 작동하지만 500 행 이상으로 약간 지저분했습니다. – Treevar