본문 바로가기
Skill

IF IFS IFERROR : 엑셀 조건 함수

by 어제 보다 나은 나 2023. 7. 29.
반응형

1.   IF 엑셀 조건 함수 기본


조건식의 판단 결과에 따라 다른 값을 반환할 수 있는 함수입니다.

IF ( 조건문,   TRUE 일 때 반환값, FALSE 일 때 반환값)


이것이 IF 함수의 기본 형태입니다.
예를 들면,
IF ( A1 > 50,  "크다", "작다")  
이런 것입니다. 

A1 셀에 있는 값을 50 보다 큰지 작은지 판단하는 조건식을 만들고,
그 결과에 따라, 다른 값을 반환하게 만들 수 있습니다.


IF 함수의 "조건식" 결과는 TRUE / FALSE 중에  1개라는 점을 기억하세요.

90점 이상이면  "O", 아니면 "X" 를 반환하는 조건은 조건식 1개면 충분합니다.
아래와 같이.

 

2.  중첩 IF 함수


IF 함수의 인수 위치에, 반복해서 IF 함수를 사용할 때, 중첩 IF 라고 합니다.

"TRUE 값 위치"와 "FALSE 값 위치" 중에 한 곳에만 IF 를 사용하거나 두 군데에 모두 사용할 수 있습니다.

아래 표에서  "PASS" / "F" 를 판단하는 조건이,  
"나이가 30세 이하이면 PASS, 30세 초과이면 몸무게가 60 kg 이하인 경우만 PASS, 그 외에는 F"라면,

다음과 같이 중첩IF문을 만들면 됩니다.


IF(C3<=30, "PASS", IF(D3<=60, "PASS", "F"))

(첫번째 셀에 이 식을 적용한 후, 아래로는 셀 복사를 하면 됩니다)

 

아래와 같은 데이터가 있을 때, 조건이
"나이가 50세 이상인 사람 중에서, 여가시간이 8시간 이상이면 PASS, 아니면 F 이고,  나이가 50세 미만이면 무조건 F"이라면, 다음과 같이 중첩IF문을 만들면 됩니다.

 


IF 함수의 중첩은 계속 이어서 사용할 수 있습니다.
아래 데이터에서,
조건이, 점수에 따라 A~F  등급을 매기는 IF 함수는 IF함수를 중첩하면 됩니다.

조건이
"90 이상이면  A, 그렇지 않으면, 80 이상이면  B,  그렇지 않으면,  70 이상이면  C,  그렇지 않으면, 60 이상이면  D, 그렇지 않으면 F" 라고 합시다.


첫번째 셀에, '=IF(D2>=90,"A",IF(D2>=80,"B",IF(D2>=70,"C",IF(D2>=60,"D","F"))))  을 적용하고 아래로는 셀 복사를 합니다.

 

3.  AND 조건, OR 조건


"<", "<=" , 이런 것들은 비교 연산자라고 합니다.

엑셀에서 "AND", "OR"는 논리 함수라고 합니다.
2개 이상의 조건을 모두 만족하는 연산식은 AND 함수를 사용합니다.

아래 데이터에서,   조건식이 35세 미만이고 여가 시간이 4시간 보다 커야 한다면, 다음과 같이 만들면 됩니다.

IF( AND( C3 <35, D3 > 4), "가능", "")

 

조건이 35세 미만이거나 여가 시간이 4시간 보다 커야 한다면, OR를 사용하면 됩니다.
IF( OR( C3 <35, D3 > 4), "가능", "")

 


4.  IFERROR


수식 실행 결과, ERROR 발생 시,  엑셀에서 정해 놓은 오류 표시가 아니라, 다른 표시를 하고 싶은 경우에 사용하는 함수입니다. 

예를 들어,  A1셀에 0이 있다고 합시다.   1을 A1으로 나누기와 같이 연산하면 무조건 에러가 발생합니다.

