엑셀에서 두 셀의 값을 비교하는 경우는 흔합니다.
예를들어 물품과 가격이 적힌 단가표가 있을 때 구입물품과 동일한 물품이 단가표에 있는지 비교해 볼 수 있습니다.
위 예와 같이 엑셀에서 많은 함수들에서 두 값의 비교를 많이 합니다. 가장 기본적인 예로 MATCH 함수의 경우 특정 값이 지정된 범위 내에 어디에 존재하는지를 알아낼 때 쓰입니다.
이런 함수들의 단점은 영문의 대소문자를 제대로 구분하지 않는다는 점입니다.
따라서 값들간에 정확한 비교를 위해서 비교함수를 이용한 수식으로 바꿀 필요가 있습니다.
엑셀 비교함수
EXACT( 텍스트1, 텍스트2 )
텍스트1과 텍스트2가 같으면 TRUE를
텍스트1과 텍스트2가 다르면 FALSE를 반환한다.
※ EXACT 함수는 대소문자를 구분하여 비교한다.
※ EXACT 함수는 일반 숫자와 텍스트로 된 숫자를 구분하지 않는다. (숫자 1과 텍스트 1를 같은 값으로 치부한다.)
이렇게 엑셀 비교함수 EXACT는 모든 데이터의 형태를 텍스르 형식으로 변환하여 값을 비교하며 특히 대/소문자를 구분하여 비교한다는 특징이 있습니다.
예)
MATCH 함수로 지정된 범위 내에서 원하는 값을 찾도록 해보겠습니다.
결과를 보면 1이라는 값이 나왔습니다. 이 값은 찾을 범위에서 몇번 째 열인지를 나타내는 값입니다.
그런데 분명 찾을 값은 "APPLE"로 모두 대문자로 되어 있는 텍스트지만 찾은 값은 첫 번째 열에 있는 "apple"로 모두 소문자로 되어 있는 텍스트네요. 이 뜻은 MATCH 함수는 값을 찾을 때 대/소문자를 구분하지 않는 다는 뜻이 됩니다.
앞에서 이미 설명 했듯이 엑셀의 여러 함수들에서 이렇게 대/소문자를 구분하지 않는 경우가 있습니다.
해결 방법
MATCH 함수 내부에서 EXACT 함수로 정확히 일치하는 값을 먼저 검사해야 합니다. 그래서 TRUE를 반환하면 MATCH 함수가 TRUE를 반환한 위치를 반환하는 형식입니다. 배열수식에 대한 이해도 필요하므로 복잡해 보일 수도 있습니다.
=MATCH(TRUE, EXACT(B6, B3:D3), 0)
우선 결과가 3이 나왔고 찾을 범위의 3열에 있는 "APPLE"과 찾을 값이 같습니다.
수식은 배열수식으로 이루어져 있고 EXACT(B6, B3:D3)에서 두 번째 전달된 값이 찾을 범위 B3:D3입니다. 배열수식이므로 B6과 찾을 범위에서 각각의 셀을 차례대로 검사해 나갑니다. 대/소문자가 정확히 일치하지 않으면 FALSE를 반환하므로 TRUE를 반환할 때 까지 계속 찾아갑니다.
정확히 일치하는 값을 찾으면 EXACT 함수가 TRUE를 반환하고 이 값은 MATCH 함수의 첫 번째 인자 TRUE와 일치하므로 값을 찾은 것으로 간주됩니다.
이 때 범위 B3:D3 내에서 현재 TRUE를 반환한 열의 위치가 결과로 반환되어서 위 그림과 같이 3이 반환되어 정확한 위치를 찾았습니다.
위 수식을 응용하면 다양한 함수들을 대신하여 정확한 비교를 하는 수식을 작성할 수 있습니다.