Excel 2010-열을 비교하는 방법? [닫은]


-2

각 열에 16k 개가 넘는 데이터 행이있는 2 개의 열 (A & B)이 있습니다.

열의 열 A보다 80 개의 행이 더 B있습니다. 둘 다 같은 수의 행이어야합니다.

두 열을 비교하여 B 열에서 떨어진 것을 확인하려면 어떻게합니까? B 열에는 A 열에없는 이름이 있습니다. 모든 이름이 B 열에 있는지 A 열을 비교하고 싶습니다.

예:

--------------------------------------------
| Column A           |     Column B        |
--------------------------------------------
| Abdeljawa,Mohammed | ABDELJAWA MOHAMMED  |
| Abdella,Georgette  | ABDELLA GEORGETTE   |
| Abdul,Moiz M       | ABDELLA ZIAD        |
| Abdullahi,Abukar   | ABDUL MOIZ MOSHEEN  |
--------------------------------------------

1
1) 두 열의 행 수는 동일해야합니다. 그러나 B에 A가 아닌 이름이 포함 된 경우 80 행이 누락되지 않아도 모든 A 이름이 B에있는 것은 아닙니다. 너무 많은 질문이 혼란을 유발하는 것처럼 보입니다. 2) 일치하는 이름조차 대소 문자와 구두점을 넘어 반드시 일치 할 필요는 없습니다. Abdul, Moiz M은 대소 문자를 수정하고 구두점을 수정 한 Abdul Moiz Mosheen과 동일하지 않습니다. 잠재적 인 차이의 범위 나 A 이름 만 B 이름의 단축 버전이 될 수 있는지 여부는 설명하지 않습니다. 따라서 간단한 조회를 사용할 수 없습니다.
fixer1234

답변:


1

쉬운 답변 :

C1에 수식을 입력하십시오.

=VLOOKUP(A1,B:B,1,FALSE)

열의 C데이터 끝까지 열을 아래로 끕니다 B.

이렇게하면 열의 각 값을 비교하여 열에 B있는지 확인합니다 A( 값과 정확히 일치 하는지 확인 ).


더 깊게 파고 ...

제공 한 샘플 데이터를 기준으로 column에서 동일한 이름이 column A에서 다르게 나타날 수 B있습니다.

내가 주목 한 세 가지는 :

  • 대문자 사용 (대문자와 문장 모두)
  • 구두점 (공백 대신 쉼표 추가)
  • 순서 (예 : 이름 [space] 성 vs 성, 이름 [space] 중간 이니셜)

column B이 column 에 모든 것을 가지고 있는지 찾아 보면서 이러한 상황을 처리 A하려면 조금 더 관여해야합니다.

각 항목의 발생 횟수에 따라 이러한 불일치 (있는 경우) 만 고려할 수도 있습니다.

데이터의 각 불일치를 개별적으로 다룰 것입니다. 고려해야 할 사항에 따라 필요에 따라 중첩 할 수 있습니다.

대문자 : Excel의 VLOOKUP기능은 대소 문자를 구분하지 않습니다. 따라서 VLOOKUP데이터를 찾는 데 사용 하는 경우 문제가되지 않습니다 . 그러나 다른 함수를 사용하는 경우 대소 문자를 쉽게 처리 할 수 ​​있습니다. 당신이해야 할 일은 일관되도록 모든 데이터를 소문자 또는 대문자 로 변환 합니다 . (개인적으로 대문자를 모르는 이유로 대문자를 선호합니다)

  • 데이터를 소문자로 변환하려면 LOWER 함수를 사용하십시오.
  • 데이터를 대문자로 변환하려면 UPPER 기능을 사용하십시오.

참고 : 원하는 경우 Proper 기능 을 사용하여 모든 항목을 적절한 케이스로 변환 할 수도 있습니다 .

이러한 함수를 사용하고 일관된 대문자를 사용하여 2 개의 새로운 데이터 열을 만들거나 수식 내에서이를 사용하여 값을 즉시 변환 할 수 있습니다.

구두점 : 제공 한 샘플을 기준으로 column에 하나가 A있고 이름이 쉼표로 구분되고 동일한 이름이 공백으로 구분 된 인스턴스가 있었습니다. 그러한 인스턴스가 많으면 SUBSTITUTE 함수 를 사용하여 하나의 형식을 고수 할 수 있습니다 .

예를 들어 셀에서 모든 쉼표를 제거 A1하고 공백으로 바꾸려면 다음을 사용할 수 있습니다.

=SUBSTITUTE(A1,","," ")

