Menu

엑셀 두 열 비교: 일치하는 값과 다른 값 찾기

두 열을 행마다 비교하려면 =A2=B2(대소문자는 EXACT)를 씁니다. 한 열에는 있고 다른 열에는 없는 값은 COUNTIF, MATCH, XLOOKUP으로 찾고, 다른 점은 조건부 서식으로 강조합니다.

이 페이지의 모든 시트는 실제로 동작합니다. 숫자나 수식을 바꾸면 다시 계산됩니다.

두 열을 행마다 비교하려면 첫 행 옆에 =B2=C2를 입력하고 아래로 채우세요. TRUE는 두 셀이 같다는 뜻이고 FALSE는 다르다는 뜻입니다. 순서와 관계없이 한 열의 값이 다른 열 어딘가에 있는지 찾으려면 대신 =COUNTIF($B$2:$B$8,A2)>0을 쓰세요.

이전 가격과 새 가격
D2
ABCDE
1ProductOldNewSame?Status
2Apple$1.20$1.20TRUESame
3Pear$1.50$1.60FALSEChanged
4Carrot$0.80$0.80TRUESame
5Bread$2.40$2.20FALSEChanged
6Milk$1.10$1.10TRUESame
7Cheese$4.50$4.90FALSEChanged
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

D3, D5, D7이 FALSE이고, 조건부 서식 규칙 =$B2<>$C2가 그 세 행을 칠합니다. E열은 같은 검사를 TRUE와 FALSE 대신 단어로 보여 줍니다. C3을 1.5로 바꾸면 3행이 Same으로 바뀝니다.

IF로 두 열 비교하기

=B2=C2는 TRUE나 FALSE를 반환합니다. IF로 감싸면 단어를 고를 수 있습니다: 위 E열처럼 =IF(B2=C2,"Same","Changed")입니다. 같은 행은 비우고 다른 것만 표시하려면 =IF(B2<>C2,"Changed","")를 쓰세요. 숫자가 얼마나 바뀌었는지 보려면 비교 대신 빼세요: =C2-B2.

도우미 열 없이 다른 개수를 세려면 SUMPRODUCT 안에서 두 범위를 비교하세요: 위 시트에서 =SUMPRODUCT(--(B2:B7<>C2:C7))는 3을 반환합니다.

수식 없이 하려면 B2가 활성 셀인 상태로 B2:C7을 선택하고 홈 > 찾기 및 선택 > 이동 옵션으로 가서 동일 행에서 값이 다른 셀을 고르고 확인을 누르세요(Windows에서는 Ctrl+\도 같습니다). 엑셀이 행에서 B열과 다른 셀인 C3, C5, C7을 선택하므로 채우기 색을 주어 표시하세요.

EXACT로 대소문자를 구분해 비교하기

= 비교는 대소문자를 무시합니다. ab12는 AB12와 같습니다. 제품 코드, 비밀번호, ID처럼 대소문자가 중요할 때는 두 텍스트가 글자 하나하나 같을 때만 TRUE인 EXACT(A2,B2)를 쓰세요.

대소문자가 다른 코드
C2
ABCD
1CodeEnteredEqual?EXACT
2AB12AB12TRUETRUE
3CD34cd34TRUEFALSE
4EF56EF56TRUETRUE
5GH78Gh78TRUEFALSE
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

= 비교인 C열은 네 개 모두 같다고 합니다. EXACT는 cd34와 Gh78에 소문자가 있으므로 3행과 5행이 다르다고 합니다.

한 열에는 있고 다른 열에는 없는 값 찾기

두 목록의 순서가 같지 않다면 각 값을 다른 열 전체와 비교하세요. COUNTIF($B$2:$B$8,A2)는 A2가 B2:B8에 몇 번 나오는지 세므로 >0은 "찾음", =0은 "없음"을 뜻합니다. $ 기호는 수식을 아래로 채울 때 검색 범위를 고정합니다.