엑셀은 정해진 에러 메세지인 "#DIV/0!"를 출력해줍니다.

IFERROR()을 사용하여,


IFERROR( 1/A1, " 0으로 나눠서 에러다")  

 

이렇게 하면,  "#DIV/0!" 이 아니라,   " 0으로 나눠서 에러다"를 출력해줍니다.

IFERROR 함수는 VLOOKUP 함수와 같이 사용되는 경우도 많습니다.
VLOOKUP을 사용하다 보면, 오류가 나는 경우가 종종 있습니다.

 

예를 들어,

오류 발생시,  오류 메세지를 출력하지 않고, 빈문자열 ("")을 출력하고 싶다면,

식을 아래 형태로 만듭니다.

 

=IFERROR( VLOOKUP( 찾을 값, 조견표 범위, 순번), "")

 

 

5.  IFS 함수

중첩되는 조건식을 좀 더 편하게 표현할 수 있게 하는 함수입니다.

점수등급을 IF 함수로 만든다면, 


IF(D3>=90, "A", IF(D3>=80, "B", IF( D3>=70, "C", IF(D3>=60, "D", "F"))))

 

이렇게 됩니다.

이것은  중첩 IF 함수의 전형적인 모양입니다.

 

위 사례의 IF 식을 IFS 로 표현하면, 


IFS(D3>=90, "A", D3>=80, "B", D3>=70, "C", D3>=60, "D", TRUE, "F") 

 

입니다.

두 가지를  비교해 보세요.


비교해 보면,  IFS 함수가 더 간단합니다.  중간에 중첩해서 IF를 사용하지 않아도 되고, 
IF를 추가할 때마다 추가해야 하는 괄호를 안 쓰도 되기 때문입니다.

위 사례가 IFS 함수의 전형적인 사용형태입니다.

 

IFS 함수의 인수 형태를 정리하면 다음과 같이 표현할 수 있습니다.


IFS( 조건1,   조건1이 TRUE일 때 값,    조건2,    조건2가 TRUE일 때 값, ....,    TRUE,     마지막 값)

조건1 다음에,  "조건1이 TRUE일 때 값"이 오며, 이 값은 일반적으로 수식이 아니라 값입니다.  

(수식이  올 수도 있습니다)
그 다음, 조건2가 오고, 그 다음에 "조건2가 TRUE일 때 값"이 옵니다.
맨 마지막에는 모든 조건이 FALSE 일 때, 출력하고 싶은 "마지막 값"을 표시하면 됩니다.
이 마지막 값 바로 앞의 인수가  TRUE 라고 입력하는 것도 규칙이므로 기억해야 합니다.


6.   다른 형태 살펴보기


IFS 함수의 인수로, 중첩해서 IFS 함수 또는  IF 함수를 사용할 수도 있습니다.  

데이터가 다음과 같다고 할 때,

점수가 90 이상이면 A 였는데,  점수 상한선이 없으며, 90 이상을 더 세분하고 싶을 수도 있습니다.

 

조건을 다음과 같이 바꾼다고 합시다.

점수가 90 이상일 때, 더 세분해서, 

200 이상은 "SS"이고,  200 미만이고 100 이상이면 "S"이고, 100 미만이고 90 이상이면 "A" 라면,

IFS 함수의 첫번째 TRUE값 위치에 또 하나의 IFS 함수를 사용하면 됩니다.

IFS(D3>=90, IFS(D3 >=200, "SS", D3 >= 100, "S", TRUE,  "A"),  D3>=80, "B", D3>=70, "C", D3>=60, "D", TRUE, "F")

IFS 함수의 첫번째 TRUE값 위치에는 IFS 뿐만이 아니라, IF 함수를 사용해도 됩니다.

IFS(D3>=90, IF(D3 >=200, "SS", IF(D3>=100, "S", "A")),  D3>=80, "B", D3>=70, "C", D3>=60, "D", TRUE, "F")

 

 

 

 

 

 

 

 

 

반응형