[엑셀] if의 논리검사 항목에 상수가 들어갈때 논리값




A1열의 데이타가 B열중에 있는지 확인하여 있으면 o, 없으면 x를 출력하는 조건문이다.

=IF(COUNTIF($B$1:$B$4,A1),"o","x")

그런데 이상한 점이 있었다. COUNTIF($B$1:$B$4,A1) 이 부분은 그동안은 logical test를 하는 부분으로 IF(A1>0,"양수","음수") 의 A1>0처럼 맞느냐 틀리느냐(TRUE/FALSE)를 알려주는 조건식만 사용하는 걸로 알고 있었는데, 여기서 COUNTIF($B$1:$B$4,A1) 에서 반환하는 값은 TRUE나 FALSE가 아니라 숫자 0이다. 그리고, 세번째행의 이승엽을 찾는 식은 =IF(COUNTIF($B$1:$B$4,A3),"o","x")으로, 여기서 반환되는 값은 숫자2이다. 결국, 숫자 0은 FALSE로, 숫자2는 TRUE로 간주한다는 것이다. 

테스트를 해보니, 음수나 양수는 모두 TRUE로 간주된다. 오로지 0만 FALSE로 간주한다.

논리값 TRUE/FALSE만 반환해야한다는 고정관념을 깨뜨려준다!

응용하면 좀 더 다양한  IF문을 사용할 수 있을것 같다. 

댓글

이 블로그의 인기 게시물

중복된 텍스트 제외하고 고유 텍스트 개수 세기

1일1함수 (12) sumproduct함수 - 동점일때 다른 기준으로 순위매기기

한 폴더 안의 모든 파일에서 특정 시트 복사해오는 vba