1일1함수 (43) IF함수 : 조건에 따른 값 구하기

오늘은 너무나도 익숙한 IF함수입니다. 요즘 들어 날로 먹는 경향이 많다고 생각하시는 분이 있을까봐서…^^; 오늘은 사 소한 주의사항 한가지를 짚고 넘어가겠습니다.
구문
IF(logical_test,value_if_true,value_if_false)
logical_test  TRUE나 FALSE로 평가될 수 있는 임의의 값 또는 식입니다. 예를 들어 A10=100과 같은 논리 식에서 A10 셀이 100이면 이 식은 TRUE가 되고 100이 아니면 FALSE가 됩니다. 이 인수에는 모든 비교 계산 연산자를 사용할 수 있습니다.
value_if_true  logical_test가 TRUE인 경우에 반환되는 값입니다. 예를 들어 이 인수가 "예산 내"라는 텍스트 문자열이고 logical_test 인수가 TRUE이면 IF 함수는 "예산 내"라는 텍스트를 표시합니다. logical_test가 TRUE이고 value_if_true가 비어 있으면 이 인수는 0을 반환합니다. TRUE라는 단어를 표시하려면 이 인수에 대해 논리값 TRUE를 사용해야 합니다. value_if_true는 또 다른 수식이 될 수 있습니다.
value_if_false  logical_test가 FALSE인 경우에 반환되는 값입니다. 예를 들어 이 인수가 "예산 초과"라는 문자열이고 logical_test 인수가 FALSE일 경우 IF 함수는 "예산 초과"라는 텍스트를 표시합니다. logical_test가 FALSE이고 value_if_false를 생략한 경우(즉, value_if_true 뒤에 쉼표가 없는 경우) FALSE 논리값이 반환됩니다. logical_test가 FALSE이고 value_if_false가 공백인 경우(즉, value_if_true 뒤에 괄호 다음에 쉼표가 있는 경우) 0이 값으로 반환됩니다. value_if_false는 또 다른 수식이 될 수도 있습니다.
주의
  • 보다 자세한 검사를 위해 IF 함수를 value_if_true 및 value_if_false 인수와 함께 64개까지 중첩할 수 있습니다. 중첩된 IF 함수를 보려면 예제 3을 참고하십시오. 또한 여러 조건을 검사하려면 LOOKUPVLOOKUP 또는 HLOOKUP 함수를 사용하는 것이 좋습니다. LOOKUP 함수를 보려면 예제 4를 참고하십시오.
  • value_if_true와 value_if_false 인수를 평가할 때 IF 함수는 이러한 명령문에서 반환된 값을 반환합니다.
  • IF 함수의 인수 중에 배열 (배열: 여러 가지 결과를 만들거나 행과 열로 구성되는 인수 그룹에 대해 연산이 이루어지는 한 개의 수식을 작성하기 위해 사용됩니다. 배열 범위는 공통 수식을 공유하며 배열 상수는 한 개의 인수로 사용되는 상수 그룹입니다.)이 있으면 IF 문을 실행할 때 해당 배열의 모든 요소가 평가됩니다.
  • 조건을 기반으로 데이터를 분석하는 추가 함수가 제공됩니다. 예를 들어 셀 범위 내의 텍스트 문자열이나 숫자의 개수를 세려면 COUNTIF 및 COUNTIFS 워크시트 함수를 사용합니다. 범위 내의 텍스트 문자열이나 숫자를 기준으로 하여 합계를 계산하려면 SUMIF 및 SUMIFS 워크시트 함수를 사용합니다.

익숙하지만 구문이나 주의사항은 굉장히 길군요. ^^; IF함수의 구문을 간단히 쓰면 다음과 같습니다. 
=IF(조건, 조건이 참일 때 값, 조건이 거짓일 때 값)

위의 구문만 기억하고 계시면 IF문에 대해서는 다 알고 계신 것이나 다름 없습니다.

위의 상자 안에 들어있는 설명중에서 밑줄친 부분이 어떤 의미인지 설명하면 다음과 같습니다.
logical_test가 TRUE이고 value_if_true가 비어 있으면 이 인수는 0을 반환합니다.

두 수식을 잘 비교해보시면 어떤 차이점이 있습니까? 첫번째 수식에서, "작다"앞에 쉼표가 두개 들어가 있는 것이 보이십니까? 즉, TRUE일 때 반환할 값으로 아무것도 지정하지 않았습니다. 이것 때문에 조건이 TRUE일때의 결과값으로 숫자0이 반환됩니다.

value_if_false  부분을 생략하면 조건이 거짓일 때 FALSE논리값이 반환됩니다. 하지만 value_if_false 부분을 공백으로 놔두면 숫자0이 반환됩니다.

두 수식을 잘 비교해보시면 어떤 차이점이 있습니까? 두번째 수식에서, "크다"뒤에 쉼표가 있고, 그 뒤는 아무것도 없이 괄호로 끝난 것이 보이십니까? 이것 때문에 이 IF문의 조건에 해당하는 부분이 FALSE일 때 숫자 0이 반환됩니다.

엑셀의 구석구석 잘 찾아보시면 이런 사소한 팁들이 많이 숨어있습니다. 여러해동안 함수들을 새로 만들고 수정하다보니 조금씩 이전버전의 사소한 흔적들이 남아있는 것 같습니다. 복잡하게 생각하지 마시고, TRUE일때와 FALSE일때의 결과값을 항상 지정해주는 버릇을 들이시면 아무 문제 없습니다.

댓글

이 블로그의 인기 게시물

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

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

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