2009-11-17 3 views
0

비교해야 할 Excel 시트 (Excel 2003)에서 250 행에 가까운 데이터가 있습니다. 누군가가 vlookup/다른 어떤 Excel 루틴을 통해 나를 도와 줄 수 있다면 정말 감사합니다. ? 난 내 엑셀 시트에서 실패한 결과 일부 샘플 데이터를 필터링하려면 어떻게 :vlookup을 사용하여 열을 비교하십시오.

Condition to check: 
Where $E = $Q 
Check if rows ($F - $K) = rows($R to $w) 

Rows (E - K) 
1000xyz400100xyzA00680xyz0 19722.83 19565.7 157.13 11 2.74  11.00 
1000xyz400100xyzA00682xyz0 7210.68  4111.53 3099.15 216.95 1.21 216.94 
1000xyz430200xyzA00651xyz0 146.70  0.00 0.00 0.00 0.00 0.00 

Rows (Q - W) 
1000xyz400100xyzA00680xyz0 19722.83 19565.70 11.00 13.74 2.74 11.00 
1000xyz400100xyzA00682xyz0 7210.68 4111.53 216.94 218.15 1.21 216.94 

또 다른 문제는, 내가 이것을 확인하거나 VLOOKUP 정렬되지 않은 데이터를 처리 할 수 ​​있습니다 전에이 정렬을 수행해야합니까.

+0

q1 : 동일한 시트에 두 개의 독립적 인 테이블이 있습니까 ($ E : $ K) 및 ($ Q : $ W)입니까? q2 : 행 $ E와 $ K는 각 레코드를 고유하게 식별하는 "키"입니까? – MikeD

답변

0
당신은 내가 아래 한 예에서와 같이이에 대한 VLOOKUP 사용하게하는 경우 우선 해제, 다음에 필요가 없습니다

range_lookup 값을 FALSE로 설정하면 VLOOKUP에서 정확히 일치하는 항목 만 검색하도록 설정합니다. 그러나 비교 대상 행 E 또는 Q에 중복 항목이 있으면 일치하는 데이터의 모든 인스턴스를 찾지 못해 문제가 발생할 수 있습니다.

아래의 수식은 첫 번째 조건이 일치 할 수 있는지 확인한 다음 6 개의 후속 열과 각각의 해당 열을 비교합니다. 이 특정 수식은 초기 일치 항목이 없으면 "Not Found"를 반환하고, 모든 행이 해당 항목과 일치하면 "All OK"또는 하나 이상이 일치하지 않으면 "Not OK"를 반환합니다. 어떤 필드가 notequal인지에 대한 정보를 얻으려면 AND 함수를 분해하여 컬럼 세부 사항을 리턴해야합니다.

=IF(ISNA(VLOOKUP(E1,$Q$1:$W$2,2,FALSE)),"Not Found",IF(AND(F1=VLOOKUP(E1,$Q$1:$W$2,2,FALSE),G1=VLOOKUP(E1,$Q$1:$W$2,3,FALSE),H1=VLOOKUP(E1,$Q$1:$W$2,4,FALSE),I1=VLOOKUP(E1,$Q$1:$W$2,5,FALSE),J1=VLOOKUP(E1,$Q$1:$W$2,6,FALSE),K1=VLOOKUP(E1,$Q$1:$W$2,7,FALSE)),"All OK","Not OK")) 

데이터 세트에 인접한 열에 놓기 만하면됩니다.

+0

감사합니다 Ulkash. 나를 위해 잘 작동합니다. 유일한 문제는 어느 것이 일치하는 요소인지 식별 ​​할 수 없다는 것입니다. 두 요소 사이의 행이 정렬되지 않았기 때문입니다. 어떤 제안? – novice

+0

데이터를 정렬해도 문제가되지 않으면 두 범위를 모두 정렬하십시오. 첫 번째 열에서 일치하지 않는 행을 방해하지 않고 이동해야하는 경우가 있습니다. 실제로 데이터를 다른 시트로 이동할 수는 있지만 정렬을 사용하여 필요한 데이터를 맨 위에 놓으려고합니다. – ulkash

+0

첫 번째 범위를 vlookup 열을 내림차순으로 정렬 한 다음 첫 번째 열 (E)을 모두 오름차순으로 정렬하십시오. (단지 vlookup에서 선택한 문자열을 사용하면 상단에 불일치가 생기고 이없는 행은 두 번째 범위의 해당 값과 데이터가 올바르게 일치하는 행이됩니다. - 옆으로 , Not Found를 Absent로 변경하면 All OK 행이 또한 정렬됩니다). – ulkash

0

q1과 q2 모두에 대해 YES라고 가정하면 테이블을 검증하기 위해 (임시) 열을 사용하는 것이 좋습니다. 이 예는 일반적으로 질문의 종류를 위해 사용하는 것이 기능 보여줍니다 :

column : L 
heading: "FoundInQ" 
formula: =NOT(ISNA(VLOOKUP(E2;$Q:$Q;1;FALSE))) 
purpose: check if key found in E2 is present anywhere in column Q 
comment: if Vlookup with the FALSE option doesn'g find an exact match, it returns #NA 
     and we make use of that by specifically testing that using ISNA() 
     E2 is the only relative address, so safe to copy this down your table 

column : M 
heading: "WhereInQ" 
formula: =MATCH(E2;$Q:$Q;0) 
purpose: get number of row in Q where key is found 
comment: this we don't need directly, it is to illustrate how you get an index for a 
     search key within a target range. Mind the parameter "0" at the end 

column: N 
heading: "F equal R" 
formula: =F2=INDEX($R:$R;M2) 
comment: M2 makes use of the MATCH function above, here split for better clarity 

이제 당신은 열 중 하나 M 삽입과 같은 공식을 결합 할 수 있습니다 등 관련 값을 받고, 키를 찾는 몇 가지 기본적인 기술을 가지고 공식 N의 "M2"인수에,

=AND(F2=INDEX($R:$R;M2);G2=INDEX($S:$S;M2);H2=INDEX($T:$T;M2);...) 

없이 당신이에서 자동 필터를 정의해야한다는 말에 같이 이상의 인접한 열에 대한 열 N을 확장, 전체가 열 L의 결과에 조건부로 표시 할 수 있습니다 (temp) 열을 나쁘게 구분하고, 전체 논리 (E에서 Q로보기)를 바꿀 수 있습니다.

그리고 두 개의 서브 테이블을 정렬 할 필요가 없습니다. 해결해야

는 ....

행운

를 마이킹
+0

안녕하세요, 마이크, 자세한 정보 주셔서 감사합니다. 두 질문에 대한 대답은 "예"입니다. 그러나 귀하의 수식을 사용하면 "수식에 입력 된 오류가 있습니다"라는 오류 메시지가 나타납니다. 또한 "= NOT (ISNA (VLOOKUP (E2; $ Q $ 2 : $ Q $ 241; 1; FALSE)))") 여전히 동일합니다. 어떤 제안? – novice

+0

PC에서 독일어 로켈 설정을 사용하고 있습니다. ";" ","the formule 내에서. 이것이 이유가 아니면 한 번 더 돌아 오십시오. 행운을 빕니다 MikeD – MikeD

관련 문제