프로그램 관련/엑셀

[엑셀] 엑셀의 대표 조건문 활용하기 (IF, IFS)

RuBP 2023. 4. 15. 22:59
반응형
반응형

이번에는 엑셀에서 자주 활용하는 함수 중 IFIFS에 관련된 내용을 정리해보려 한다.

 

컴퓨터 프로그램을 구현하기 위해서 쓰는 대표적인 구문으로 IF 조건절 구문이 있다.

엑셀에서도 IF함수가 존재하는데, 프로그램 코드에서의 IF와 유사한 기능을 수행한다.

간단하게 파이썬으로 표현하자면 각각 아래의 구문과 같다고 보면 되겠다.

 

# 엑셀의 IF 함수에 해당

if 조건:
    # 조건이 True일 경우 수행
else:
    # 조건이 False일 경우 수행

 

# 엑셀의 IFS 함수에 해당

if 조건1:
    # 조건1이 True일 경우 수행
elif 조건2:
    # 조건2가 True일 경우 수행
....

즉, IF는 단순히 A 아니면 B를 구분하기 위해서 쓴다고 하면,

IFS는 여러가지 조건별로 각각의 결과값을 출력하기 위해 쓴다.

IFS는 일반적인 프로그램에서 CASE문에 해당한다고도 보면 된다.

 

무슨말인지 모르겠으면 아래의 예제를 통해 알아보도록 하자.


예제로 활용할 데이터

이번에 활용할 자료는 위와 같다.

좌측에 임의의 이름에 대응하는 점수 데이터가 있고, 우측에는 우리가 각각 표현할 결과 셀이 있다.

하나는 80점 이상이면 합격, 아니면 불합격을 표시하는 항목이고,

다른 하나는 80점 이상, 70점 이상, 그 미만에 관해 차등 등급을 보여주는 항목이다.

 

합격 불합격 표시를 위한 함수

먼저 80점 이상이면 합격이고 아니면 불합격이도록 함수를 사용하자.

위와 같이 E3셀을 기준으로 다음의 함수 구문을 입력하고 엔터를 치면 된다.

=IF(C3>=80, "합격", "불합격")

위 구문은, C3셀의 값이 80 이상이면, 합격을 표시하고, 아니면 불합격을 표시하라는 의미이다.

즉, =IF(조건문, True일때의 결과값, False일때의 결과값)이라 보면 된다.

 

IF 함수를 사용해서 단일 셀에 적용한 결과

앞선 함수를 입력하고 엔터를 치게 되면 위와 같은 결과를 얻게 된다.

현재 철수의 점수는 75점 이니 불합격이라는 결과가 나오게 된다.

이제 위 함수를 나머지 셀에도 일괄적으로 적용해보도록 하자.

 

함수를 일괄적으로 적용하는 방법

위의 gif 사진과 같이, 함수를 넣은 셀을 우선 클릭하고

우측 하단에 생기는 작은 네모 박스를 드래그해서 아래로 내리면,

자동으로 그에 대응되는 함수들이 매핑되어서 값이 입력되게 된다.

다만, 서식은 깨지는 상태이니까, 깔끔하게 정리하는 작업은 별도로 진행하도록 해야한다.

 

IF를 사용하여 넣어낸 결과물

최종적으로 서식 정리해서 얻어낸 결과물은 위와 같다.

80점 이상인가에 따라서 합/불이 결정되는 것을 확인할 수 있다.


각 조건별로 다른 값을 구현하기 위해 사용한 함수

이번에는 조건별로 다른 값을 보여줘야 하는 경우를 보자.

위와 같이 여러 다양한 조건들을 사용해야 하는 경우, IF문을 여러번 사용할 필요 없이

IFS라는 함수로 간편하게 여러 조건을 나눠서 보여줄 수 있다.

 

=IFS(C3>=80, "A", C3>=70, "B", C3<70, "C")

위 셀에선 다음의 형태로 함수를 구성했다.

먼저, C3의 값이 80 이상이면 A를 출력하게 된다.

그게 아닌 경우, C3의 값이 70 이상이면 B를 출력하게 된다.

그마저도 아닌 경우, C3의 값이 70 미만이면 C를 출력하게 된다.

 

단일 셀에서 IFS 문을 적용한 결과

따라서 앞선 함수를 입력해서 결과를 보면 위와 같이 나오게 된다.

철수는 현재 75점이니 80점과 70점 사이의 등급인 B를 받게 된다.

앞선 과정과 동일하게 나머지 셀들도 함수를 채워넣어 보도록 하자.

 

최종적으로 전체 셀에 IFS를 적용한 결과

최종적으로 위와 같은 결과를 얻어낼 수 있다.

앞선 조건에 따라서 다른 값이 잘 부여된 것을 확인할 수 있다.


이상으로 IF와 IFS를 사용하는 방법에 관해 간단하게 알아봤다.

사실, 앞서 잠깐 나왔듯, IFS는 IF문을 사용해서 구현할 수 있다.

가령 IFS(조건1, A, 조건2, B, ...) 의 형태로 있다고 하면, 다음과 같이 변환이 가능하다.

=IF(조건1, A, IF(조건2, B, IF(... 계속 내부적으로 IF문 넣기 ...)))

그런데 위와 같이 사용하게 되면 해석하기도 어려울 뿐더러 나중에 유지보수 측면에서도 어려워진다.

따라서 여러 조건을 고려해야 한다면 그냥 IFS를 써서 처리해버리도록 하자.