1월과 2월의 고객
C2
ABCD
1JanuaryFebruaryIn February?With MATCH
2AnaDanTRUETRUE
3BenFayTRUETRUE
4CaraAnaFALSEFALSE
5DanGusTRUETRUE
6EveHalFALSEFALSE
7FayIvyTRUETRUE
8GusBenTRUETRUE
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

Cara와 Eve는 FALSE입니다. 1월에는 구매했지만 2월에는 하지 않았습니다. MATCH는 다른 길로 같은 답을 줍니다. MATCH(A2,$B$2:$B$8,0)은 B열에서 A2의 위치를, 없으면 #N/A를 반환하고 ISNUMBER가 이를 TRUE나 FALSE로 바꿉니다. 반대 방향(2월의 새 고객)을 확인하려면 B열 옆에 범위를 바꾼 같은 수식을 쓰세요: =COUNTIF($A$2:$A$8,B2)>0.

두 목록을 비교하고 일치하는 값 반환하기

"있는가"만이 아니라 "옆의 값도 맞는가"가 궁금할 때가 많습니다. 여기서는 청구서를 순서가 다른 결제 목록과 비교합니다. XLOOKUP이 결제 목록에서 각 청구서를 찾아 결제 금액을 반환하고, D열이 그것을 청구 금액과 비교합니다.

청구서와 결제 비교
C2
ABCDEFG
1InvoiceAmountPaidMatch?Payment forPaid
2INV-101120120TRUEINV-103240
3INV-10285Not paidFALSEINV-101120
4INV-103240240TRUEINV-105140
5INV-1046060TRUEINV-10695
6INV-105150140FALSEINV-10460
7INV-1069595TRUE
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

INV-102는 결제가 없으므로 C3은 Not paid라고 합니다. INV-105는 150 대신 140이 결제되었으므로 D6도 FALSE입니다. XLOOKUP의 마지막 인수 "Not paid"가 값이 없을 때 나올 #N/A를 대신합니다. XLOOKUP은 Excel 2021이나 Microsoft 365가 필요하며, Excel 2019에서는 =IFERROR(VLOOKUP(A2,$F$2:$G$6,2,FALSE),"Not paid")를 쓰세요. 다른 인수는 XLOOKUP 페이지에 있습니다.

다른 열에 없는 값 나열하기

TRUE/FALSE 열 대신 FILTER로 없는 값을 목록으로 반환할 수 있습니다. 두 번째 인수에 범위를 준 COUNTIF(B2:B8,A2:A8)은 A의 모든 값을 한 번에 세고, FILTER가 개수가 0인 것을 남깁니다.

다시 오지 않은 고객
D2
ABCD
1JanuaryFebruaryNot in February
2AnaDan
3BenFay
4CaraAna
5DanGus
6EveHal
7FayIvy
8GusBen
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

직접 해 보세요: D2에서 2월 목록에 없는 1월 고객을 나열하세요.

답은 Cara와 Eve를 분산합니다. =FILTER(A2:A8,ISNA(MATCH(A2:A8,B2:B8,0)))도 됩니다. 모든 고객이 다시 왔다면 FILTER는 #CALC!를 반환하므로 그 경우를 위한 세 번째 인수를 더하세요: =FILTER(A2:A8,COUNTIF(B2:B8,A2:A8)=0,"None"). FILTER는 Excel 2021이나 Microsoft 365가 필요합니다. 다른 조건은 FILTER를 참고하세요.

두 열의 차이 강조하기

위의 수식은 조건부 서식 규칙으로도 동작합니다. 첫 번째 목록을 선택하고 홈 > 조건부 서식 > 새 규칙 > 수식을 사용하여 서식을 지정할 셀 결정으로 가서 첫 셀을 기준으로 수식을 입력하세요. 여기서는 A2:A8에 =COUNTIF($B$2:$B$8,A2)=0을, B2:B8에 =COUNTIF($A$2:$A$8,B2)=0을 줍니다. 한 목록에만 있는 이름이 모두 칠해집니다.

