엑셀에서 IF 함수로 다음과 같이 텍스트가 같은지 비교하면 결과가 어떻게 될까요?
=IF("모나미볼펜"="모나미*","O","X") => ?
'모나미*'로 쓰면 와일드카드니까 같은 것으로 판단해서 'O'가 반환될 것 같지만 'X'가 반환됩니다.
IF 함수에서 텍스트 비교시 와일드카드가 안됩니다. 대신에 COUNTIF 함수나 SEARCH 함수로 해결해야 합니다.
IF 함수로 같은지 비교(와일드카드 사용 불가)
B열에 텍스트가 입력되어 있을 때 다음과 같이 수식을 입력해서 같은지 비교해 보면
=IF(B5="*노트*","O","X") => 'X'
와일드카드가 작동하지 않습니다. '스프링노트고급형'에는 분명히 '노트'라는 텍스트가 있으므로 같은 것으로 판별할 것 같은데 안됩니다.
=IF(B9="*노트*","O","X") => 'O'
IF 함수는 '*'을 와일드카드가 아니라 일반 텍스트로 인식하므로 9행에 '*노트*'라고 입력되어 있는 것만 같은 것으로 판별합니다.
IF, SEARCH 함수를 조합하여 비교
이번에는 IF 함수에 '인수가 숫자이면 TRUE를 반환'하는 ISNUMBER 함수와 찾는 '텍스트의 위치를 반환'하는 SEARCH 함수를 조합하여 텍스트가 같은지 비교해 보겠습니다.
[B16] 셀의 텍스트 '스프링노트고급형'에 '노트'가 포함되어 있는지 확인해 보겠습니다.=IF(ISNUMBER(SEARCH("노트",B16)),"O","X")
수식에서 SEARCH 함수가 먼저 실행되어 '스프링노트고급형'에서 '노트'의 위치 4를 반환하고 수식은 다음과 같이 바뀝니다.
=IF(ISNUMBER(4),"O","X") => 'O'
4는 숫자이므로 ISNUMBER함수는 TRUE를 반환하고, 마지막으로 IF 함수는 'O'를 반환합니다.
[B17] 셀의 텍스트 '모나미볼펜'에 '노트'가 포함되어 있는지 확인해 보겠습니다.
=IF(ISNUMBER(SEARCH("노트",B17)),"O","X")
수식에서 SEARCH 함수가 먼저 실행되어 '모나미볼펜'에서 '노트'의 위치를 찾으면 당연히 없으므로 #VALUE!를 반환하고 수식은 다음과 같이 바뀝니다.
=IF(ISNUMBER(#VALUE!),"O","X") => 'X'
#VALUE!는 숫자가 아니므로 ISNUMBER함수는 FALSE를 반환하고, 마지막으로 IF 함수는 'X'를 반환합니다.
IF, COUNTIF 함수 조합하여 비교(와일드카드 사용)
이번에는 IF 함수에 COUNTIF 함수를 조합하여 텍스트가 같은지 비교해 보겠습니다.
[B16] 셀의 텍스트 '스프링노트고급형'과 '*노트*'가 같은지 확인해 보겠습니다.=IF(COUNTIF(B16,"*노트*")>0,"O","X")
'스프링노트고급형'에는 '노트'가 포함되어 있으므로 COUNTIF 함수는 1을 반환하고 수식은 다음과 같이 바뀝니다.
=IF(1>0,"O","X")
1은 0보다 크므로 IF 함수는 'O'를 반환합니다.
[B17] 셀의 텍스트 '모나미볼펜'과 '*노트*'가 같은지 확인해 보겠습니다.
=IF(COUNTIF(B17,"*노트*")>0,"O","X")
'모나미볼펜'에는 '노트'가 없으므로 COUNTIF 함수는 0을 반환하고 수식은 다음과 같이 바뀝니다.
=IF(0>0,"O","X")
0은 0보다 크지 않으므로 IF 함수는 'X'를 반환합니다.
관련 글