Home > 엑셀 함수 > 논리 함수 > 엑셀함수 IFS – 여러 조건을 테스트하고 조건을 만족하는 값 구하기

엑셀함수 IFS - 여러 조건을 테스트하고 조건을 만족하는 값 구하기

  • by

엑셀의 IFS함수는 IF함수에 S가 붙은 형태이다. S는 영어에서 복수형일때 붙으므로 IF가 여러 개 있는... 조건을 여러 개를 정할 수 있는 함수라고 생각하면 된다.

IF함수는 다음 링크를 참고한다.
[엑셀함수 IF – 만약에 어떤 수식이 참이면, 또는 거짓이면]

구문(Syntax)

IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], [logical_test3, value_if_true3],…)

여러 조건을 테스트하고 해당 조건을 만족하는 값을 반환한다.

인수 :

– logical_test1 : 첫번째 테스트 조건
– value_if_true1 : 첫번째 조건이 참(TRUE)이면 반환할 값

– logical_test2 : 두번째 테스트 조건
– value_if_true2 : 두번째 조건이 참(TRUE)이면 반환할 값

– logical_test3 : 세번째 테스트 조건
– value_if_true3 : 세번째 조건이 참(TRUE)이면 반환할 값

… 총 127개까지 테스트 조건을 설정할 수 있다

 

사용예 :

다음과 같이 점수구간별로 등급을 정한다고 했을 때 학생들의 점수별로 등급을 구해보자.

 점수구간  등급
90 ~100  A
80 ~ 89  B
70 ~ 79  C
60 ~ 69  D
0 ~ 59  F

 

1) IF함수를 이용하여 등급 구하기

IFS함수를 이용하기 이전부터 많이 사용해 본  IF함수를 중첩하여 학생들의 점수별로 등급을 구해보자.

D15셀에 다음 수식을 입력한다.

=IF(C15>=90,"A",IF(C15>=80,"B",IF(C15>=70,"C",IF(C15>=60,"D",IF(C15>=0,"F","값오류")))))

만약 C15셀에 입력된 점수가 90점보다 크거나 같으면 "A",
크거나 같지 않다면 다시 만약 C15셀에 입력된 점수가 80보다 크거나 같은면 "B",
크거나 같지 않다면 다시 만약 C15셀에 입력된 점수가 70보다 크거나 같은면 "C"... 와 같이 반복되는 수식이다.

엑셀함수 IFS

수식이 정상적으로 입력되었으면 D15셀에 등급 "C"가 구해진다.

D15셀의 수식을 복사해서 D16셀부터 D19셀까지 붙여 넣으면 다음과 같이 결과가 표시된다.

엑셀함수 IFS

수식을 보면 IF안에 또 IF가 있고 그 안에 또 IF가 있다. 마지막에 괄호도 여러개라서 잘못 입력할 가능성이 많고 복잡하므로 이런 경우에는 IF함수 중첩보다는 IFS함수를 쓰는 것이 좋다.

 

 

2) IFS함수를 이용하여 등급 구하기

이번에는 IFS함수를 이용하여 등급을 구하기 위해 D24셀에 다음 수식을 입력한다.

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

만약 C24셀에 입력된 점수가 90점보다 크거나 같으면 "A",
만약 C24셀에 입력된 점수가 80점보다 크거나 같으면 "B",
만약 C24셀에 입력된 점수가 70점보다 크거나 같으면 "C"... 와 같이 반복되는 수식이지만 IF보다 이해하기 쉽고 덜 복잡하다.

엑셀함수 IFS

수식이 정상적으로 입력되었으면 D24셀에 등급 "C"가 구해진다.

D24셀의 수식을 복사해서 D25셀부터 D28셀까지 붙여 넣으면 다음과 같이 결과가 표시된다.

엑셀함수 IFS

마지막 행의 결과가 위에서 IF함수를 이용했을 때와 다르다.

다음과 같이 IF함수를 중첩했을 때는 마지막 IF에서 C15셀에 입력된 점수가 0보다 크거나 같으면 "F"를 반환하고 그렇지 않으면 "값오류"를 반환하라고 했기 때문에 숫자가 0보다 작은 -1이 들어가면 "값오류"로 표시되었다.

=IF(C15>=90,"A",IF(C15>=80,"B",IF(C15>=70,"C",IF(C15>=60,"D",IF(C15>=0,"F","값오류")))))

 

다음과 같이 조건을 만족할 때만(참일때) 결과를 반환하도록 IFS함수를 입력하면, 조건을 하나도 만족하지 못하면 경우가 생기면  #N/A오류가 발생한다.

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

 

이 문제점을 보완하기 위해서 만약 앞의 조건들을 하나도 만족시키지 못했을 경우에 반환처리하는 수식을 입력해야 한다.

D33셀에 다음 수식을 입력한다.

=IFS(C33>=90,"A",C33>=80,"B",C33>=70,"C",C33>=60,"D",C33>=0,"F",TRUE,"값오류")

엑셀함수 IFS

위의 수식과 동일한 형태이지만 마지막에 TRUE,"값오류"  부분이 추가되었다.
"TRUE이면 "값오류"를 반환하라"로 해석할 수 있는데 앞의 조건들을 하나도 만족하지 못하면(즉, 모두 FALSE이면) 무조건(TRUE이므로 무조건 만족함) "값오류"를 반환하라는 의미이다.

수식이 정상적으로 입력되었으면 D33셀에 등급 "C"가 구해진다.

D33셀의 수식을 복사해서 D34셀부터 D37셀까지 붙여 넣으면 다음과 같이 결과가 표시된다.

엑셀함수 IFS

0보다 작은 점수 -1이 입력된 경우에 "값오류"가 정상적으로 표시된 것을 확인할 수 있다.

 

[ 엑셀 논리 함수 ]

답글 남기기

이메일 주소는 공개되지 않습니다.