다시 대문자와 유사하게, 치환 결과가있는 2 개의 새로운 열을 가지거나 다른 수식에서도 사용할 수 있습니다. VLOOKUP셀에서 쉼표를 제거하고 A1열에서 찾아보기 전에 공백으로 바꾸 려면 수식의 모양입니다 B.

=VLOOKUP(SUBSTITUTE(A1,","," "),B:B,1,FALSE)

순서 : column A과 column 에서 같은 이름의 순서가 다르고 B그러한 인스턴스가 많으면 이름을 찾기 전에 순서를 바꾸어야 할 수도 있습니다. 이것은 정말 쉽게 복잡해질 수 있습니다.

  1. 이 작업을 수행하기 전에 재정렬해야 할 데이터가 많이 있는지 확인하십시오.
  2. 동일한 이름이 2 열에서 일관된 방식으로 다르게 정렬되어 있는지 확인하십시오 .
  3. 올바르게 일치하는 데이터 중에 이와 같은 데이터가 있으면 일치하지 않는 데이터에 대해서만이 작업을 수행하십시오.

셀의 이름을 성, 이름에서 성으로 재정렬하려면 아래를 참조하십시오.

에서 촬영 나는 "성, 이름"을 "이름 성"에서 문자열을 전환 할 수 있습니까? :

이름이 A2에 있으면 B2에서이 수식을 복사 해보십시오.

= MID (A2 & ""& A2, FIND ( "", A2) + 1, LEN (A2) -1)

다른 방법으로 이름 순서를 바꾸거나 순서를 바꿀 때 중간 이니셜을 고려하려면 LEFT , RIGHT , MID , LEN , FIND 함수를 사용하여 필요에 따라 사용할 수 있습니다.

데이터를 Excel 파일로 가져 오는 방법에 따라 마지막 으로 CLEANTRIM 과 같은 다른 데이터 정리 기능 을 수행해야 할 수도 있습니다 .


0

여러 가지 방법이 있습니다. 여기에 하나가 있습니다.

C 열에 A 열의 각 값을 가져 와서 B 열에서 검색하는 수식을 넣습니다. 찾을 수 없으면 플래그를 지정하십시오. 그런 다음 플래그에 필터를 넣으십시오. 그렇게하면 차이점을 쉽게 볼 수 있습니다.

공식은 (Cell C1)과 같습니다 .
=VLOOKUP(A1,B$1:B$20000,1,FALSE)
B에 존재하고 존재 #ERROR하지 않는 경우 A의 값을 C에 넣습니다 .

그런 다음 수식을 복사하고에 대해 C를 필터링 #ERROR하면 B에서 누락 된 모든 A 값이 표시됩니다.

예와 같이 철자에 약간의 차이가 있다면 충분하지 않습니다. 그것들을 일치시키는 UPPER(A1)대신에 사용해야 하며 A1, 쉼표가 있으면 ','아무것도 대체를 추가해야합니다 .


Abdul, Moiz M은 대소 문자를 수정하고 구두점을 수정 한 Abdul Moiz Mosheen과 동일하지 않으므로 대문자와 문장 부호보다 더 많은 차이가 있기 때문에 오탐 (false positive)이 발생합니다.
fixer1234

0

열 A에는 쉼표가 있고 열 B에는없고 쉼표에는 열 B가 있고 대문자 A에는없는 경우 문제가 매우 복잡합니다. 내가 개인적으로하는 일은 각 열을 별도의 텍스트 파일로로드 한 다음 Linux 유틸리티 sed를 사용하여 쉼표를 제거하고 첫 번째 파일의 모든 대문자로 변경하십시오. 그런 다음 diff 유틸리티를 실행할 수 있습니다.


첫 번째 불일치에 도달하면 그 이후의 모든 항목이 일치하지 않습니다. 따라서 사실상 전체 목록이 diff 유틸리티에있을 수 있습니다. 소스 데이터로 작업하고 있지 않으므로 행을 수정하여 영향을 볼 수 없습니다. 다음 실제 불일치를 찾으려면 전체 프로세스를 반복해야합니다. 이는 소스 데이터를 직접 사용하여 크게 개선되는 매우 비효율적 인 프로세스입니다.
fixer1234

0

Fo 이름은 같은 형식이 아니기 때문에 조금 까다로울 것입니다. 이를 수행하는 한 가지 방법은 d2부터 시작하여 비교를 수행하는 오른쪽에 열을 만드는 것입니다.

  • = IF (UPPER (TRIM (LEFT (A2,5))) = UPPER (TRIM (LEFT (B2,5))), D3, ROW ())

이것이하는 일은 다음 번 비교의 행을 제공하는 것입니다 (행 번호가 거품을 일으킴). 하나를 찾을 때 수정하거나 적절한 열에 공백을 추가하십시오