한 목록에만 있는 이름
A1
AB
1JanuaryFebruary
2AnaDan
3BenFay
4CaraAna
5DanGus
6EveHal
7FayIvy
8GusBen
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

1월에서는 Cara와 Eve가, 2월에서는 Hal과 Ivy가 칠해집니다. 행마다 같아야 하는 두 열이라면 이 페이지의 첫 번째 시트처럼 두 열에 모두 =$A2<>$B2 규칙을 쓰세요. 대신 두 목록 모두에 있는 이름을 칠하려면 중복 값 강조 페이지처럼 >0을 쓰세요.

똑같은 값이 다르게 나오는 이유

가장 흔한 이유는 보이지 않는 공백입니다. 끝에 공백이 붙은 Ana 는 Ana와 같지 않습니다. 다른 시스템이나 웹 페이지에서 붙여 넣은 데이터에 자주 들어 있습니다. 대신 정리한 값을 비교하세요.

숨은 공백
C2
ABCD
1NameOther listEqual?Trimmed
2AnaAna FALSETRUE
3BenBenTRUETRUE
4Cara CaraFALSETRUE
5DanDanTRUETRUE
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

C열은 2행과 4행이 다르다고 하고, TRIM이 양 끝의 공백을 지운 D열은 네 개 모두 같다고 합니다. 다른 흔한 이유는 한 열에는 텍스트로 저장된 숫자, 다른 열에는 진짜 숫자가 있는 경우입니다. 101과 '101은 똑같아 보이지만 엑셀의 = 비교는 FALSE를 반환하고, MATCH, VLOOKUP, XLOOKUP은 한쪽에서 다른 쪽을 찾지 못합니다. COUNTIF는 예외로, 숫자처럼 보이는 텍스트를 그 숫자로 읽으므로 둘을 같다고 셉니다. 셀 모서리의 초록색 삼각형이 텍스트 쪽을 표시합니다. =VALUE(A2)나 =A2*1로 변환하거나, 셀을 선택하고 경고 아이콘에서 숫자로 변환을 고르세요.

자주 묻는 질문

엑셀에서 두 열의 일치 여부를 비교하려면 어떻게 하나요?

행마다 비교하려면 C2에 =A2=B2를 입력하고 아래로 채우세요. TRUE는 두 셀이 같다는 뜻입니다. A의 각 값이 B 어딘가에 있는지 확인하려면 =COUNTIF($B$2:$B$8,A2)>0을 쓰세요.

두 열을 비교하고 두 번째 열의 값을 반환하려면 어떻게 하나요?

값을 조회하세요: =XLOOKUP(A2,$F$2:$F$7,$G$2:$G$7,"Not found")는 G열에서 일치하는 값을, 없으면 Not found를 반환합니다. Excel 2019 이하에서는 =IFERROR(VLOOKUP(A2,$F$2:$G$7,2,FALSE),"Not found")를 쓰세요.

엑셀에서 두 셀을 비교할 때 대소문자를 구분하나요?

아니요. =A2=B2는 abc와 ABC를 같다고 봅니다. 대소문자를 구분해 비교하려면 대소문자까지 모든 글자가 같을 때만 TRUE인 =EXACT(A2,B2)를 쓰세요.

한 열에는 있고 다른 열에는 없는 값을 나열하려면 어떻게 하나요?

Excel 365와 2021에서는 =FILTER(A2:A8,COUNTIF(B2:B8,A2:A8)=0)이 A2:A8 중 B2:B8에 없는 값을 모두 분산합니다.

엑셀이 똑같은 두 값을 다르다고 하는 이유는 무엇인가요?

대개 둘 중 하나에 공백이 더 있거나 텍스트로 저장된 숫자입니다. =TRIM(A2)=TRIM(B2)로 비교해 공백을 배제하고, 텍스트 숫자는 =VALUE(A2)나 =A2*1로 변환하세요.

Coddy 프로그래밍 언어 일러스트

Coddy로 코딩 배우기

시작하기