다음으로 계속하십시오.

이 방법의 목적은 명확하지 않을 수 있습니다. 예상되는 문제가 100 개 미만임을 알고 있기 때문에 빠르고 더러운 환경에 적합합니다. 문제를 찾고 다음 문제로 이동하십시오. 그런 다음 완료되었습니다. 예상되는 오류 수가 더 큰 경우 다른 접근 방식이 사용됩니다.

이 접근법은 모든 것이 아니라 재순환을 사용하여 한 번에 접근합니다. 1 문제를 찾아서 1 문제를 고친 다음 모든 문제가 해결 될 때까지 다음 문제로 이동 한 후 다음으로 이동하십시오. 초점은 올바른 영역으로 빠르게 들어가는 것입니다. 행 번호를 가지면 다음 행으로 바로 이동할 수 있습니다. 1205가 다음 호인 경우 A1205의 ctrl-g는 다음 호로 바로 이동합니다. 행이 더 많은 데이터를 가진 행에서 1을 벗어나면 거의 모든 비교가 실패하므로 수식에 모든 문제가 정확하게 표시되지 않습니다. 이것은 첫 번째 문제를 찾아서 수정 한 후 다음 문제로 넘어가는 빠른 방법입니다.

질문자에게 언급 된 것보다 더 많은 문제가있을 것으로 의심됩니다. if 문의 테스트 부분을 수정하여 동일한 수식 접근 방식을 사용하여 추가 문제를 찾을 수 있습니다.


어떤 부분을 다루지 않았습니까?
bvaughn

한 조각을 다루는 것은 실제로 정확하지 않았습니다. 이것은 질문을 다루지 않는 것 같습니다. 이 질문의 예는 첫 다섯 글자와 일치하는 두 쌍의 이름을 보여 주므로이 접근법은 일치하지 않는 이름을 잡지 못할 가능성이 높습니다. 또한 일치하는 행에서 일치하지 않는 행 ID를 반복합니다. 잘못된 위치에서 행 번호를 복제하면 무엇을 구입하는지 분명하지 않습니다.
fixer1234

0

내 영어는 나쁘지만 아래에 도움이되기를 바랍니다.

시작 부분 : 셀의 이름이 텍스트에서 데이터로 재미있게 더 많은 셀로 전환되었습니다. 예 Cell1 = Abdul, Moiz M Cell3 = Abdul Cell4 = Moiz Cell5 = M 및 Cell2 = ABDUL MOIZ MOSHEEN Cell6 = ABDUL Cell7 = MOIZ Cell8 = MOSHEEN

당신은 UPPER 세포 2,3,4,6,7,8

그리고 2,3,4,6,7,8 셀에 대한 MATCH fun count 매칭의 수와 두 개 이상의 매칭은 작은 확률 실패로 좋은 결과입니다.


0

VLOOKUP 수식을 사용하여 열 B에 표시되지 않는 col A 값을 확인할 수 있습니다. 아래 수식을 빈 열의 첫 번째 셀에 붙여 넣은 다음 끝까지 복사하십시오. 셀이 # N / A를 반환하면 해당 행의 col A 값이 col B에 나타나지 않습니다.

열 B는 내림차순으로 정렬해야합니다. 어떤 이유로 데이터를 다시 정렬하지 않으려면 다른 시트에 복사하여 정렬하십시오.

= VLOOKUP (A1, B : B, 1, 거짓)


1
Abdul, Moiz M은 대소 문자를 수정하고 구두점을 수정 한 Abdul Moiz Mosheen과 동일하지 않으므로 대문자와 문장 부호보다 더 많은 차이가 있기 때문에 오탐 (false positive)이 발생합니다.
fixer1234

알 겠어요 Bu 숫자는 작아야하며 Excel의 함수 ... M가와 같은 사람 인지 알 수있는 방법이 없습니다 ... Mosheen. 아마도 여전히 가능한 한 좋을 것입니다.
Aganju

또 다른 옵션은 하나의 열에 모두 복사 한 다음 복제 도구를 사용하여 두 번 나타나는 것을 강조 표시하거나 삭제하는 것입니다.
P 피츠

답변의 현재 개정 ( =VLOOKUP(A1,B,1,FALSE) 에있는이 공식 은 올바르지 않습니다. 두 번째 매개 변수 ( table_array)가 올바르지 않습니다. 범위 여야합니다. 나는 데이터에서 의미있는 불일치 극복하기 위해 사용될 수있는 가능한 데이터 정리 기능과 함께 내 대답에 올바른 포함했다
thilina의 R

잘 잡았습니다. 나는 당신에게 공감대를 고쳐주고 줄 것이다.
P Fitz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.